Re: Some beginner's questions + PAR



On Friday, April 23, 2004, at 02:07 PM, Kevin Moore wrote:

Maybe somebody on this list can comment on what gtk2-perl does differently compared with other perl modules that PAR doesn't seem to like.

Glib and Gtk2 do a lot of extra work in their XS bootstrapping code; the normal DynaLoader bootstrapping process calls the boot symbol for the package with the same name as the one you've "use"d, and in Glib and Gtk2, those then call all of the other boot symbols for the rest of the extensions. See lines 285 to 319 of http://cvs.sourceforge.net/viewcvs.py/gtk2-perl/gtk2-perl-xs/Glib/ Glib.xs?annotate=1.34 , for example; the GPERL_CALL_BOOT() lines actually invoke the code in the BOOT: sections of the corresponding XS files.

If i understand PAR correctly, it actually packages the necessary modules and libraries for an XS extension in the PAR file, and extracts them to a temp dir so they can be loaded normally. In that case, i *really* don't understand why it wouldn't work.

Worse yet, it appears to do only partial bootstrapping of the Glib module. The error message listed in whitewindow's post is something from libgobject, complaining that it was not properly initialized -- however, GLib's initialization happens the first time you load Glib into your script.

Also, it may be worth pointing out to the PAR folks that this same script works flawlessly on linux (i tried it a few weeks ago and had no problems with it). If they have questions about gtk2-perl internals, point them to me.


--
He's so good, you're gonna rock, and if you don't rock, it's your own fault.
  -- kk, describing the perks of having a very good drummer.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]