# New Ticket Created by  Bob Rogers 
# Please include the string:  [perl #50040]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=50040 >


   The attached tarball has a test case in which one file
(gc-debug-test.pir) loads another (structures.pir), where the second has
a :load sub that calls a sub defined in the first file.  The bug is
that, under what must be fairly arcane conditions, get_hll_global in the
:load sub doesn't find the sub defined in the main file.  To reproduce,
unpack the tarball, edit the makefile macros to point to your Parrot
instance, and type "make".  You should get a "couldn't find
_fdefn_init_kludge" error.  If it fails to fail, it will say "hey, it's
working", and exit normally.

   I've been seeing this problem intermittently for at least three or
four months now, but had never been able to isolate a test case until I
tried specifying --runcore=gcdebug (chromatic++!) while tracking down
another problem (which may be related).  It fails reliably for me on
GNU/Linux with x86 in Parrot r25001 and r25076, using two separate
distro versions.

   Some additional clues:

   1.  It appears to require not only loading the pmclass via .HLL, but
doing a get_class of that pmclass before loading structures.pbc file.

   2.  Trimming any more subs out of structures.pir makes it work.
(There are dependencies between the :load subs, so work backwards from
the next-to-last one.)  If it works for you off the bat, you may be on
the other side of some internal threshold; rename orig-structures.pir to
structures.pir and try again.

   3.  And, of course, it needs --runcore=gcdebug to fail.

   This is my current roadblock, so I'll continue looking at it, but I
would be exceedingly grateful for any help.  Just knowing that someone
else can reproduce this would be very good for my sanity.

   TIA,

                                        -- Bob Rogers
                                           http://rgrjr.dyndns.org/

Attachment: gc-bug.tgz
Description: Binary data

Reply via email to