<div class="gmail_extra">Hi Robert,<br><div class="gmail_quote"><div class="gmail_extra"><br>Thanks for the Sunday afternoon reply.<br><br><div class="gmail_quote"><div>On Sun, Apr 22, 2012 at 2:31 PM, Robert Goldman <span dir="ltr"><<a href="mailto:rpgoldman@sift.info" target="_blank">rpgoldman@sift.info</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 4/22/12 Apr 22 -3:47 PM, Faré wrote:<br>
> Dear Erik,<br>
<div>><br>
<br>
>> ASDF assumes that since the system def file has not changed, the system<br>
>> hasn't been changed either (I know there has been discussion of this<br>
>> assumption.) But lets assume that at least part of the reason for that is<br>
>> because it is very time consuming to check the entire set of files every<br>
>> time the developer wants to recompile and load just a single file.<br>
>><br>
> I don't think that's true, but my head hurts just thinking about it.<br>
<br>
</div>This is not an accurate understanding. It has come up over and over.<br>
The right thing to do would be to check systems recursively, but there<br>
are a number of reasons why this does not work with the current state of<br>
ASDF. You can look in the archives for explanations; it has been<br>
discussed many times [I am not trying to be rude; I just don't have the<br>
energy to write up another copy of the explanation. Probably we should<br>
put it in as a FAQ in the manual...]<br></blockquote></div><div><br>Don't worry. I've been hanging around Lisp long enough to have a high bar on "rude", and this doesn't even come close. <br><br>Thanks for the correction, I'll go back and revisit those threads.<br>
</div><div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>><br>
>> Why not assume in a deployment mode that NO system will have changed if it<br>
>> is already loaded in memory, and unless the application has asked that it be<br>
>> reloaded? This would be for performance as well as for safety -- we really<br>
>> don't want dependency checking to result in any filesystem checks, etc.<br>
>><br>
> Because that's wrong? I don't have as many dependencies as you do when<br>
> I reload a system with asdf, but usually, I do want the dependencies<br>
> to be reloaded.<br>
<br>
</div>The deployment mode is an edge case and can already be handled very<br>
efficiently by dumping an image with the (stable) system you want<br>
already loaded (cf. Xach's buildapp, although I know that's for SBCL,<br>
rather than CCL; and CCL:SAVE-APPLICATION --<br>
<a href="http://ccl.clozure.com/manual/chapter4.9.html#Saving-Applications" target="_blank">http://ccl.clozure.com/manual/chapter4.9.html#Saving-Applications</a>). In<br>
some sense you are right, ASDF is slow for this use case, but it's<br>
really not the use case ASDF is looking for.<br></blockquote></div><div><br>This is what I've been doing for several years now with no problems (none due to asdf, that is!)<br><br>I'm exploring now a method for deploying small systems which are based on a large-ish compiled, dumped image, but with small to medium sized systems to be loaded and run as batches. Yes, I could just load these files manually, but would at least like to be able to do run-time inquiries of module availability (ala require), which, it seems to me, is the purview of asdf.<br>
<br>Also, it is possible that I'd need to add a specific 3rd party lisp package to a deployment without incorporating it into the master runtime image, and integration via asdf also seems natural.<br><br>BTW the deployment mode, for me, is the purpose of my development, so it is kinda important. But I realize we all sit in a different place in the development process. The main object of my work is a lisp web server that sits under mod_lisp, but I also need to run lisp processes in batch, as well as plenty of lisp ad-hoc analytical work.<br>
<br>I have thought that perhaps ASDF could output a deployment structure, which is a set of instructions for constructing the running system. Not well worded, perhaps, but if you capture the actions of asf you should be able to play them back and create a functionaly equivalent image (albeit not necessarily with asdf loaded.) E.g. if you just emit the filenames that are loaded during (perform load-op cl-source-file), you can just place them into a list and load them in sequence using just simple common lisp machinery. Faster than asdf, but still slow compared to loading a big image.<br>
</div><div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
And ASDF is already too liberal about assuming stability, in a way that<br>
breaks a lot of people's development practice (see my earlier remarks);<br>
the last thing I would want to do is make it even more likely to miss a<br>
change and build an inconsistent system.<br>
<br>
Best,<br>
r<br>
<br>
_______________________________________________<br>
asdf-devel mailing list<br>
<a href="mailto:asdf-devel@common-lisp.net" target="_blank">asdf-devel@common-lisp.net</a><br>
<a href="http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel" target="_blank">http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel</a><br>
</blockquote></div></div><br></div>
</div><br></div>