[MacRuby-devel] branches/experimental

Richard Kilmer rich at infoether.com
Sat Mar 28 14:00:16 PDT 2009


This is awesome new Laurent!

You have done amazing work to get this far and I know you will get it  
all the way.

Also Eloy and Vincent helped a lot with both the VM and specs and  
tests.  Thanks to all of you!

Do you have any plans for enlisting specific support you need to move  
things along faster?

Best,

Rich

On Mar 28, 2009, at 3:37 PM, Laurent Sansonetti wrote:

> Hi guys,
>
> As some of you already noticed we have been working on a branch for  
> a few weeks and I thought it's now time to describe what has been  
> done and were we are going exactly.
>
> I wrote a blog entry here: http://www.macruby.org/blog/2009/03/28/experimental-branch.html
>
> 2 big features in this branch: a LLVM-based JIT compiler and a new  
> IO subsystem. Obviously performance-related, we really need to be  
> faster.
>
> Current status of the branch:
>
> - The compiler is now able to pass most of the Ruby AST. It compiles  
> nodes directly from the parser in a lazy fashion.
> - Only JIT compilation for the moment (AOT is planned for later).
> - The VM is still under development, it's not as complete as the  
> compiler yet.
> - Early performance benchmarks are very promising.
> - By the time of this writing, we pass the vast majority of the  
> language RubySpecs (a week ago we weren't even able to even  
> bootstrap mspec!), about 1190 expectations. Work is very active in  
> this area, we are also making sure the specs do run with the  
> original Ruby 1.9 and writing missing specs.
> - The new IO subsystem is mostly functional, but there are still  
> many methods that are not implemented yet and we are working on  
> this. Once it will be complete we will integrate a default runloop  
> in the VM and expose asynchronous IOs.
>
> For the near future, the goals are:
>
> - Improving the compiler. Currently compile time has not really been  
> optimized yet.
> - Be able to run IRB. We are almost there.
> - Remove the libffi code used to call C/ObjC implementations and  
> instead JIT compile stubs and insert them in the dispatcher cache.  
> We should be way closer to ObjC then (and maybe faster once we  
> enable secondary compilations of hotspots and inline the stubs).
> - Rewrite the BridgeSupport side using LLVM types.
> - Implement full concurrent threading! (this is a big one :-)).
> - And many more (check the TODO file for more info).
>
> Once we arrive at a point when the branch is as functional as trunk,  
> it will be merged in trunk and we will then work on stabilizing it,  
> to later on release it as 0.5. The schedule for this release is  
> unknown, it will be released when it will be ready (preferably this  
> year though).
>
> If you want to help let me know!
>
> Laurent
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel



More information about the MacRuby-devel mailing list