1) lib/Parrot/PMC.pm is the canonical source of PMC class => enum mapping.
2) the class enums should be numbered so that "base" classes come first and dependent classes later.
3) If we keep the current scheme for Const$class generation and switching, we have to use this numbering scheme:
default ... implicitely #0
odd enums ... plain class
even enums ... Const variant of class
4) Where config/* now have $pmc_names, %pmc_types is used.
5) Adding a new class starts with editing PMC.pm. If the current numbering can not be kept, PBC_COMPAT gets an entry too and thus invalidates existing PBCs.
6) The interactive step of selecting PMCs is IMHO unneeded. Its error prone, rarely used PMCs can be dynamically loaded.
7) We probably have to reserve some slots for Perl5-classes
Comments welcome leo
Some additional remarks:
1) is now autogenerated, .cvsignore and MANIFEST need adjustment too
2) e.g. ParrotIO needs NCI, PerlHash, PerlUndef already initialized
3) this would generate some empty slots in the table of vtables.
Alternatively we could use a mapping in the vtable base_type <=> const_type. Or we always generate the Const variant of a class.