Ticket #1672 (new bug) — at Initial Version
TT #389 fix introduced regression with globals.
Reported by: | coke | Owned by: | |
---|---|---|---|
Priority: | blocker | Milestone: | |
Component: | core | Version: | trunk |
Severity: | high | Keywords: | |
Cc: | allison | Language: | tcl |
Patch status: | Platform: |
Description
r45827 introduces a regression in partcl. Stripping it down to the smallest PIR I can:
.sub 'blah' load_bytecode 'PGE.pbc' $P0 = compreg 'PGE::Perl6Regex' $P1 = $P0('\:\:+') set_root_global 'arg', $P1 $P0 = get_root_global 'arg' unless null $P0 goto good print "not " good: say "ok" .end
This prints "not ok" in r45827 and HEAD, but I expect it to print "ok", even after the :nsentry fixes.
I suspect that the change to the namespace PMC was overbroad, and shouldn't have impacted this case where I am quite deliberately sticking something that ISA Sub into a namespace. (As opposed to declaring a .sub and letting the PIR compiler decide what to do with it.)
On the other hand, if I'm mistaken, and I have to do the same work that IMCC is doing to add the :nsentry flag, how do I do that? It doesn't appear that the C-level flag SUB_COMP_FLAG_NSENTRY (and sub_comp_flags_enum) is used anywhere other than IMCC or the Namespace PMC.