Gary King | 6 Feb 2007 18:16
Favicon
Gravatar

Re: [PATCH] Default pathname for systems

This patch has been applied as of right now. ASDF is at 1.105.

On Jan 21, 2007, at 12:30 PM, Richard M Kreuter wrote:

> Hello,
>
> The pathname defaulting in defsystem looks like it's supposed to fail
> over to *default-pathname-defaults* under some circumstances, but an
> error is signalled when *load-truename* is nil.  I think this tiny
> change makes the code do what was intended.  This makes it slightly
> easier to call defsystem from the repl.
>
> Thanks,
> RmK
>
> Index: asdf.lisp
> ===================================================================
> RCS file: /cvsroot/cclan/asdf/asdf.lisp,v
> retrieving revision 1.103
> diff -u -r1.103 asdf.lisp
> --- asdf.lisp	21 Jan 2007 14:09:51 -0000	1.103
> +++ asdf.lisp	21 Jan 2007 17:24:37 -0000
>  <at>  <at>  -939,8 +939,9  <at>  <at> 
>  				   :module (coerce-name ',name)
>  				   :pathname
>  				   (or ,pathname
> -				       (pathname-sans-name+type
> -					(resolve-symlinks  *load-truename*))
> +				       (when *load-truename*
> +					 (pathname-sans-name+type
(Continue reading)

Gary King | 8 Feb 2007 23:14
Favicon
Gravatar

#-:broken-fasl-loader

What is the history behind this feature? Is it still necessary?

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

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Christophe Rhodes | 8 Feb 2007 23:44
Favicon

Re: #-:broken-fasl-loader

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

> What is the history behind this feature? Is it still necessary?

The handy "cvs2cl" utility generates ChangeLog files from CVS logs.
Doing a search in the generated file for "broken-fasl-loader" will
tell you the history of this feature, and might suggest something to
try to find out if it's still necessary.

Cheers,

Christophe

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
Gary King | 9 Feb 2007 00:10
Favicon
Gravatar

Re: #-:broken-fasl-loader

Thanks Christophe,

I didn't know about cvs2cl. The only entry in the change log is

> 2004-05-05 14:32  nhabedi
>
> 	* asdf.lisp: replace :cormanlisp with :broken-fasl-loader

and a slightly earlier entry shows

> 2004-05-05 11:57  nhabedi
>
> 	* asdf.lisp: patches for Corman Lisp

so I guess that the question is whether or not Corman Lisp still  
needs this switch.

Does anyone know?

On Feb 8, 2007, at 5:44 PM, Christophe Rhodes wrote:

> Gary King <gwking <at> metabang.com> writes:
>
>> What is the history behind this feature? Is it still necessary?
>
> The handy "cvs2cl" utility generates ChangeLog files from CVS logs.
> Doing a search in the generated file for "broken-fasl-loader" will
> tell you the history of this feature, and might suggest something to
> try to find out if it's still necessary.
>
(Continue reading)

Gary King | 13 Feb 2007 16:06
Favicon
Gravatar

Adding load-only source files to ASDF

Load-only source files seems to be a perennial ASDF request. The  
patch below purports to add load-only Common Lisp source files to  
ASDF. One can create a system file with them either by using the new  
class "interpreted-cl-source-file" or by using the keyword :load-only- 
p. For example, both of the files in the below would only be loaded,  
not compiled:

(asdf:defsystem test5
   :components
   ((:module "deps"
	    :pathname "."
	    :components
	    ((:interpreted-cl-source-file "file1")
	     (:file "file2" :load-only-p t)))))

If no-one sees any problems with this, I'll commit it soon.

thanks,

Index: asdf.lisp
===================================================================
RCS file: /cvsroot/cclan/asdf/asdf.lisp,v
retrieving revision 1.105
diff -u -w -u -r1.105 asdf.lisp
--- asdf.lisp	6 Feb 2007 17:15:58 -0000	1.105
+++ asdf.lisp	13 Feb 2007 14:12:01 -0000
 <at>  <at>  -429,7 +429,16  <at>  <at> 
(defclass source-file (component) ())
-(defclass cl-source-file (source-file) ())
+(defclass cl-source-file (source-file)
(Continue reading)

Richard M Kreuter | 14 Feb 2007 02:09

Re: Adding load-only source files to ASDF

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

> Load-only source files seems to be a perennial ASDF request. The  
> patch below purports to add load-only Common Lisp source files to  
> ASDF. One can create a system file with them either by using the new  
> class "interpreted-cl-source-file" or by using the keyword :load-only- 
> p. For example, both of the files in the below would only be loaded,  
> not compiled:
>
> (asdf:defsystem test5
>    :components
>    ((:module "deps"
> 	    :pathname "."
> 	    :components
> 	    ((:interpreted-cl-source-file "file1")
> 	     (:file "file2" :load-only-p t)))))
>
> If no-one sees any problems with this, I'll commit it soon.

Why have both a class and a slot?  The lack of a writer suggests that
you don't expect the value to change once an instance is created; why
not have just the class?

In fact, if you're willing to use just a class, I think you can
implement the functionality as an extension using asdf's protocols:

(defclass load-only-cl-source-file (cl-source-file)
  ())

(defmethod perform ((o compile-op) (c load-only-cl-source-file))
(Continue reading)

Robert Goldman | 14 Feb 2007 02:55
Favicon

Re: Adding load-only source files to ASDF

Richard M Kreuter wrote:
> Gary King <gwking <at> metabang.com> writes:
> 
>> Load-only source files seems to be a perennial ASDF request. The  
>> patch below purports to add load-only Common Lisp source files to  
>> ASDF. One can create a system file with them either by using the new  
>> class "interpreted-cl-source-file" or by using the keyword :load-only- 
>> p. For example, both of the files in the below would only be loaded,  
>> not compiled:
>>
>> (asdf:defsystem test5
>>    :components
>>    ((:module "deps"
>> 	    :pathname "."
>> 	    :components
>> 	    ((:interpreted-cl-source-file "file1")
>> 	     (:file "file2" :load-only-p t)))))
>>
>> If no-one sees any problems with this, I'll commit it soon.
> 
> Why have both a class and a slot?  The lack of a writer suggests that
> you don't expect the value to change once an instance is created; why
> not have just the class?
> 
> In fact, if you're willing to use just a class, I think you can
> implement the functionality as an extension using asdf's protocols:
> 
> (defclass load-only-cl-source-file (cl-source-file)
>   ())
> 
(Continue reading)

Gary King | 14 Feb 2007 16:18
Favicon
Gravatar

minor patch to class-for-type

This keeps case sensitive lisps happy in all permutations and has no  
consequences for insensitive lisps.

Index: asdf.lisp
===================================================================
RCS file: /cvsroot/cclan/asdf/asdf.lisp,v
retrieving revision 1.105
diff -u -w -u -r1.105 asdf.lisp
--- asdf.lisp   6 Feb 2007 17:15:58 -0000       1.105
+++ asdf.lisp   14 Feb 2007 15:14:10 -0000
 <at>  <at>  -967,7 +967,7  <at>  <at> 
(defun class-for-type (parent type)
    (let* ((extra-symbols (list (find-symbol (symbol-name type)  
*package*)
                                (find-symbol (symbol-name type)
-                                           #.(package-name  
*package*))))
+                                           (package-name  
#.*package*))))
           (class (dolist (symbol (if (keywordp type)
                                      extra-symbols
                                      (cons type extra-symbols)))

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

-------------------------------------------------------------------------
(Continue reading)

Richard M Kreuter | 14 Feb 2007 20:45

Re: Adding load-only source files to ASDF

Richard M Kreuter <kreuter <at> progn.net> writes:

> In fact, if you're willing to use just a class, I think you can
> implement the functionality as an extension using asdf's protocols...

It occurs to me that since asdf has a load-source-op that does the
desired thing, maybe the right way to implement a load-only component
would be to have load-op depend on load-source-op for such components.
This would have the upside that source-loading would always involve an
instance of load-source-op, and so code that wants to be run whenever
source is loaded can be invoked by a method specializing on
load-source-op.

(defclass load-only-cl-source-file (cl-source-file)
  ())

(defmethod perform ((o compile-op) (c load-only-cl-source-file))
  nil)

(defmethod output-files ((o compile-op) (c load-only-cl-source-file))
  nil)

(defmethod component-depends-on ((o load-op) (c load-only-cl-source-file))
  (cons (list 'load-source-op (component-name c))
	(call-next-method)))

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
(Continue reading)

Richard M Kreuter | 15 Feb 2007 01:21

The mystery of EXPLAIN

Hello,

asdf's EXPLAIN is kinda mysterious.  The manual documents it as part
of the operation protocol, but doesn't say how or why to extend it,
and the example "dry run" invocation in the manual is wrong.
Eventually, maybe, I'll learn to stop reading the manual; however, the
implementation of EXPLAIN in asdf.lisp doesn't clarify much either.
I've got a guess as to what was intended; can anybody review my
sleuthing?

Here are the clues:

(a) Pitman's paper, "The Description of Large Systems", calls for a
    couple of EXPLAIN-like functions.  I guess that's the inspiration.

(b) Pitman's DEFSYSTEM proposal to X3J13 called for :SIMULATE keywords
    to the (functional interface to the) compile and load operations;
    if the keyword was supplied, the operations were to do
    approximately what the paper's EXPLAIN functions did.

(c) The only defined method for EXPLAIN doesn't do much.  In
    particular, it doesn't walk the system's components.

(d) Further, the default method prints to *VERBOSE-OUT*, which, as
    long as I've been paying attention, has only ever been a stream
    during the dynamic extent of OPERATE.  When you call EXPLAIN from
    the repl, nothing gets printed, as *VERBOSE-OUT* is nil.

(e) Unlike OPERATE, which accepts designators for operation classes
    and systems, EXPLAIN only accepts operation and system instances.
(Continue reading)


Gmane