[MacRuby-devel] branches/experimental

Laurent Sansonetti lsansonetti at apple.com
Sat Mar 28 12:56:24 PDT 2009


Most likely 0.6, unless someone volunteers to do it now :-)

Laurent

On Mar 28, 2009, at 12:48 PM, Jordan Breeding wrote:

> Will OSA support be a 0.5 or a 0.6 task?
>
> On Mar 28, 2009, at 14:37, Laurent Sansonetti  
> <lsansonetti at apple.com> 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
> _______________________________________________
> 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