Since classes are now a great deal more polymorphic, it seems we don't really need a newclass opcode anymore, since HLLs will instantiate the class objects themselves anyway. Instead of having
$P0 = get_class "HLLClass" $P1 = $P0.new() Or: $P0 = get_hll_namespace $P1 = $P0.find_class("HLLClass") $P2 = $P1.new() we can just use set_hll_global and get_hll_global, storing the class PMCs like normal objects. Which makes sense, given that class PMCs can also *be* normal objects (metaclasses, etc), and we don't need a separate container for classes. My Smalltalk-to-PIR compiler used this, and it worked quite well.
Then again, the syntactic sugar methods could just be a role applied to Class, once we get roles working for low-level PMCs.
Now *that* would be cool. -- Alek Storm