Re: An ASDF patch

Christophe Rhodes <[email protected]> Wed, 07 Mar 2007 15:58:46 +0000
Newsgroups gmane.lisp.cclan.general
Message-ID <[email protected]>
Gary King <[email protected]> writes:

> Comments welcome (and desired); if none are forthcoming, this will be  
> checked in later this week.

What are the expected results when a defsystem form is evaluated
outside of a file?

> +(defvar *resolve-symlinks* t)

What is this new variable for?  It doesn't seem to be either exported
or bound.

> +  (let ((*default-pathname-defaults*
> +	 (make-pathname :name nil :type nil
> +			:defaults *default-pathname-defaults*)))

I'd be surprised if this actually did what you might expect it to in
all implementations, knowing what I do about some of them... only some
of them treat :name nil as explicit provision of a name; others will
merrily merge over the top of that NIL from the defaults.

> 				   (or ,pathname
> -				       (when *load-truename*
> +					;; If not resolving symlinks, then
> +					;; use *load-pathname* instead of
> +					;; *load-truename* since the latter,
> +					;; in some implementations, has
> +					;; already resolved a symlink.
> +					(if *resolve-symlinks*
> 					 (pathname-sans-name+type
> -					  (resolve-symlinks  *load-truename*)))
> +					     (resolve-symlinks *load-pathname*))
> +					    (pathname-sans-name+type
> +					     *load-pathname*))

This hunk looks garbled.  What is the point of using *load-pathname*
if you're going to resolve the symlinks immediately?  That is, the
comment does not agree with the code.

Cheers,

Christophe

-------------------------------------------------------------------------
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
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV