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

Reply via email to