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

Reply via email to