On Mon, Jul 8, 2013 at 11:42 AM, Zach Beane xach@xach.com wrote:
Faré fahree@gmail.com writes:
As for stripping the /, currently it's done by the individual functions in *system-definition-search-functions* by calling primary-system-name.
I think this could be moved into search-for-system-definition by wrapping coerce-name in primary-system-name.
One issue I see with this is that some s-f-s-d handlers might be sensitive to the full name rather than to the primary system name, and always loading base on the primary name only drops the information about which specific subsystem one is looking for.
The current solution is for each s-d-s-f function to do its own thing. This is most flexible, but requires all clients of s-d-s-f to be updated to support this feature.
One solution proposed by Zach is that if and when we realize that normalizing to primary system name is always the right thing to do, this can be moved up the call chain — but is it the case? Zach seems to think so, but at least I'm not convinced.
Another solution, that Zach proposed in a previous email, was to search for the full name, then the primary name as a fallback. This is somewhat quirky and makes the semantics of system naming more complex, but probably works automatically in the most cases.
Yet another solution might be to always look for the primary name first and load the system definition, then look for the full name if different. This makes the semantics more regular, though a bit more expensive.
I admit picked the current solution was the most straightforward to implement, and most open to future improvements.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org What's funny with equality is how everyone has a different idea of it. —#f