Gary King | 5 Oct 2008 00:42
Favicon
Gravatar

removed load-preferences support from ASDF

As was discussed several months ago, I have removed load-preferences  
support from ASDF

2007-10-04 10:55  gwking <at> metabang.com

	Removed preference loading machinery completely. Also removed
	the following test files that tested the machinery.

	* test/test-preferences-1.lisp
	* test/test-preferences-1.script
	* test/test-preferences-system-1.asd
	* test/test-preferences-system-load.lisp
	* test/test-preferences-system-test.lisp
	* test/test6.script
	* test/test7.script

--
Gary Warren King, metabang.com
Cell: (413) 559 8738
Fax: (206) 338-4052
gwkkwg on Skype * garethsan on AIM

-------------------------------------------------------------------------
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=/
Gary King | 5 Oct 2008 21:48
Favicon
Gravatar

small patch for asdf output

The patch below moves asdf status output into a single function, asdf- 
message, and uses this to print whatever ASDF prints.

It also moves a comment about CMUCL out into a separate function and  
uses enough-namestring when not running on CMUCL.

If no-one has objections, I'll commit in a few days.

Index: asdf.lisp
===================================================================
RCS file: /cvsroot/cclan/asdf/asdf.lisp,v
retrieving revision 1.129
diff -u -w -r1.129 asdf.lisp
--- asdf.lisp	4 Oct 2008 22:41:04 -0000	1.129
+++ asdf.lisp	5 Oct 2008 19:46:02 -0000
 <at>  <at>  -150,6 +150,10  <at>  <at> 
  (define-modify-macro appendf (&rest args)
    append "Append onto list")

+(defun asdf-message (message &rest args)
+  (declare (dynamic-extent args))
+  (apply #'format *verbose-out* message args))
+
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;; classes, condiitons

 <at>  <at>  -399,6 +403,15  <at>  <at> 
            (package (try counter) (try counter)))
           (package package))))

(Continue reading)

Gary King | 8 Oct 2008 01:45
Favicon
Gravatar

in-order-to and/or do-first

Can anyone recall why we have both in-order-to and do-first? Doesn't  
in-order-to subsume do-first?

thanks,
--
Gary Warren King, metabang.com
Cell: (413) 559 8738
Fax: (206) 338-4052
gwkkwg on Skype * garethsan on AIM

-------------------------------------------------------------------------
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=/
Richard M Kreuter | 8 Oct 2008 03:22

Re: in-order-to and/or do-first

Gary King writes:
> Can anyone recall why we have both in-order-to and do-first? Doesn't  
> in-order-to subsume do-first?

This came up a little more than a year ago:

http://article.gmane.org/gmane.lisp.cclan.general/674

--
Richard

-------------------------------------------------------------------------
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=/
Andreas Fuchs | 8 Oct 2008 09:50
Gravatar

Re: in-order-to and/or do-first

On Oct 8, 2008, at 2:22, Richard M Kreuter wrote:
> Gary King writes:
>> Can anyone recall why we have both in-order-to and do-first? Doesn't
>> in-order-to subsume do-first?
>
> This came up a little more than a year ago:
>
> http://article.gmane.org/gmane.lisp.cclan.general/674

The separation between the two as it is right now is used by what I'll  
call compilation dependencies: Compilation of file A will trigger  
compilation of dependent file B if load-op is performed on the system  
containing them. I tried to pry in-order-to and do-first apart once,  
then just gave up and left things as they were, because I could not  
figure out how to guarantee that compilation of dependent files  
happens before loading in this case.

HTH,
--

-- 
Andreas Fuchs, (http://|im:asf <at> |mailto:asf <at> )boinkor.net, antifuchs

-------------------------------------------------------------------------
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=/
Gary King | 8 Oct 2008 16:12
Favicon
Gravatar

rfc - delay the parsing of system components

I just finished a rough cut of an ASDF overall that makes three  
largish changes:

1. delays the parsing of system components until needed by traverse.  
In particular, this means that the :components clause of defsystem  
form happens after that system's dependencies have been loaded rather  
than when the ASD file itself is loaded.

2. rewrites traverse as a set of methods that immediately call perform  
(rather than building up a list of perform actions that  are then  
called in operate).

3. does away with :do-first and moves what it did into :in-order-to

The main motivation for change #1 is to be able to define new  
operations and source file classes in a system's dependencies and have  
them used in that systems definitions; the main motivation#2 was #1:  
it does no good to delay parsing of the defsystem form if traverse has  
to complete the parse before anything else happens!. As for #3, while  
doing three things at once is just very human (and besides, it made #2  
easier).

I've got several hours of work left cleaning up loose ends and moving  
restarts and with-compilation-units around into better places.

What I'd appreciate is any high-level feedback about the idea of these  
changes and whether or not I've missed some horrible interaction that  
nullifies the whole direction. I hope to post the suggested changes  
later in the week.

(Continue reading)

Richard M Kreuter | 8 Oct 2008 17:12

Re: rfc - delay the parsing of system components

Gary King writes:
> I just finished a rough cut of an ASDF overall that makes three  
> largish changes:
> 
> 1. delays the parsing of system components until needed by traverse.  
> In particular, this means that the :components clause of defsystem  
> form happens after that system's dependencies have been loaded rather  
> than when the ASD file itself is loaded.
>
> 2. rewrites traverse as a set of methods that immediately call perform  
> (rather than building up a list of perform actions that  are then  
> called in operate).

In the plan-before-execute design that ASDF's always had, methods that
implement pieces of the plan construction protocol (OPERATION-DONE-P,
COMPONENT-DEPENDS-ON, et al.) can rely on being executed before any
steps are carried out in the current run.  Since the protocol doesn't
have any solid semantics, extensions' methods can do anything, really;
executing them mid-way through execution can expose them to conditions
that are arbitrarily unlike what such methods have been written to
reason about.

> 3. does away with :do-first and moves what it did into :in-order-to
>
> The main motivation for change #1 is to be able to define new  
> operations and source file classes in a system's dependencies and have  
> them used in that systems definitions; 

The idiomatic solution for this is to load ASDF extensions in an
EVAL-WHEN at the beginning of a .asd file.  But maybe what you're after
(Continue reading)

Gary King | 13 Oct 2008 02:08
Favicon
Gravatar

Re: rfc - delay the parsing of system components

Hi Richard, et. al.

Thanks for your comments and thoughts.

> In the plan-before-execute design that ASDF's always had, methods that
> implement pieces of the plan construction protocol (OPERATION-DONE-P,
> COMPONENT-DEPENDS-ON, et al.) can rely on being executed before any
> steps are carried out in the current run.

This is true but I have my doubts that it will matter. Methods like  
COMPONENT-DEPENDS-ON shouldn't really have anything to do with the  
environment (either X depends on Y or it doesn't). Methods like  
operation-done-p should depend on a component and its children (not  
its parents) and thus would not be altered by the proposed change.

> The idiomatic solution for this is to load ASDF extensions in an
> EVAL-WHEN at the beginning of a .asd file.  But maybe what you're  
> after
> is representing the fact that system FOO needs ASDF extension BAR,  
> which
> isn't explicit with the EVAL-WHEN solution.  If that's what you  
> need, it
> might suffice to add a slot for this to SYSTEM and to modify
> PARSE-COMPONENT-FORM to hoist out the slot's initarg and do the LOAD- 
> OP
> on those extensions before looping over the components.

It's true that my proposal isn't required to make ASDF jump through  
the hoops I want it to. IMHO, the eval-when solution is ugly and while  
adding another slot is alright, it seems to me that I should be able  
(Continue reading)

Christophe Rhodes | 13 Oct 2008 08:33
Favicon

Re: rfc - delay the parsing of system components

Gary King <gwking <at> metabang.com> writes:

>> I think #2 is an at-least-in-theory incompatible change.  It might not
>> break anything in the wild, but that can't be known in advance.  It
>> might also lead to a better defsystem than ASDF, but I'm not sure that
>> ASDF should be breaking compatibility with itself at this point.
>
> Hmmm, evolve or die <smile>.

No problem with that, but biological taxonomists have learnt that it's
useful to give mutually-incompatible species different names.  Some
day, computer programmers might see the point of that, too.

(In other words: please do make code easier to write, but please also
give the resulting software a different name.)

Cheers,

Christophe

-------------------------------------------------------------------------
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=/
Gary King | 13 Oct 2008 14:51
Favicon
Gravatar

Re: rfc - delay the parsing of system components

>> Hmmm, evolve or die <smile>.
>
> No problem with that, but biological taxonomists have learnt that it's
> useful to give mutually-incompatible species different names.  Some
> day, computer programmers might see the point of that, too.
>
> (In other words: please do make code easier to write, but please also
> give the resulting software a different name.)

The question reduces to whether or not this is a different species. I  
don't think it is. Richard correctly points out that my proposal might  
cause problems in the "wild" but there is no evidence for this  
(yet...). To my mind, I've kept the same syntax and ASDF does the same  
operations in the same order (at least in as much as ASDF ever did the  
same things in the same order...). The only change is that instead of  
planning everything before executing, ASDF would now execute as it  
went. I don't see this as incompatible. Do you?

thanks,
--
Gary Warren King, metabang.com
Cell: (413) 559 8738
Fax: (206) 338-4052
gwkkwg on Skype * garethsan on AIM

-------------------------------------------------------------------------
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=/
(Continue reading)


Gmane