asdf-install on clisp + windows
Saturday, 6 May 2006
Update 3 July 2007: Chris Done has provided a new guide.
Since clisp is the only viable free common lisp on Windows at the moment, and asdf-install is the most vibrant of all lisp distributed library solution, we need clisp and asdf-install to run properly. Lots of people have hit problems trying though:
This google groups thread suggests that a patch is available but didn’t clarify what.
http://wiki.alu.org/ASDF_Universality has a project going.
This more recent thread suggests avoiding asdf-install altogether.
Resolution steps
- Check in
asdf-install.lispthat*cygwin-bash-program*and*gnu-tar-program*points to the correct path. You need the former if you are running the cygwin-compiled version, and the latter if you are running the mingw version. -
This thread from 2004 has patches from Alex Mizrahi which still hasn’t been applied. I believe these identify the critical errors in CLISP/MingW distribution. Specifically:
i don't know whether it works for cygwin version, but for native one version that is #+(not :win32) works fine except :wait nil - in this case it can capture no output. with :wait t all is well.
- There is a misplaced parenthesis in asdf-install/port.lisp:
#+(and :clisp :win32) (defun return-output-from-program (program args) (unless (probe-file program) (error "External program not found ~A" program)) (with-output-to-string (out-stream) (let ((stream (ext:run-shell-command (format nil "~A~{ ~A~}" program args) :output :stream :wait t))) (loop for line = (ignore-errors (read-line stream nil)) while line do (write-line line out-stream))))) - Download distribution manually
- Save the distribution into this directory *default-pathname-defaults*
- change it’s file name to the name of the package. eg. rename cl-ppcre.tar.gz to cl-ppcre.
-
(asdf-install:install "cl-ppcre")
should work now
- asdf-install is broken in cvs. You need to set your *features* so that the following keywords are true in asdf-install/defpackage.lisp
(pushnew :old *features*) (pushnew :old-asdf-behavior *features*)
-
(asdf-install:install "http://weitz.de/cl-ppcre.tar.gz")
should work now