ASDF-Install patch - handle Allegro "modern" Lisp

Gary King <[email protected]>
Newsgroups gmane.lisp.cclan.general
Message-ID <[email protected]>
I'm about to check in the following patch to ASDF-Install. It allows  
ASDF-Install to work with Allegro mlisp. I've tested this in Allegro  
8 (mlisp and alisp), OpenMCL and SBCL 9.9 (all under OS X).

Index: defpackage.lisp
===================================================================
RCS file: /cvsroot/cclan/asdf-install/defpackage.lisp,v
retrieving revision 1.3
diff -u -w -r1.3 defpackage.lisp
--- defpackage.lisp	1 Jun 2005 20:31:54 -0000	1.3
+++ defpackage.lisp	17 Mar 2006 20:09:18 -0000
@@ -1,7 +1,7 @@
(cl:in-package :cl-user)
(defpackage :asdf-install
-  (:use "CL")
+  (:use #:common-lisp)
    (:export
     ;; Customizable variables.
@@ -28,9 +28,10 @@
     #:sysdef-source-dir-search
     #:uninstall
     #:install
+
     ;; proxy authentication
     #:*proxy-user*
     #:*proxy-passwd*))
(defpackage :asdf-install-customize
-  (:use "CL" "ASDF-INSTALL"))
+  (:use #:common-lisp #:asdf-install))
Index: installer.lisp
===================================================================
RCS file: /cvsroot/cclan/asdf-install/installer.lisp,v
retrieving revision 1.13
diff -u -w -r1.13 installer.lisp
--- installer.lisp	21 Dec 2005 12:42:21 -0000	1.13
+++ installer.lisp	17 Mar 2006 20:09:18 -0000
@@ -353,11 +353,11 @@
	     (unless (member response '(301 302))	
	       (return-from got (list response headers stream)))
	     (close stream)
-	     (setf url (cdr (assoc :location headers))))))
+	     (setf url (cdr (assoc :LOCATION headers))))))
        (with-open-stream (stream stream)
	(when (>= response 400)
	  (error 'download-error :url url :response response))
-	(let ((length (parse-integer (or (cdr (assoc :content-length  
headers)) "")
+	(let ((length (parse-integer (or (cdr (assoc :CONTENT-LENGTH  
headers)) "")
				     :junk-allowed t)))
	  (installer-msg t "Downloading ~A bytes from ~A to ~A ..."
			 (or length "some unknown number of")
@@ -412,23 +412,23 @@
                                                         (find x '(# 
\Space #\Tab)))
                                                       l)
	       (declare (ignore _))
-               (pushnew (cons (intern tag :keyword)
+               (pushnew (cons (intern (string-upcase tag) :keyword)
			      data) tags)))
        (ignore-errors
          (close gpg-stream)))
      (unless tags
        (error 'shell-error))
      ;; test for obvious key/sig problems
-    (let ((errsig (assoc :errsig tags)))
+    (let ((errsig (assoc :ERRSIG tags)))
        (and errsig (error 'key-not-found :key-id (second errsig))))
-    (let ((badsig (assoc :badsig tags)))
+    (let ((badsig (assoc :BADSIG tags)))
        (and badsig (error 'key-not-found :key-id (second badsig))))
-    (let* ((good (assoc :goodsig tags))
+    (let* ((good (assoc :GOODSIG tags))
	   (id (second good))
	   (name (format nil "~{~A~^ ~}" (nthcdr 2 good))))
        ;; good signature, but perhaps not trusted
-      (unless (or (assoc :trust_ultimate tags)
-		  (assoc :trust_fully tags))
+      (unless (or (assoc :TRUST_ULTIMATE tags)
+		  (assoc :TRUST_FULLY tags))
	(cerror "Install the package anyway"
		'key-not-trusted
		:key-user-name name
@@ -467,7 +467,7 @@
                         (setf (char data i) (code-char byte)))))))
            (if (= response 200)
              (let ((data (make-string (parse-integer
-                                      (cdr (assoc :content-length  
headers))
+                                      (cdr (assoc :CONTENT-LENGTH  
headers))
                                        :junk-allowed t))))
                (read-signature data stream)
                (verify-gpg-signature/string data file-name))
Index: split-sequence.lisp
===================================================================
RCS file: /cvsroot/cclan/asdf-install/split-sequence.lisp,v
retrieving revision 1.1
diff -u -w -r1.1 split-sequence.lisp
--- split-sequence.lisp	24 Apr 2004 18:19:05 -0000	1.1
+++ split-sequence.lisp	17 Mar 2006 20:09:19 -0000
@@ -50,14 +50,14 @@
;;; * (split-sequence #\; ";oo;bar;ba;" :start 1 :end 9)
;;; -> ("oo" "bar" "b"), 9
-(defpackage "SPLIT-SEQUENCE"
-  (:use "CL")
-  (:nicknames "PARTITION")
-  (:export "SPLIT-SEQUENCE" "SPLIT-SEQUENCE-IF" "SPLIT-SEQUENCE-IF-NOT"
-	   "PARTITION" "PARTITION-IF" "PARTITION-IF-NOT")
-  (:documentation "The SPLIT-SEQUENCE package provides functionality  
for Common Lisp sequences analagous to Perl's split operator."))
+(defpackage #:split-sequence
+  (:use #:common-lisp)
+  (:nicknames #:partition)
+  (:export #:split-sequence #:split-sequence-if #:split-sequence-if-not
+	   #:partition #:partition-if #:partition-if-not)
+  (:documentation "the split-sequence package provides functionality  
for common lisp sequences analagous to perl's split operator."))
-(in-package "SPLIT-SEQUENCE")
+(in-package #:split-sequence)
(defun split-sequence (delimiter seq &key (count nil) (remove-empty- 
subseqs nil) (from-end nil) (start 0) (end nil) (test nil test- 
supplied) (test-not nil test-not-supplied) (key nil key-supplied))
    "Return a list of subsequences in seq delimited by delimiter.


-- 
Gary Warren King
metabang.com
http://www.metabang.com/




-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.