On Mon, Nov 22, 2010 at 03:23:26PM +0100, Father Chrysostomos wrote: > commit d7879cf0b3199eb891fd6cdb551e1f6468d6f23d > Author: Father Chrysostomos <sprout@cpan.org> > Date: Sun Nov 21 16:26:04 2010 -0800 > > mro_package_moved must act on all effective names > > See the test case in the commit. It passes in 5.8.x and blead (as of > this commit), but not 5.10-5.13.7. > > In every case the name to be passed to mro_gather_and_rename is cre- > ated using an SV, so we might as well pass that instead of extracting > the char array and length from it. > > That allows us to pass an AV instead, if there are multiple names to > take into account. > > M embed.fnc > M embed.h > M mro.c > M proto.h > M t/mro/package_aliases.t This is causing this test failure in t/op/threads.t: # PROG: # use strict; # use threads; # # sub foo::bar; # # my %h = (1, *{$::{'foo::'}}{HASH}); # *{$::{'foo::'}} = {}; # # threads->create({}, delete $h{1})->join(); # # print "end"; # EXPECTED: # (?^:\AThread 1 terminated abnormally: Not a CODE reference) # GOT: # Can't use anonymous symbol table for method lookup at - line 9. # STATUS: 7424 not ok 19 - fresh_perl - RT \#73046 # Failed at t/op/threads.t line 236 Is the problem that the test is being too specific in its expectation of the error message it's getting? Or is it more subtle than that? Um, yes, I wrote the test. As far as I can remember, the intent was to get the only reference to the stash visible to the child thread as a mortal on the stack. Nicholas ClarkThread Next