I just added a simplistic new namespace mechanism to Cells that probably
will need refinement, but will certainly work for its simplistic design
goals:
If your sougth (formerly by fm-other) stuff will Just Be There during a
datapulse, and be named uniquely and absolutely (no path relative stuff
where two things have the same name but are differentiated by being
nearer (in some sense) to the seeker) then you can just look them up by
name.
This arose because I got into a cycle seeking X from Y. I quickly saw
that Cells could trivially support "if this cycles return X (in this
case nil works)" -- and tho I did not go for it for this time I expect
Cells to go there soon -- but then next I saw the problem only arose
because I had gotten lazy and structured things unusually such that a
namespace search had gone so high..well, it's complicated, but I saw
that unlazying my code would probably eliminate the cycle, but one
Design Principle of Cells is "Hey, this is supposed to make programming
easier, that does not happen if I have to sweat these things I would
naturally code." and I have been regularly solving these things by
unlazying my code but damnit Lisp is all about being lazy so I thought
let's see if there is something still sensible that lets me keep my lazy
structuring. And of course the bizarritude of fm-other and its ilk
begged to be challenged, because they blindly sail all over the
hierarchy looking for things and this invites cycles because rules
determing the populations of models may well kick off these searches --
hello cycle!
And that was what was happening here so if I could find things without
blindly traversing the hierarchy life would be good.
Peter Hildebrandt has been working on a more sophisticated alternative
scheme to namespacing, but I am in Just Ship! mode and I saw that in my
case I did not need cells-ish dependency -- X and Y came into existence
during the same datapulse, so a simple registration at make-instance
time would work fine, and that is what I did.
I think searching the source on "register" will return the unsurprising
details.
kt