Update of /cvsroot/sbcl/sbcl/contrib/asdf-install
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28488/contrib/asdf-install
0.9.11.31: misc win32 improvements
* Check for correct "expand" in canonicalize-whitespace, and skip
canonicalization if it doesn't seem right. (Windows "expand" is
something quite different.)
* RUN-PROGRAM now always returns a process structure, which reports
the exit-code of the process when :WAIT was true. :WAIT nil
process-structures still keep their :RUNNING status indefinitely
on Windows, though.
* FIND-EXECUTABLE-IN-SEARCH-PATH actually searches the path, and adds
"exe" as :TYPE if :TYPE is missing on Windows.
* ASDF:RUN-SHELL-COMMAND searches for Bourne-shell on Windows, as there
is no default location.
* SB-GROVEL directly runs gcc and the groveler instead of indirecting
via shell, and the groveler directly writes to the lisp-file instead
of via stdout and shell redirection.
* Hack SB-POSIX till it builds and passes all applicable tests on Windows.
Mostly this involved plenty of #-win32, but a few tests needed to
be adjusted for the delication Microsoft constitution.
* Implement COPY-STREAM in ASDF-INSTALL so that it doesn't have to
depend on SB-EXECUTABLE.
* Take the .exe suffix into account when installing over an old SBCL
* Adjust UNPARSE-NATIVE-WIN32-NAMESTRING slightly: Windows OS functions
like stat don't like to have directory names ending with a slash.
This is good enough to run unpatched Slime with *COMMUNICATION-STYLE*
NIL, and build & pass tests with all contribs except SB-SIMPLE-STREAMS.
RCS file: /cvsroot/sbcl/sbcl/contrib/asdf-install/asdf-install.asd,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- asdf-install.asd 14 Apr 2004 22:38:45 -0000 1.5
+++ asdf-install.asd 13 Apr 2006 22:52:56 -0000 1.6
@@ -4,7 +4,6 @@
(:use #:cl #:asdf))
:depends-on (sb-posix sb-bsd-sockets)
RCS file: /cvsroot/sbcl/sbcl/contrib/asdf-install/installer.lisp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- installer.lisp 12 Jan 2006 13:26:41 -0000 1.15
+++ installer.lisp 13 Apr 2006 22:52:56 -0000 1.16
@@ -134,6 +134,13 @@
+(defun copy-stream (in out)
+ (let ((buf (make-array 8192 :element-type (stream-element-type in))))
+ (loop for pos = (read-sequence buf in)
+ until (zerop pos)
+ do (write-sequence buf out :end pos))))
(defun download-files-for-package (package-name-or-url file-name)
(if (= (mismatch package-name-or-url "http://") 7)
@@ -156,14 +163,13 @@
(format t "Downloading ~A bytes from ~A ..."
(if length length "some unknown number of") url)
- (with-open-file (o file-name :direction :output :element-type '(unsigned-byte 8))
+ (with-open-file (out file-name :direction :output
+ :element-type '(unsigned-byte 8))
- (let ((buf (make-array length
- '(unsigned-byte 8))))
+ (let ((buf (make-array length :element-type '(unsigned-byte 8))))
(read-sequence buf stream)
- (write-sequence buf o))
- (sb-executable:copy-stream stream o :element-type '(unsigned-byte 8)))))
+ (write-sequence buf out))
+ (copy-stream stream out))))
@@ -174,7 +180,7 @@
(defun read-until-eof (stream)
- (sb-executable:copy-stream stream o)))
+ (copy-stream stream o)))
(defun verify-gpg-signature/string (string file-name)
@@ -250,8 +256,8 @@
(defun install-package (source system packagename)
"Returns a list of asdf system names for installed asdf systems"
- (ensure-directories-exist source )
- (ensure-directories-exist system )
+ (ensure-directories-exist source)
+ (ensure-directories-exist system)
@@ -279,6 +285,7 @@
(when (probe-file target)
(sb-posix:symlink asd target))
collect (pathname-name asd))))