Ok, so I have a rubycocoa application with source freely available. So lets try to bootstrap it into MacRuby and see what happens. So first, lets copy the Xcode project file, since it seems like at this point there's no way to embed MacRuby directly so I'll have to tweak some settings in the project, and I don't want to have to undo them later when I go back to Rubycocoa. Or at least that's what I had to do last time. Let's make a new project in Xcode to get the settings I need since they don't seem to be documented in the Wiki. Hmmm... Making a new Ruby-Core Data application made what looks like a RubyCocoa app. Ah, there's a new thing called User Templates now. Must be a tweak because I'm using the iPhone SDK release of XCode. Ok, there's a Mac Ruby template project, loading that. Bringing up project settings to look for the settings... Hmmm... Don't see any. There were references to /usr/local last time I tried this. Well, lets run it and see what happens... No joy, can't find MacRuby/MacRuby.h Ok, the project template is broken. Maybe there's a developer example I can steal from instead. Trying DotView. Same problem. Ok, searching for the most recent xcoderproject version. Hmm. ABPresence looks newer. Nope, doesn't build either. Hmmm.. There's a MacRuby.framework listed in the project files, there didn't used to be. Trying to find it via locate.... no joy. Ok, ls /Library/Framework. I see it there. ls /Library/Framework/MacRuby/Framework Hmmm... I even see MacRuby.h: more /Library/Frameworks/MacRuby.framework/Headers/MacRuby.h #define RUBY_INCLUDED_AS_FRAMEWORK 1 #include "ruby/ruby.h" Hmm... Pretty short. Ok, so unlike the last time I tried, MacRuby is now just a framework to link against. Removing RubyCocoa.framework. Adding MacRuby.framework Opening the old main.m, saving it as main-mr.m, (which updates the project to point at the new file), editing it to call macruby_main. Hmmm... Same problem, never heard of MacRuby/MacRuby.h Well, I'll just comment out the import for now. Works in ABPresence, now lets try my app. ok, its building everything...I get a warning about macruby_main being implicitly defined, yadda, yadda. Running... Hmmm.... [Session started at 2008-03-31 09:46:42 -0700.] Assertion failed: (__auto_zone != NULL), function ruby_xmalloc, file gc.c, line 296. The Debugger has exited due to signal 6 (SIGABRT).The Debugger has exited due to signal 6 (SIGABRT). I'm guessing, but I bet that I have to turn GC on, because it has to be OFF for RubyCocoa, but ON for MacRuby. Someone should put a useful message on that assertion like "Hey dummy, turn on GC". Ok, changing that to "supported" Doesn't like Sparkle, because I built it without GC. Ok, turning that on and rebuilding Sparkle. Now where did I put that? Ah, there it is. Changing garb to supported. Hmm... Its grumping about osx/cocoa getting included in rb_main.rb. Ok, doing my save-as trick again. Ah, that doesn't work because I have to change main-mr.m as well. Hmm... More problems because I'm using OSX:: Hey, I'm being a dummy, I can just copy rb_main.rb from Address book. Ok, doing that, changing InstantMessage to CoreData. Sigh, another complaint on a different OSX.require_Framework. Let's try this hack: class OSX def OSX.require_framework(foo) framework foo end end before the requires. Ok, running... That seems to work. But now I get: [Session started at 2008-03-31 09:58:55 -0700.] /Users/pierce/svnProjects/build/Debug/Frictionless.app/Contents/ Resources/rb_main-mr.rb:13: [BUG] unresolved bridgesupport constant `CFBinaryHeapCompareContext' not in cache MacRuby version 0.1 (ruby 1.9.0 2008-03-01) [universal-darwin9.0] -- control frame ---------- c:0004 p:---- s:0011 b:0011 l:000010 d:000010 CFUNC :framework c:0003 p:0019 s:0007 b:0007 l:000006 d:000006 TOP /Users/pierce/ svnProjects/build/Debug/Frictionless.app/Contents/Resources/rb_main- mr.rb:13 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH :inherited c:0001 p:0000 s:0002 b:0002 l:000001 d:000001 TOP --------------------------- DBG> : "/Users/pierce/svnProjects/build/Debug/Frictionless.app/ Contents/Resources/rb_main-mr.rb:13:in `<main>'" -- backtrace of native function call (Use addr2line) -- 0x2a2146 0x1d60dc 0x1d611b 0x2acb0d 0x27e8d7 0x1cd9e4 0x2af0f4 0x2b2f93 0x2b2bcc 0x2b2bcc 0x2b5517 0x2a9f3a 0x2927c5 0x2a0510 0x299d92 0x29f71c 0x29f9f1 0x1d9afa 0x1df0df 0x2aa8cb 0x2561 0x2506 ------------------------------------------------------- The Debugger has exited due to signal 6 (SIGABRT).The Debugger has exited due to signal 6 (SIGABRT). Well, that's as far as I can get. Let me know if anyone wants all the necessary pieces zipped up somewhere. the rb_main.rb:13 above looks like a red herring though, because the code in that looks like this: framework 'Cocoa' framework 'AddressBook' <--- line 13 Pierce