Ticket #1672 (new bug) — at Initial Version

Opened 12 years ago

Last modified 11 years ago

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.

Note: See TracTickets for help on using tickets.