On Tue, Jul 14, 2015 at 3:40 PM, Attila Lendvai attila@lendvai.name wrote:
no, i'm fine with the functinality of REGISTER-IMMUTABLE-SYSTEM.
what i wasn't fine with is an exported global holding a hashtable, and at that time i hadn't noticed RIS because i was expecting a different name. REGISTER-IMMUTABLE-SYSTEM doesn't register any systems, it rather marks a system, that is already known by asdf, immutable. it's a different story that the implementation registers it in a hashtable as opposed to e.g. setting a flag on the system object.
Sorry, I don't remember why I did it with a hash-table rather than by adding a boolean slot to the class SYSTEM. I believe the rationale was that like with register-preloaded-system, you might want to the system compilation product as a monolithic .fasl and register without even having to a define with defsystem in the current image.
In any case, the current API is REGISTER-IMMUTABLE-SYSTEM and SYSDEF-IMMUTABLE-SYSTEM-SEARCH.
so, before i knew about RIS, i proposed an API that i still think would be better, namely SYSTEM-MUTABLE-P.
if it's still feasible i suggest to replace REGISTER-IMMUTABLE-SYSTEM with (SETF SYSTEM-MUTABLE-P) and stop exporting *IMMUTABLE-SYSTEMS*.
I think it's too late to make changes for 3.1.5.
Indeed, it's probably a bad idea to export *IMMUTABLE-SYSTEMS*. Maybe to late to fix in 3.1.5, but hopefully will be fixed in 3.2.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org "Ask not what the government can do for you. Ask what the government is doing to you." — David Friedman, "The Machinery of Freedom", p. 21