<div dir="ltr"><div><br></div><div>Faré wrote:</div><div>></div><div>>  Using asdf 3.1, you can use *immutable-systems* for that (see its docstring).</div><div>></div><div><br></div><div>Ok... After initializing Quicklisp and ASDF, I do:</div>
<div><br></div><div>  (setq asdf:*immutable-systems* (uiop:list-to-hash-set "gendl" ... ))</div><div><br></div><div>as well as </div><div><br></div><div> (asdf/find-system:register-preloaded-system "gendl") </div>
<div> ...</div><div><br></div><div>with all the known preloaded systems. <br></div><div><br></div><div><br></div><div>But now if I do</div><div><br></div><div>  (ql:quickload :gendl)</div><div><br></div><div>I still get this error:</div>
<div><br></div><div>   "Requested system gendl is in the *immutable-systems* set, but not loaded in memory"</div><div><br></div><div>Apparently,</div><div><br></div><div>   (asdf:system-registered-p "gendl")</div>
<div><br></div><div>is still coming back as NIL.</div><div><br></div><div>Is there another step I should be doing? </div><div><br></div><div><br></div><div>  </div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Sat, Aug 9, 2014 at 1:09 AM, Faré <span dir="ltr"><<a href="mailto:fahree@gmail.com" target="_blank">fahree@gmail.com</a>></span> wrote:<br><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">
<div class=""><div class="h5">On Fri, Aug 8, 2014 at 10:54 PM, Dave Cooper <<a href="mailto:david.cooper@genworks.com">david.cooper@genworks.com</a>> wrote:<br>
> Hi, I know this has been discussed, but what is currently the best practice<br>
> for registering a preloaded system after loading Quicklisp?  That is, I have<br>
> a pre-built image with some Quicklisp/ASDF systems in it, which were loaded<br>
> through so-called monolithic-fasls (now known as compile-bundles). So the<br>
> pre-built image doesn’t itself have ASDF or Quicklisp.<br>
><br>
> A downstream user then loads Quicklisp and ASDF (I take steps to ensure that<br>
> they are loading the matching version of ASDF and Quicklisp as was used to<br>
> build the image).  Now I need to do something to tell Quicklisp and ASDF<br>
> that certain systems are already loaded in this image, so it won’t try to<br>
> re-load them as depended-upon systems. In this specific case, I don't want<br>
> it to try to fetch and reload Gendl when the user does (ql:quickload ...) on<br>
> an application which :depends-on :gendl (because gendl is already built into<br>
> this image).<br>
><br>
> asdf/find-system:register-preloaded-system seems like it should be the<br>
> answer if we’re talking about plain ASDF, because it will prevent ASDF from<br>
> raising a “missing-component” error for the system in question, if some<br>
> other system :depends-on it and yet no source code is found.  But in my case<br>
> I can’t guarantee that “no source code is found.” The source might be there<br>
> in the quicklisp dist directory. So apparently I need something stronger<br>
> than register-preloaded-system? Or something else?<br>
><br>
</div></div>Using asdf 3.1, you can use *immutable-systems* for that (see its docstring).<br>
<br>
There is currently no provision to do it as part of a program-op, so<br>
you may have to do it manually between a load-op and a program-op, or<br>
as part of an image-dump-hook or image-restore-hook, contingent on a<br>
variable that gets reset (the image-dump-hook doesn't work on ECL, and<br>
you must use the ECL-specific epilogue instead; the image-dump-hook<br>
wastes a little bit of time at restart on other platforms).<br>
<br>
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• <a href="http://fare.tunes.org" target="_blank">http://fare.tunes.org</a><br>
The problem with socialism is that eventually you run out of<br>
other people's money. — Margaret Thatcher<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>My Best,<br><br>Dave Cooper, Genworks Support<br><a href="mailto:david.cooper@genworks.com" target="_blank">david.cooper@genworks.com</a>, <a href="http://dave.genworks.com" target="_blank">dave.genworks.com</a>(skype)<br>
USA: 248-327-3253(o), 1-248-330-2979(mobile)<br>UK: 0191 645 1699<br>
</div></div>