Skip to content
An experimental port of TinyRb to Google go, both as a means of learning go and exploring alternate approaches to implementing Ruby. Work is currently focused on the GoLightly VM.
Go C Ruby
Pull request Compare This branch is 17 commits ahead, 1 commit behind macournoyer:master.
Failed to load latest commit information.
bench Add benchmarks for regexp and array. Apr 9, 2009
lib Ensure exception are raised in compiler, parser and class definitions. Apr 20, 2009
peg
site Update docs and make README render pretty on GitHub. Mar 11, 2009
test Implement method_missing. Required a couple ugly tweaks in the byteco… May 3, 2009
vendor Vendor PCRE Apr 9, 2009
vm Manually unrolling parser for PEG grammars. Dec 6, 2009
.gitignore Remove `begin` block parsing for now and move test to pending. Apr 11, 2009
Makefile Implement non local return. Apr 15, 2009
README.rdoc Removed dependency on khash library by moving all hashes to Go's map … Nov 28, 2009
SPEC Document missing stuff to run MSpec Apr 4, 2009
TODO

README.rdoc

tinyrb

A tiny subset of Ruby with a Lua'esc VM.

Everything in TinyRb should run in the big Ruby. (except bugs and things that don't comply to the principle of least surprise.) But not everything in the big Ruby should run in tinyrb.

This is a work in progress and not usable for “real things” yet. See TODO for a couple of those things that need to be done.

github.com/macournoyer/tinyrb #tinyrb on freenode

Install

make
make test # optional
./tinyrb -h

What WON'T be in tinyrb (tiny patches accepted)

  • for

  • redo, retry

  • if … do, while … do, etc

  • alias keyword (see alias_method)

  • undef keyword (see undefine_method)

  • throw, catch

  • Alternate string delimiters (%q, %Q, etc.)

  • heredoc strings

  • Parallel assignment (a, b = 1, 2)

  • as . (Class::new)

  • Character code literal (?c)

  • protected, private, public (yes everything is public, mind you)

  • ObjectSpace

  • $SAFE (but Sandbox mode at the VM level)

  • … others to come for sure.

Credits

Inspired by:

GC Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers PCRE Copyright © 1997-2008 University of Cambridge released under BSD license

tinyrb is Copyright © Marc-Andre Cournoyer <macournoyer@gmail.com> and released under Ruby license

Something went wrong with that request. Please try again.