Ryan Davis
1/27/2007 10:22:00 AM
On Jan 26, 2007, at 6:50 PM, Nicholas wrote:
> 8<------8<------8<------8<------8<------8<------8<------8<------8<----
> --
> void
> Init_rcl(void)
> {
> cRCL = rb_define_class("rcl", rb_cObject); <=== /CRASH
> 8<------8<------8<------8<------8<------8<------8<------8<------8<----
> --
That could should be fine in pretty much any version of ruby.
> Has there been significant changes in extension loading/startup
> between ruby 1.8.2 and 1.8.5?
nope, but if you compiled and linked against one version (1.8.2) I
don't think you can count on it working in binary form on another
version, ESPECIALLY the stock 1.8.2 that ships on osx (unless apple
has fixed up their stuff).
I'm not positive, but I think even if you do recompile it on 1.8.5 it
could still be unstable because they could compile and link in the
embedded ruby entirely different from yours. You could either
refactor all your external code out to a generic dynamic library
(a .bundle on osx) and write pure ruby DL code that calls out to it
(I dunno if that is an option with sketchup or not), or you could
possibly try out rubyinline so the compile and link happens the same
as with sketchup's embedded interp. Again, dunno if that will work
with sketchup.