Ticket #1147 (closed bug: fixed)

Opened 5 years ago

Last modified 4 years ago

[PATCH] update nci.pmc for pcc_reapply

Reported by: plobsing Owned by: plobsing
Priority: normal Milestone:
Component: core Version: 1.6.0
Severity: high Keywords: JIT, NCI
Cc: Language:
Patch status: Platform:

Description (last modified by bacek) (diff)

This patch does the following:

* fix src/pmc/nci.pmc to emit the new pcc signatures

* add tests to t/pmc/nci.t to test nci.pmc signatures against nativecall.pl signatures

* split minimal signature conversion logic from nativecall.pl out into Parrot::NativeCall to support testing

* add vtable interface to nci.pmc to query attributes (eg: pcc_signature)

* nci.pmc now eagerly builds the pcc signature and arity attributes

* remove poking of nci.pmc's private1 flag. (it didn't do anything)

* change JIT thunk call signature to match static frame functions call signature. This should be less confusing. The new VTABLE interfaces on the NCI pmc should be used to get the signature.

There are still a couple of TODOs related to cleaning up nci.pmc. I will remedy these soon.

Attachments

nci_pmc_fixup.patch Download (33.4 KB) - added by plobsing 5 years ago.
nci_pmc_fixup_minimal.patch Download (19.4 KB) - added by plobsing 5 years ago.
nci_pmc_fixup_additional.patch Download (1.3 KB) - added by plobsing 5 years ago.
nci_pmc_fixup_tests.patch Download (9.6 KB) - added by plobsing 5 years ago.
nci_pmc_fixup_minimal_v2.patch Download (18.2 KB) - added by plobsing 5 years ago.
removed code motion as best I could

Change History

Changed 5 years ago by plobsing

Changed 5 years ago by plobsing

Patch updated.

- Couldn't eliminate raw flag. Now understand why.

- Managed to use native string ops in set_string_native.

- Will defer handling reseting of pointer/signature for now.

Changed 5 years ago by plobsing

Changed 5 years ago by plobsing

Changed 5 years ago by plobsing

Split out patch into 3.

minimal: Only NCI PMC changes.

tests: added tests of NCI PMC functionalit

additional: remove useless poking of private1 flag, add deprecation notice for 'v' = void parameters in NCI

Changed 5 years ago by plobsing

Changed 5 years ago by plobsing

removed code motion as best I could

Changed 5 years ago by bacek

  • owner set to whiteknight

Reassign to Whiteknight for review.

Changed 5 years ago by bacek

  • description modified (diff)

Changed 4 years ago by plobsing

  • owner changed from whiteknight to plobsing

Changed 4 years ago by plobsing

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

This is mostly fixed. The testing and the other additional fixes are wontfix. Proof that nci.pmc generates correct signatures is given by my libjit_fb dynext library which depends on this functionality.

Note: See TracTickets for help on using tickets.