[cl-utilities-cvs] CVS update: cl-utilities/cl-utilities.asd cl-utilities/package.lisp cl-utilities/package.sh cl-utilities/rotate-byte.lisp

Peter Scott pscott at common-lisp.net
Wed Dec 28 23:34:30 UTC 2005


Update of /project/cl-utilities/cvsroot/cl-utilities
In directory common-lisp.net:/tmp/cvs-serv3004

Modified Files:
	cl-utilities.asd package.lisp package.sh rotate-byte.lisp 
Log Message:
1. Now this doesn't assume that SBCL has sb-rotate-byte, which was
causing some problems. Thanks to Gary King and John Wiseman for
finding this problem in a certain version of SBCL on ppc.

2. If :split-sequence-deprecated is added to *features* before
compiling cl-utilities, it will create a :split-sequence package which
exports the usual split-sequence interface. This is for easy backward
compatibility. If you do not add :split-sequence-deprecated to
*features*, it will leave split-sequence alone. Thanks to Greg Pfeil
for the idea and some of the code.

Date: Thu Dec 29 00:34:29 2005
Author: pscott

Index: cl-utilities/cl-utilities.asd
diff -u cl-utilities/cl-utilities.asd:1.3 cl-utilities/cl-utilities.asd:1.4
--- cl-utilities/cl-utilities.asd:1.3	Mon Aug 29 22:14:47 2005
+++ cl-utilities/cl-utilities.asd	Thu Dec 29 00:34:28 2005
@@ -21,7 +21,13 @@
 		 (:file "once-only" :depends-on ("package"))
 		 (:file "rotate-byte" :depends-on ("package"))
 		 (:file "copy-array" :depends-on ("package"))
-		 (:file "compose" :depends-on ("package")))
-    ;; On SBCL, we can speed up byte rotation by using its
-    ;; implementation of rotate-byte.
-    :depends-on (#+sbcl :sb-rotate-byte))
\ No newline at end of file
+		 (:file "compose" :depends-on ("package"))))
+
+;; Sometimes we can accelerate byte rotation on SBCL by using the
+;; SB-ROTATE-BYTE extension. This loads it.
+#+sbcl
+(eval-when (:compile-toplevel :load-toplevel :execute)
+  (handler-case (progn
+		  (require :sb-rotate-byte)
+		  (pushnew :sbcl-uses-sb-rotate-byte *features*))
+    (error () (delete :sbcl-uses-sb-rotate-byte *features*))))
\ No newline at end of file


Index: cl-utilities/package.lisp
diff -u cl-utilities/package.lisp:1.5 cl-utilities/package.lisp:1.6
--- cl-utilities/package.lisp:1.5	Mon Nov 28 22:45:49 2005
+++ cl-utilities/package.lisp	Thu Dec 29 00:34:29 2005
@@ -39,4 +39,11 @@
 	   
 	   #:copy-array
 
-	   #:compose))
\ No newline at end of file
+	   #:compose))
+
+#+split-sequence-deprecated
+(defpackage :split-sequence
+  (:documentation "This package mimics SPLIT-SEQUENCE for compatibility with
+packages that expect that system.")
+  (:use :cl-utilities)
+  (:export #:split-sequence #:split-sequence-if #:split-sequence-if-not))


Index: cl-utilities/package.sh
diff -u cl-utilities/package.sh:1.6 cl-utilities/package.sh:1.7
--- cl-utilities/package.sh:1.6	Wed Dec 14 22:44:12 2005
+++ cl-utilities/package.sh	Thu Dec 29 00:34:29 2005
@@ -1,19 +1,21 @@
 #!/bin/sh
 
-mkdir cl-utilities-1.2.1
-mkdir cl-utilities-1.2.1/doc
-cp cl-utilities.asd package.sh collecting.lisp split-sequence.lisp expt-mod.lisp package.lisp compose.lisp extremum.lisp read-delimited.lisp test.lisp copy-array.lisp once-only.lisp rotate-byte.lisp with-unique-names.lisp README cl-utilities-1.2.1/
-cp doc/collecting.html doc/expt-mod.html doc/read-delimited.html doc/with-unique-names.html doc/compose.html doc/extremum.html doc/rotate-byte.html doc/copy-array.html doc/index.html doc/split-sequence.html doc/once-only.html doc/style.css cl-utilities-1.2.1/doc/
+mkdir cl-utilities-1.2.3
+mkdir cl-utilities-1.2.3/doc
+cp cl-utilities.asd package.sh collecting.lisp split-sequence.lisp expt-mod.lisp package.lisp compose.lisp extremum.lisp read-delimited.lisp test.lisp copy-array.lisp once-only.lisp rotate-byte.lisp with-unique-names.lisp README cl-utilities-1.2.3/
+cp doc/collecting.html doc/expt-mod.html doc/read-delimited.html doc/with-unique-names.html doc/compose.html doc/extremum.html doc/rotate-byte.html doc/copy-array.html doc/index.html doc/split-sequence.html doc/once-only.html doc/style.css cl-utilities-1.2.3/doc/
 
 rm -f cl-utilities-latest.tar.gz cl-utilities-latest.tar.gz.asc
 
-tar -czvf cl-utilities-1.2.1.tar.gz cl-utilities-1.2.1/
-ln -s ~/hacking/lisp/cl-utilities/cl-utilities-1.2.1.tar.gz ~/hacking/lisp/cl-utilities/cl-utilities-latest.tar.gz
-gpg -b -a ~/hacking/lisp/cl-utilities/cl-utilities-1.2.1.tar.gz
-ln -s ~/hacking/lisp/cl-utilities/cl-utilities-1.2.1.tar.gz.asc ~/hacking/lisp/cl-utilities/cl-utilities-latest.tar.gz.asc
-rm -Rf cl-utilities-1.2.1/
+tar -czvf cl-utilities-1.2.3.tar.gz cl-utilities-1.2.3/
+ln -s ~/hacking/lisp/cl-utilities/cl-utilities-1.2.3.tar.gz ~/hacking/lisp/cl-utilities/cl-utilities-latest.tar.gz
+gpg -b -a ~/hacking/lisp/cl-utilities/cl-utilities-1.2.3.tar.gz
+ln -s ~/hacking/lisp/cl-utilities/cl-utilities-1.2.3.tar.gz.asc ~/hacking/lisp/cl-utilities/cl-utilities-latest.tar.gz.asc
+rm -Rf cl-utilities-1.2.3/
 
-scp cl-utilities-1.2.1.tar.gz pscott at common-lisp.net:/project/cl-utilities/public_html/cl-utilities-1.2.1.tar.gz
-scp cl-utilities-1.2.1.tar.gz.asc pscott at common-lisp.net:/project/cl-utilities/public_html/cl-utilities-1.2.1.tar.gz.asc
+scp cl-utilities-1.2.3.tar.gz pscott at common-lisp.net:/project/cl-utilities/public_html/cl-utilities-1.2.3.tar.gz
+scp cl-utilities-1.2.3.tar.gz.asc pscott at common-lisp.net:/project/cl-utilities/public_html/cl-utilities-1.2.3.tar.gz.asc
+scp cl-utilities-latest.tar.gz pscott at common-lisp.net:/project/cl-utilities/ftp/cl-utilities-1.2.3.tar.gz
+scp cl-utilities-latest.tar.gz.asc pscott at common-lisp.net:/project/cl-utilities/ftp/cl-utilities-1.2.3.tar.gz.asc
 scp cl-utilities-latest.tar.gz pscott at common-lisp.net:/project/cl-utilities/public_html/cl-utilities-latest.tar.gz
 scp cl-utilities-latest.tar.gz.asc pscott at common-lisp.net:/project/cl-utilities/public_html/cl-utilities-latest.tar.gz.asc


Index: cl-utilities/rotate-byte.lisp
diff -u cl-utilities/rotate-byte.lisp:1.1.1.1 cl-utilities/rotate-byte.lisp:1.2
--- cl-utilities/rotate-byte.lisp:1.1.1.1	Mon May  9 23:26:29 2005
+++ cl-utilities/rotate-byte.lisp	Thu Dec 29 00:34:29 2005
@@ -22,8 +22,8 @@
              bytespec
              integer))))
   ;; On SBCL, we use the SB-ROTATE-BYTE extension.
-  #+sbcl (sb-rotate-byte:rotate-byte count bytespec integer))
+  #+sbcl-uses-sb-rotate-byte (sb-rotate-byte:rotate-byte count bytespec integer))
 
 ;; If we're using the SB-ROTATE-BYTE extension, we should inline our
 ;; call and let SBCL handle optimization from there.
-#+sbcl (declaim (inline rotate-byte))
\ No newline at end of file
+#+sbcl-uses-sb-rotate-byte (declaim (inline rotate-byte))
\ No newline at end of file




More information about the Cl-utilities-cvs mailing list