Hi guys, I figured out that it would be a good idea to give periodical status updates on what's happening in the experimental branch, so here is the first one :) - The compiler is now able (AFAIK) to compile all the language specs, so I guess it's now roughly complete. - Lots of progresses on the RubySpecs - Eloy might want to comment here maybe :) - A third of the core/io specs are now passing too. Good progress on the IO front. - The `for' expression has been fixed (it was too unstable). - Lots of fixes in eval & dynamic variables. A preliminary version of Binding was implemented. The new dvar implementation is more or less twice faster than the previous one. - Better exception handling of top level exceptions. - Calling 'return' from a block has been implemented (but not optimized, yet). - Fixed the 'require of the death' bug (basically, requiring a file that requires another file that require the first file again). - Implemented implicit enumeratorization (Example: [1,2,3].each). - Ported old code to the new rb_objc_block_call() syntax (which is faster). - Implemented catch/throw. - Thanks to everything above, IRB is now running! $ ./miniruby -I./lib bin/irb irb: warn: can't alias exit from irb_exit. irb(main):001:0> 1+2 => 3 irb(main):002:0> x=40 => 40 irb(main):003:0> x+2 => 42 irb(main):004:0> def foo; 42; end => nil irb(main):005:0> foo => 42 irb(main):006:0> (With a few caveats: there are _lots_ of bugs around.) Starting IRB takes about 1.5 seconds on my machine, this is way to slow and we need to optimize this. So I will work on this. The compiler & JIT strategy have not been optimized yet. Next step will be to implement the BridgeSupport plumbing then we can bootstrap Cocoa again! Laurent