Re: rfc - delay the parsing of system components

Daniel Barlow <[email protected]> Mon, 13 Oct 2008 21:27:41 +0100
Newsgroups gmane.lisp.cclan.general
Message-ID <[email protected]>
"Nikodemus Siivola" <[email protected]> writes:

> On Mon, Oct 13, 2008 at 4:08 PM, Christophe Rhodes <[email protected]> wrote:
>
>> I don't see why you even _want_ to keep the same name, frankly.
>
> I agree. "plan, then execute" is one of the major (mis?)features of
> ASDF. While I have often wanted it, calling a system that behaves like
> that ASDF is just confusing.

Excuse me if I'm about to rehash old ground.

I cannot entirely remember the reasons for plan-then-execute, but asdf
was changed to work that way very early in its history and there must
have been some kind of justification at the time.  One point is that if
you want to write operation-done-p methods which compare file dates
then it's much easier to think about if you're comparing the dates
from *before* you started work than from some arbitrary point halfway
through the operation - it's also safer in the face of clock drift.

KMP does the the same thing in his "Description of Large Systems"
paper, though doesn't give much justification for it beyond "Because a
system can be asked to produce a plan for an operation such as
compilation without actually performing the operation, it is possible
to write programs which inspect the plan, possibly optimizing it or
presenting it for for interactive approval, before executing it. "

http://www.nhplace.com/kent/Papers/Large-Systems.html

A lot of this was driven by IRC discussion with Kevin Rosenberg - I
wish I'd kept notes in some more easily-searchable format :-( I don't
have a strong opinion these days on which approach is "better", but I
do agree that the change will break code in the wild, and should imply
a name change if made.


-dan

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/