1 | | * Review PDD 19 PIR for namespaces behavior |
2 | | * Review PDD 21 Namespaces |
3 | | * TT #389 - don't install subs with :method into NameSpaces |
4 | | * Review src/global.c: |
5 | | * Too many lookup functions may return NULL, which is inappropriate when exposed to PIR |
6 | | * PMCNULL is more appropriate for "Element does not exist"; it's used elsewhere pervasively |
7 | | * Parrot_set_global(), for example, is unsafe, considering its signature |
8 | | * There's a mixture of internal and external APIs |
9 | | * We should create an api.c file for symbols, namespaces, whatever |
| 1 | * Review PDD 19 PIR for namespaces behavior |
| 2 | * Review PDD 21 Namespaces |
| 3 | |
| 4 | = NameSpace PMC = |
| 5 | |
| 6 | * 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. |
| 7 | * Remove FPA_is_ns_ext flag nonsense |
| 8 | * Stop using get/set_pointer_*. |
| 9 | * NameSpace should cache it's own fully-qualified name in a standard format (RSA, FSA, etc) |
| 10 | * Decouple NameSpace and Class. One should not imply or require the existence of the other |
| 11 | * 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. |
| 12 | * get_namespace_pmc should be renamed to indicate that it operates on subs. It should probably not poke directly into the sub guts |
| 13 | * del_* methods should be renamed to "delete_", for clarity |
| 14 | |
| 15 | = src/namespace.c = |
| 16 | |