maxima, defsystem and CMUCL 2005-01



On Thu, 2005-01-13 at 08:49, Raymond Toy wrote:
> I've reverted back to 1.14.  I'm also going to apply the following
> patch, which is the fix in clocc's defsystem for cmucl's pathname
> change.
> 
> I hope someone with gcl 2.6.x can try this out.
> 
> Ray
> 
> Index: defsystem.lisp
> ===================================================================
> RCS file: /cvsroot/maxima/maxima/lisp-utils/defsystem.lisp,v
> retrieving revision 1.16
> diff -u -r1.16 defsystem.lisp
> --- defsystem.lisp	13 Jan 2005 14:46:14 -0000	1.16
> +++ defsystem.lisp	13 Jan 2005 14:47:53 -0000
> @@ -2842,7 +2842,8 @@
>    ;; Pass along the host and devices
>    (setf (component-host component)
>  	(or (component-host component)
> -	    (when parent (component-host parent))))
> +	    (when parent (component-host parent))
> +	    (pathname-host *default-pathname-defaults*)))
>    (setf (component-device component)
>  	(or (component-device component)
>  	    (when parent (component-device parent))))

Your patch works with gcl 2.6.5. Unfortunately, it breaks sbcl 0.8.15.
sbcl says:

debugger invoked on a TYPE-ERROR in thread 8605:
  The value #
  is not of type
    (OR (VECTOR NIL) BASE-STRING PATHNAME FILE-STREAM).

I can fix this with

|abacus3>cvs diff defsystem.lisp
Index: defsystem.lisp
===================================================================
RCS file: /cvsroot/maxima/maxima/lisp-utils/defsystem.lisp,v
retrieving revision 1.17
diff -r1.17 defsystem.lisp
2846c2846
<           (pathname-host *default-pathname-defaults*)))
---
>           #-sbcl(pathname-host *default-pathname-defaults*)))
|abacus3>

but I would welcome another, less ham-handed, suggestion.

--Jim