Ticket #85 (closed todo: invalid)

Opened 13 years ago

Last modified 11 years ago

Add exported function Parrot_set_HLL()

Reported by: barney Owned by: whiteknight
Priority: normal Milestone:
Component: hll_interop Version: master
Severity: medium Keywords: embed, hll
Cc: Language:
Patch status: Platform: all


Currently there is no easy way to set the hll root namespace via the embedding interface. This is bad, as this doesn't allow Parrot::Embed to find any symbol that isn't in the 'parrot' hll namespace. See ext/Parrot-Embed/t/pipp.t for an example.

Parrot_set_HLL() would call Parrot_register_HLL() and assign the returned HLL id to current_HLL of the interpreter.

Parrot_set_HLL() could also be used by set_hll() in compilers/pirc/new/pircompunit.c and in imcc.y.

Ticket #76 depends on this.

Any comments?

Change History

Changed 13 years ago by barney

This issue was discussed on #parrotsketch 2008-12-23.

The consensus was that messing with current_HLL is messy indeed. A better solution is to add on optional param 'hll' to Parrot::Embed::find_global(). The default of the parameter 'hll' would be 'parrot'. Once a sub is found, the sub knows it's appropriate hll root namespace.

Changed 13 years ago by jkeenan

  • component changed from none to hll_interop

Changed 11 years ago by whiteknight

  • keywords embed, hll added
  • platform set to all
  • version set to master
  • type changed from RFC to todo
  • owner set to whiteknight

Ability to set or change the current HLL will be added to the new embedding API, not to the existing API.

Changed 11 years ago by NotFound

There is no current_HLL in the interpreter struct. It was probably dropped during context refactors.

Changed 11 years ago by dukeleto

Does this TT make sense anymore? Please close if not.

Changed 11 years ago by whiteknight

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

I don't think this ticket does make sense any more. We probably could use more routines for working with NameSpaces in general, and HLL NameSpaces in particular, to the embedding API, but what this ticket is asking for is not valid anymore. If other things need to be added to the embedding API or any other API, those things should be asked for specifically.

Note: See TracTickets for help on using tickets.