While putting together the news entries for the 0.4.13 release, I ended
up doing a code review on PMCProxy.
It looks like every low-level PMC is creating a proxy object for itself
and these proxies are stored in the interpreter global parrot_interp_t.
I intended that proxies would only be created when they were needed by a
subclassing Class PMC, and would only be stored in the Class PMC.
Looking at the code from another perspective, though, maybe what we've
got here is the beginning of an "HLLSubclassable" role that adds a
handful of Class methods to low-level PMCs.
Ultimately all PMCs need to be able to respond to inspect_str. And
ultimately, all PMCs need to have an entry in their NameSpace so the
type IDs can go away entirely. So these parts of the implementation are
more general than PMCProxy.
Allison
- PMC Proxy high-level review Allison Randal
-