• Review PDD 19 PIR for namespaces behavior
  • Review PDD 21 Namespaces

NameSpace PMC

  • NameSpace has too many named-storage responsibilities: subs/methods by name, nested namespaces by name, and global variables by name. These responsibilities should be broken up and accessed through separate interfaces.
    • Remove FPA_is_ns_ext flag nonsense
    • Stop using get/set_pointer_*.
  • NameSpace should cache it's own fully-qualified name in a standard format (RSA, FSA, etc)
  • Decouple NameSpace and Class. One should not imply or require the existence of the other
    • Stop marshaling Sub/methods from NameSpace to Class. Or, find a much less expensive way to do it. For instance, if we have a specialized "sub cache" object, we can simply move that sub cache from the NameSpace to the Class.
  • get_namespace_pmc should be renamed to indicate that it operates on subs. It should probably not poke directly into the sub guts
  • del_* methods should be renamed to "delete_", for clarity

src/namespace.c