Ticket #1857 (new bug)

Opened 4 years ago

Last modified 3 years ago

Change remaining deprecated usages of set/get _addr to set/get _label

Reported by: NotFound Owned by:
Priority: normal Milestone: 2.10
Component: core Version: 2.10.0
Severity: medium Keywords:
Cc: Language:
Patch status: Platform:

Description

TT #218 deprecates several usages of set_addr and establishes set_label as its replacement. However there are still remaining usages of the deprecated form in our tests, possibly in other parts of the repo and in HLLs.

I'm opening this new ticket as a remainder and as help in order to solve TT #218.

Please add comments here about the status of relevant HLLs.

Change History

  Changed 4 years ago by NotFound

Winxed is clean now.

  Changed 4 years ago by NotFound

  • summary changed from Change remaining deprecated usages of set_addr to set_label to Change remaining deprecated usages of set/get _addr to set/get _label

  Changed 4 years ago by NotFound

Changed today some of the remaining usages in the repo.

There are a lot of set_addr generated by nqp-rx. I think this should ne changed in the main nqp-rx repo.

  Changed 4 years ago by bacek

Hello.

It's actually PAST::Compiler who generates it. We can fix it in parrot repo.

bacek@illusion:~/src/parrot$ grep set_addr compilers/pct/ -r
compilers/pct/src/PAST/Compiler.pir:    ops.'push_pirop'('set_addr', ehreg, label)
compilers/pct/src/PAST/Compiler.pir:    bpost.'push_pirop'('set_addr', $S0, ctrllabel)
compilers/pct/src/PAST/Compiler.pir:    ops.'push_pirop'('set_addr', handreg, handlabel)

-- Bacek

follow-up: ↓ 6   Changed 4 years ago by NotFound

That was already fixed, so the problem may be that nqp-rx stage 0 files must be regenerated and committed.

in reply to: ↑ 5 ; follow-up: ↓ 7   Changed 3 years ago by jkeenan

  • component changed from none to core

Replying to NotFound:

That was already fixed, so the problem may be that nqp-rx stage 0 files must be regenerated and committed.

1. Could you try that out?

2. The deprecation notice in api.yaml reads as follows:

  name:  'get_addr and set_addr'
  eligible:  '1.5'
  note:  'These opcodes are being repurposed. They will always 
return a unique memory address of the PMC. Uses of get_addr and 
set_addr that would set label values for Sub, Exception, and 
related PMC types will instead be handled by get_label and 
set_label.'

Do we have any remaining instances of 'label-value-setting' uses of either get_addr or set_addr?

Thank you very much.

kid51

in reply to: ↑ 6   Changed 3 years ago by NotFound

Replying to jkeenan:

That was already fixed, so the problem may be that nqp-rx stage 0 files must be regenerated and committed.

1. Could you try that out?

I don't know how to do it.

Do we have any remaining instances of 'label-value-setting' uses of either get_addr or set_addr?

Probably, but it will be a lot easier to search when nqp generated ones get out of the way.

  Changed 3 years ago by benabik

All the uses of set_addr in nqp-rx are currently set_addr_i_ic (Sets register $1 to the current address plus the offset $2). This appears not to be valid to change to set_label.

I note there are still several uses of set_addr in the documentation.

Note: See TracTickets for help on using tickets.