[MacRuby-devel] Will FFI make it into macruby?

Laurent Sansonetti lsansonetti at apple.com
Wed Mar 17 17:50:00 PDT 2010


Hi Jeremy,

On Mar 17, 2010, at 5:03 PM, Jeremy Voorhis wrote:

> On Wed, Mar 17, 2010 at 2:02 AM, Laurent Sansonetti <lsansonetti at apple.com> wrote:
> Hi Robert,
> 
> There is currently no plan about implementing the FFI API in MacRuby. It was my plan originally but apparently the API is not really used, so I preferred to support C extensions instead, which will be in the next release, 0.6.
> 
> Ouch! I'm getting ready to make an initial release of FFI bindings to LLVM 2.6.

Cool!

> So far they run on MRI 1.8.7, 1.9.1, and JRuby. I'd very much like to use them with MacRuby as well. At a minimum, they require attach_function, MemoryPointer and enums.

We already have a basic implementation of attach_function in MacRuby based on LLVM, but it has not been tested well. And we have a class similar to MemoryPointer too (called Pointer) which also uses LLVM to generate conversion stubs.

I think it shouldn't be hard to finish FFI inside MacRuby, it's just that I'm the only person really working on the project so far and this isn't very high on the TODO list. If one wants to help... :-)

> I'll also readily admit that lack of FFI is the biggest reason I've *not* been using MacRuby for my current projects, as well as why my bindings don't have thorough support for managing LLVMContexts.
> 
> I see that MacRuby uses llvm/ModuleProvider.h which is removed in LLVM 2.7. Am I right in assuming that MacRuby requires LLVM 2.6, and will this be the case for the forseeable future?

MacRuby is progressively following LLVM. However we do at the moment require a revision where ModuleProvider.h exists (I have a local patch that makes it work for future revisions too but it's not applied yet).

# The LLVM_TOT variable can be passed to rake in order to sometimes build with more recent revisions than the one specified in the README.rdoc file, but it is only used for internal development and targets a special internal branch of LLVM, so it might not always work against the public trunk.

Ideally we will target the final 2.7 once it's out, which shouldn't be long now.

Laurent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20100317/bedc03ed/attachment.html>


More information about the MacRuby-devel mailing list