Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

The tiny and fast (subset of) Ruby VM that loves you like you are

branch: proc

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 bench
Octocat-spinner-32 lib
Octocat-spinner-32 site
Octocat-spinner-32 test
Octocat-spinner-32 vendor
Octocat-spinner-32 vm
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Makefile
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 TODO


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. #tinyrb on freenode


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.


Inspired by:

kvec.h and khash.h © 2008, by Attractive Chaos <> GC Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers

© Marc-Andre Cournoyer <>

Something went wrong with that request. Please try again.