Adventures with CLISP on Windows 2
Wednesday, 26 April 2006
I’m making little bits of headway with ASDF on Clisp (Windows).
Earlier I couldn’t get the asdf sources from Sourceforge via anonymous CVS checkout. The ASDF entry on CLiki is quite misleading in this regard. I suspect CVS has been turned off or never turned on in the project. The good news is that I eventually realized (from reading some forum posts) that ASDF comprises a single file - asdf.lisp and I was able to download it using ViewCVS to get started.
Problem #1: ASDF relies a great deal on symlinks to the .asd file in the central registry. This doesn’t work particularly well on windows. In fact the tutorial is more geared towards Unix readers. You’d do an item on the tutorial, and then it says, "by the way if you’re on Windows that won’t work!" I got caught out so many times.
There is also a great deal of going back and forth into editing the .clisprc file.
Problem #2: ASDF doesn’t provide any defaults, even the location of the central registry. I believe this is a mistake. For It-Just-Works ASDF, some sane defaults ought to be provided.
Problem #3: CLISP doesn’t automatically convert slashes in to backslashes in path names. This makes installation of third party libraries unnecessary cumbersome. (Python does this rather nicely by-the-way). Is this a general Lisp issue? (Update 7:00pm: It turns out that CLISP will convert slashes into backslashes on Windows)
Problem #4: ASDF-Install doesn’t work out of the box. I worked through the tutorial and tried to install PCRE. I ended up with this:
[1]> (asdf-install:install :cl-ppcre)
Install where?
0) System-wide install:
System in \usr\local\asdf-install\site-systems\
Files in \usr\local\asdf-install\site\
1) Personal installation:
System in
C:\cygwin\home\Chui\.asdf-install-dir\systems\
Files in C:\cygwin\home\Chui\.asdf-install-dir\site\
2) Abort installation.
--> 1
;;; ASDF-INSTALL: Downloading 166573 bytes
from http://weitz.de/files/cl-ppcre.tar.gz to
C:\cygwin\home\Chui\CL-PPCRE.as
df-install-tmp ...
The system cannot find the file gpg.
Windows pops up "Unable to find GPG"
*** - Call to GPG failed. Perhaps GPG is not installed
or not in the path.
The following restarts are available:
SKIP-GPG-CHECK :R1 Don't check GPG
signature for this package
ABORT :R2 ABORT
Break 1 [2]> :R1
;;; ASDF-INSTALL: Installing
C:\cygwin\home\Chui\CL-PPCRE.asdf-install-tmp
in C:\cygwin\home\Chui\.asdf-install-dir\site\,
C:\cygwin\home\Chui\.asdf-install-dir\systems\
The system cannot find the path specified.
Now I’m stuck.
If I were in Python, I’d get a traceback pointing to where the error likely may be. For all the gushing things that’s been said about lisp, the experience on CLISP isn’t really making fine impressions on me. Are there any other recommendations?
Problem #5: Distribution mechanisms such as PHP-PEAR offers a DEV and a RELEASE version. Shouldn’t ASDF do that too?
Update 27 Apr 2006: It seems that Lisp In A Box from Practical Lisp had some extensions to ASDF so that it works the same way in Windows as on Unix.
Lispbox includes some extensions to ASDF that modify how it finds ASD files and where it stores the files generated by COMPILE-FILE. The former makes it slightly easier to install new Common Lisp libraries and, more important, provides a mechanism that works the same on OS X, GNU/Linux, and Windows. The latter makes it easier to experiment with different Lisp implementations since it causes the files generated by COMPILE-FILE to be placed in an implementation/operating system/architecture dependent directory.