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