There isn't a RubyCocoa package available for Tiger yet. This wouldn't be much of a problem except the package for Panther is (rightfully so) compiled against Ruby 1.6. It works, but not with 1.8 stuff. Obviously compiling it is in order.
...except compiling RubyCocoa from source fails when the config step reaches the wrapper generator:
cd src/objc/cocoa; ruby gen_cocoa_wrapper.rb
/usr/include/stdarg.h:4: inclusion of /usr/include/stdarg.h nested too deep
/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:65: undefined type, found `va_list'
cpp-precomp: warning: errors during smart preprocessing, retrying in basic mode
NSObjCRuntime.h
/usr/include/stdarg.h:4: inclusion of /usr/include/stdarg.h nested too deep
/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:65: undefined type, found `va_list'
cpp-precomp: warning: errors during smart preprocessing, retrying in basic mode
NSAffineTransform.h
This continues ad nauseam until it reaches NSObjCRuntime.h:65, and then it just... stops. I ran it again with the debugger and found that by breaking and hitting continue (c), it did continue. This happens several more times.
I don't know the Ruby debugger well enough to do an analysis more detailed than that, but there's more. 'setup' and 'install' seem to work, except that when you run a RubyCocoa app it says:
dyld: lazy symbol binding failed: Symbol not found: _init_AppKit
Referenced from: /Library/Frameworks/RubyCocoa.framework/Versions/A/RubyCocoa
Expected in: flat namespace
dyld: Symbol not found: _init_AppKit
Referenced from: /Library/Frameworks/RubyCocoa.framework/Versions/A/RubyCocoa
Expected in: flat namespace
And promptly exits due to a SIGTRAP.
Rummaging around in RubyCocoa.framework's code, I found an external reference to init_AppKit(). My C skills are fairly limited (and Obj-C for that matter, hence my interest in RC). So.. the wrapper generator failed to grab this, maybe? Maybe more?
Has anyone managed to get RubyCocoa to successfully compile and work on Tiger?
j.m