#1542: HLLs sometimes leak into loaded modules
--------------------+-------------------------------------------------------
Reporter: sorear | Type: bug
Status: new | Priority: normal
Milestone: | Component: none
Version: 2.2.0 | Severity: medium
Keywords: | Lang: blizkost
Patch: | Platform:
--------------------+-------------------------------------------------------
Changes (by plobsing):
* priority: blocker => normal
Comment:
Here's why PCT is in the perl6 HLL:
* Rakudo exports PCT (among other things) into perl6 root namespace
using Namespace.export_to
* Namespace.export_to adds to the target namespace using
Namespace.set_pmc_keyed_str
* when Namespace.set_pmc_keyed_str detects that it is adding a Namespace
to a Namespace, it reparents the child Namespace to SELF.
This means that PCT is available both as ['parrot';'PCT'] and
['perl6';'PCT'], but anything under PCT will think it is in
['perl6';'PCT'].
The good news is that the HLL associated with Namespaces, Subs, etc in
this heirarchy should remain unchanged.
The bad news is that it appears we have yet another Namespace <=> Class
mismatch occuring (which is why we get the 'Parrent isn't a Class' error).
A small patch to src/pmc/namespace.pmc is sufficient to fix *this* bug,
but I think more important here is the overall insanity of the reparenting
special case at all. Also the lingering Namespace/Class associations
(which is the root of this as well as other bugs).
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/1542#comment:4>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets