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