public
Fork of macournoyer/tinyrb
Description: tinyrb with FFI
Homepage: http://code.macournoyer.com/tinyrb/
Clone URL: git://github.com/wmeissner/tinyrb.git
tinyrb /
name age message
file .gitignore Fri Mar 06 19:11:54 -0800 2009 Remove ignores for Lemon/Ragel [macournoyer]
file Makefile Thu Mar 12 01:15:36 -0700 2009 Add rules to make libtinyrb.so [wmeissner]
file README.rdoc Tue Mar 10 21:04:55 -0700 2009 Update docs and make README render pretty on Gi... [jbarnette]
file TODO Tue Mar 10 21:04:44 -0700 2009 Add note RE missing primitives methods. [macournoyer]
directory bench/ Mon Feb 16 16:58:52 -0800 2009 instance and class vars, grrreat [macournoyer]
directory lib/ Wed Mar 11 23:48:43 -0700 2009 Merge latest [wmeissner]
directory site/ Tue Mar 10 21:04:55 -0700 2009 Update docs and make README render pretty on Gi... [jbarnette]
directory test/ Tue Mar 10 20:57:07 -0700 2009 Implement Class#new in Ruby [macournoyer]
directory vendor/ Fri Mar 06 20:39:14 -0800 2009 Update peg to my latest version. Bring back boo... [macournoyer]
directory vm/ Thu Mar 12 00:29:51 -0700 2009 Put the hammer down on i386 by using raw ffi ar... [wmeissner]
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
  • 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:

 lua,     http://www.lua.org
 tinypy,  http://tinypy.org
 potion,  http://github.com/why/potion

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

© Marc-Andre Cournoyer <macournoyer@gmail.com>