[MacRuby-devel] Stream of Consciousness Testing Log
Pierce T. Wetter III
PIERCE at TWINFORCES.COM
Mon Mar 31 10:04:29 PDT 2008
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
More information about the MacRuby-devel
mailing list