Ticket #314 (closed todo: fixed)

Opened 6 years ago

Last modified 6 years ago

.HLL_map doesn't do what we want

Reported by: whiteknight Owned by: coke
Priority: normal Milestone: 1.1
Component: core Version:
Severity: medium Keywords: imcc hll
Cc: Language:
Patch status: Platform: all

Description

See #216 for more background information. The .HLL_map directive doesn't really do what we want it to do: It can't be used to map HLL types defined at runtime, only HLL types that are defined at compile time. As a general workaround, you can use the $P0.'hll_map'() method on the ParrotInterpreter PMC to map classes defined at runtime.

I don't think it's a good idea to have a .HLL_map directive that silently fails depending on where the class is defined. I think there are two solutions to this:

1) Deprecate .HLL_map, and use ParrotInterpreter.'hll_map'() exclusively. 2) Work on some kind of cache that .HLL_map can use to store mapped type names that aren't known at compile time, and get resolved to a class type at runtime after that type has been properly defined.

Either way, the current implementation of .HLL_map is too confusing and unhelpful for what we need, and we need to get it right by 1.0.

Change History

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

A deprecation notice was added in time, so we can go with option 1 here. (remove .HLL_map).

Just want a few votes from folks before we rip it out.

  Changed 6 years ago by NotFound

+1

  Changed 6 years ago by pmichaud

+1

Pm

in reply to: ↑ 1   Changed 6 years ago by tene

+1

  Changed 6 years ago by coke

  • owner set to coke

  Changed 6 years ago by coke

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

Removed in r37586.

Note: See TracTickets for help on using tickets.