Ticket #1700 (closed bug: invalid)

Opened 4 years ago

Last modified 4 years ago

OpLib caching doesn't survive after initializing of parrot trace.

Reported by: bacek Owned by:
Priority: major Milestone:
Component: core Version: trunk
Severity: medium Keywords:
Cc: Language:
Patch status: Platform:

Description

Hello.

Main problem - debug_core reinitialize core pmcs.

Simple testcase:

.sub "main"
    .local pmc oplib
    oplib = new 'OpLib'
    trace 1
    $P0 = oplib['say_sc']
.end
~/src/parrot (master)$ ./parrot t.pir 
0005 set P0, P1["say_sc"]                                        P0=PMCNULL P1=OpLib=PMC(0x12bf0f0) 
Segmentation fault

-- Bacek

Change History

  Changed 4 years ago by plobsing

The testcase appears to work now. Can this ticket be closed?

follow-up: ↓ 3   Changed 4 years ago by jkeenan

Hmm. I got:

$ cat t.pir

.sub "main"
    .local pmc oplib
    oplib = new 'OpLib'
    trace 1
    $P0 = oplib['say_sc']
.end

$ ./parrot t.pir
OpLib must be initialized with an oplib name
current instr.: 'main' pc 0 (t.pir:6)

Am I doing something wrong? Or is this not really fixed?

kid51

in reply to: ↑ 2   Changed 4 years ago by plobsing

Replying to jkeenan:

Hmm. I got:

$ ./parrot t.pir
OpLib must be initialized with an oplib name
current instr.: 'main' pc 0 (t.pir:6)

Am I doing something wrong? Or is this not really fixed? kid51

Sorry, I forgot to mention that with the changes to the way dynops work, OpLib has changed slightly. You now have to specify the name of the oplib you want in the constructor. The modified testcase is:

.sub "main"
    .local pmc oplib
    $P0 = box 'core_ops'
    oplib = new 'OpLib', $P0
    trace 1
    $P0 = oplib['say_sc']
.end

  Changed 4 years ago by bacek

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

Hello.

Since dynoplib_mapping merged OpLib isn't singletone anymore. Resolving ticket.

-- Bacek

Note: See TracTickets for help on using tickets.