[MacRuby-devel] LLVM 2.8

Laurent Sansonetti lsansonetti at apple.com
Mon Sep 27 22:20:14 PDT 2010


Hi Craig,

On Sep 27, 2010, at 9:48 AM, Craig Bosma wrote:

> Thanks Laurent,
> 
> I am interested in learning more about MacRuby/LLVM internals, so
> perhaps this is a good opportunity. I created a patch (attached) that
> gets MacRuby building with LLVM 2.8rc2, but I'm quite certain that
> this bit:
> 
>     dbg_mdkind = context.getMDKindID("dbg");
> -    assert(dbg_mdkind != 0);
> +    //assert(dbg_mdkind != 0);
> 
> is all wrong. I presume that the assertion is there to verify the
> presence of debug metadata, but beyond that -- where the debug
> metadata is created, what may have changed in 2.8 pertaining to
> metadata, or even the basic metadata model/API of LLVM are currently
> beyond me. Any suggestions for a basic primer on LLVM's architecture,
> or pointers on where to start digging?

I guess the debug metadata API changed again. I am not aware of any documentation about LLVM internals except its source code :)

However, strange enough, Watson tried your patch and was able to get debugging backtraces working. So, some investigation is required I think. I will have a quick look tomorrow.

> I *think* the other changes are straightforward (per the 2.8 release notes).

Indeed, looks straightforward. Thanks for working on this :)

We might need to adapt the patch a little bit since the project must still build with an older version of LLVM, but I will do the necessary tweaks.

> Also, I see there are a lot of rake tests; which one(s) would be a
> good sanity check when hacking on MacRuby?

We generally use the RubySpec suite for that. You can run it using:

$ rake spec:ci

Laurent


More information about the MacRuby-devel mailing list