Parrot's default namespace implementation should be 100% untyped --
basically just a hash with some additional methods.
Making this happen requires solving the problem of Parrot's currently
requiring classes and class method namespaces to have the same name.
e.g. the current situation is:
find_global 'MyClass' # 'MyClass' is class object
find_global ['MyClass'], 'mymethod' # 'MyClass' is namespace object
Depending on a typed namespace in the core of Parrot is Not OK.
--
Chip Salzenberg <ch...@pobox.com>
It shouldn't be untyped, it should just consistently be a namespace
object. Under the new object metamodel, you can retrieve the class
object (when it exists) by calling a method on the namespace object.
And, you no longer look up methods in the global namespace anyway, you
have to look them up on the class object.
This ticket represents an alternate way to address some problems in the
earlier object system (a solution we considered at one point in the
past, but it wasn't a complete solution). So, I've marked the ticket as
rejected.