chromatic wrote:
The scalar PMC is abstract, but it contains multis that need registration with
the MMD system at initialization time. PMCs containing multis register those
multis in their Parrot_<PMC name>_class_init() functions.
At least, non-abstract PMCs do.
I ran into a similar problem with my vtable cloning work. We may need to
initialize abstract PMCs somehow.
Yes. I changed scalar to a non-abstract PMC with init a few days ago,
but reverted it. (Abstract with init doesn't work, because the abstract
class is never registered with Parrot, and therefore doesn't exist for
multiple dispatch.) The current top two options in my mind:
a) Do abstract base classes as currently implemented in Parrot serve any
useful purpose? If not, eliminate them.
b) Should abstract base classes be participating in multiple dispatch?
If not, move the multi declarations to other real classes.
Allison