On Wed, Jul 15, 2015 at 10:32 PM, Attila Lendvai attila@lendvai.name wrote:
SYSTEM-MUTABLE-P take a real *SYSTEM* as argument, instead of having an odd API where only a system-NAME is acceptable.
note:
CL-USER> (asdf:coerce-name (asdf:find-system :hu.dwim.def)) "hu.dwim.def"
I think having a confusing name that we deprecate is better than taking the good name, and implementing something bad on it. This way we can think about a better API and put the better API on the better name.
i thought (and stated previously, with a doubt) that RIS is something new, but now that i double checked i realized it's already there since 2014 aug, exported:
https://github.com/fare/asdf/commit/1b38225b8cc5749fafac9f300ac469fd92beba86
it's a lost case then, it's already published, so there's no way other than the deprecation way. in that case it's not an urgent issue, just put it on the TODO.
It's been written last august, but in a branch that was rebased into master around 3.1.4.15, so not all is lost. The only user so far is Dave Cooper, and he's watching the list, so we can safely change the API. The deeper question is: what exactly is the API we want?
Now that I look at the code, I believe one reason that register-immutable-system works the way it does is so as to still work after all systems are cleared, e.g. by a non-backward-compatible asdf upgrade. See the (register-hook-function '*post-upgrade-cleanup-hook* 'clear-defined-systems nil) form in asdf/find-system.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Never abandon a theory that explains something until you have a theory that explains more. — John McCarthy