Ticket #1596 (closed bug: fixed)

Opened 5 years ago

Last modified 5 years ago

PIR methods fail to be added to PMCs unless marked :nsentry

Reported by: jonathan Owned by:
Priority: blocker Milestone:
Component: core Version: trunk
Severity: medium Keywords:
Cc: Language: perl6
Patch status: Platform: all

Description

The reason that Rakudo won't build on current Parrot (OK, it may not be the _only_ reason, but it's certainly the current blocker) boils down to the following:

.HLL 'perl6'
.namespace []
.sub 'main' :main
    $P0 = new 'ResizablePMCArray'
    $P0.'HOW'()
.end

.HLL 'parrot'
.namespace ["ResizablePMCArray"]
# XXX If you remove :nsentry here, we fail.
.sub 'HOW' :method :nsentry
    say "ok"
.end

Got it down to PIR only with no Rakudo-y bits, so hopefully it's easy to work with. Essentially, you should be able to add methods to PMCs without having to also have them live in the namespace. This seems to be fallout from the :nsentry work, which is great, but unfortunately we're kinda blocked on this bug in it.

Thanks,

Jonathan

Change History

  Changed 5 years ago by coke

See TT#389.

  Changed 5 years ago by coke

Test added in r46083.

follow-up: ↓ 4   Changed 5 years ago by allison

I committed a fix for this and untodo'd the test in r46092. The fix still looks in the namespace after looking in the class and method cache, because C-level PMC methods are still stored in the namespace.

in reply to: ↑ 3   Changed 5 years ago by coke

  • status changed from new to closed
  • resolution set to fixed

Replying to allison:

I committed a fix for this and untodo'd the test in r46092. The fix still looks in the namespace after looking in the class and method cache, because C-level PMC methods are still stored in the namespace.

Closing ticket.

Note: See TracTickets for help on using tickets.