I've got a partial solution to the pending question of namespace vs. class.
Specifically, I've realized that Parrot already had most of a simple
solution to populating a class's methods even if the class has no public
namespace, what with the ".const .Sub" technique.
When I went to implement the rest, I found it was already mostly there:
default.pmc already implements the "add_method" vtable entry, but there's no
"addmethod" opcode... or at least, there _was_ no "addmethod" opcode until
a minute ago. :-) This example now works:
.sub main :main
.local pmc c
c = newclass ['whatever']
.const .Sub foo = "whatever_foo"
addmethod c, "foo", foo
$P0 = new ['whatever']
$P0.foo()
.end
.sub whatever_foo :anon :method
print "Foo!\n"
.end
Note that the default implementation of vtable add_method() still depends on
public namespaces. But we can fix that. }:-)
--
Chip Salzenberg <[EMAIL PROTECTED]>