<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">><br>
> if it's still feasible i suggest to replace REGISTER-IMMUTABLE-SYSTEM<br>
> with (SETF SYSTEM-MUTABLE-P) and stop exporting *IMMUTABLE-SYSTEMS*.<br>
><br>
</span>I think it's too late to make changes for 3.1.5.<br>
<br>
Indeed, it's probably a bad idea to export *IMMUTABLE-SYSTEMS*. Maybe<br>
to late to fix in 3.1.5, but hopefully will be fixed in 3.2.<br>
<span class=""><br></span>"Ask not what the government can do for you. Ask what the government is doing<br>
to you." — David Friedman, "The Machinery of Freedom", p. 21<br>
<br>
</blockquote></div><br><br>I think either way will work for us, but if register-immutable-system goes away, it will mean an application code change for us. We are not accessing *immutable-sytems* directly, so no worries there whether it's exported or not. </div><div class="gmail_extra"><br></div><div class="gmail_extra">We do call register-immutable-systems, however. </div><div class="gmail_extra"><br></div><div class="gmail_extra">For the record, here is how we are using it:</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">We make pre-built Gendl or Genworks GDL distributions which do not include any ASDF or Quicklisp at all, but they are built with monolithic-compile-bundles generated using asdf in our build environment. </div><div class="gmail_extra"><br></div><div class="gmail_extra">For downstream users of prebuilt distributions who then want to load ASDF and Quicklisp, we provide a function, "load-quicklisp," which we ask users to call, rather than directly loading the quicklisp/setup.lisp themselves. </div><div class="gmail_extra"><br></div><div class="gmail_extra">This function takes a :path keyword argument which defaults to the location of the quicklisp/ directory which we ship with our system. So if the user wants to use a different quicklisp/ directory (unsupported by us if they pick a different quicklisp version than what we built with and shipped), they can do it with that :path argument. The more usual case is that they copy our shipped quicklisp/ directory into a location where they have write access, because they want to put stuff into its local-projects/ or do other things which require write-access to the quicklisp/ directory. </div><div class="gmail_extra"><br></div><div class="gmail_extra">The :path binds the dynamic variable *quicklisp-home*, as used in the following code: </div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra"><br></div><div class="gmail_extra">(load (merge-pathnames "setup.lisp" *quicklisp-home*))</div><div class="gmail_extra"> </div><div class="gmail_extra">(defclass asdf::gdl (asdf::cl-source-file) ((type :initform "gdl")))</div><div class="gmail_extra">(defclass asdf::gendl (asdf::cl-source-file) ((type :initform "gendl")))</div><div class="gmail_extra">(defclass asdf::lisp (asdf::cl-source-file) ())</div><div class="gmail_extra"><br></div><div class="gmail_extra">(let ((preloaded gdl::*already-loaded-systems*))</div><div class="gmail_extra"> (dolist (system preloaded) </div><div class="gmail_extra"> (asdf/find-system:register-immutable-system system)))</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">So as you can see, we maintain a variable gdl::*already-loaded-systems* (which probably ought to be exported, now that I mention it), which is used to establish the immutable-systems upon loading of quicklisp and asdf into the prebuilt image. And we do a few other extra initialization things after loading the quicklisp/setup.lisp. </div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">-- <br></div></div><div class="gmail_extra"><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>My Best,<br><br>Dave Cooper<br><a href="http://genworks.com" target="_blank">genworks.com</a>, <a href="http://gendl.org" target="_blank">gendl.org</a><br>+1 248-330-2979<br></div><div><br></div></div></div></div></div>
</div></div>