Based on my reading of the documentation for get_namespace, this behavior
isn't surprising, but based on what I want to do with the code, this behavior
is very surprising:
works.pir:
.sub 'main' :main
.include 'runtime/parrot/include/test_more.pir'
.end
breaks.pir:
.namespace [ 'Any'; 'Namespace'; 'Will'; 'Do' ]
.sub 'main' :main
.include 'runtime/parrot/include/test_more.pir'
.end
The problem is that the test_more.pir snippet contains:
.local pmc exports, curr_namespace, test_namespace
curr_namespace = get_namespace
test_namespace = get_namespace [ 'Test'; 'More' ]
The final get_namespace call tries to find a namespace with that key *relative
to the current namespace*. That is, in the second example:
[ 'Any'; 'Namespace'; 'Will'; 'Do'; 'Test'; 'More' ]
... which isn't exactly what I want.
What's wrong, my expectation or the documentation/implementation? (If my
expectation is wrong, what's the point of get_namespace when it breaks with
spooky action at a distance depending on if you just so happen to be in
another namespace with it?)
-- c