Update of /project/cl-utilities/cvsroot/cl-utilities
In directory common-lisp.net:/tmp/cvs-serv4286
Modified Files:
cl-utilities.asd collecting.lisp extremum.lisp package.lisp
package.sh split-sequence.lisp
Log Message:
Added split-sequence, made slight changes, updated package.sh to match my
current machine.
Date: Mon Aug 29 22:14:47 2005
Author: pscott
Index: cl-utilities/cl-utilities.asd
diff -u cl-utilities/cl-utilities.asd:1.2 cl-utilities/cl-utilities.asd:1.3
--- cl-utilities/cl-utilities.asd:1.2 Thu May 26 22:10:56 2005
+++ cl-utilities/cl-utilities.asd Mon Aug 29 22:14:47 2005
@@ -8,6 +8,7 @@
(defsystem cl-utilities
:author "Maintained by Peter Scott"
:components ((:file "package")
+ (:file "split-sequence" :depends-on ("package"))
(:file "extremum" :depends-on ("package"
"with-unique-names"
"once-only"))
@@ -21,4 +22,6 @@
(:file "rotate-byte" :depends-on ("package"))
(:file "copy-array" :depends-on ("package"))
(:file "compose" :depends-on ("package")))
- :depends-on (split-sequence #+sbcl :sb-rotate-byte))
\ No newline at end of file
+ ;; 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
Index: cl-utilities/collecting.lisp
diff -u cl-utilities/collecting.lisp:1.2 cl-utilities/collecting.lisp:1.3
--- cl-utilities/collecting.lisp:1.2 Thu May 26 22:16:47 2005
+++ cl-utilities/collecting.lisp Mon Aug 29 22:14:47 2005
@@ -1,5 +1,5 @@
;; Opinions differ on how a collection macro should work. There are
-;; two main points for discussion: multiple collection variables and
+;; two major points for discussion: multiple collection variables and
;; implementation method.
;;
;; There are two main ways of implementing collection: sticking
Index: cl-utilities/extremum.lisp
diff -u cl-utilities/extremum.lisp:1.6 cl-utilities/extremum.lisp:1.7
--- cl-utilities/extremum.lisp:1.6 Thu May 26 21:20:28 2005
+++ cl-utilities/extremum.lisp Mon Aug 29 22:14:47 2005
@@ -19,6 +19,7 @@
&optional (key #'identity))
(if (eql key #'identity)
`(lambda (a b)
+ (declare (optimize (speed 3) (safety 0) (space 0) (debug 1)))
(if (funcall ,test a b) a b))
whole))
Index: cl-utilities/package.lisp
diff -u cl-utilities/package.lisp:1.2 cl-utilities/package.lisp:1.3
--- cl-utilities/package.lisp:1.2 Thu May 12 23:17:50 2005
+++ cl-utilities/package.lisp Mon Aug 29 22:14:47 2005
@@ -1,5 +1,5 @@
(defpackage :cl-utilities
- (:use :common-lisp :split-sequence)
+ (:use :common-lisp)
(:export #:split-sequence
#:split-sequence-if
#:split-sequence-if-not
Index: cl-utilities/package.sh
diff -u cl-utilities/package.sh:1.3 cl-utilities/package.sh:1.4
--- cl-utilities/package.sh:1.3 Thu May 26 22:29:24 2005
+++ cl-utilities/package.sh Mon Aug 29 22:14:47 2005
@@ -1,17 +1,17 @@
#!/bin/sh
-mkdir cl-utilities-1.1
-cp cl-utilities.asd package.sh collecting.lisp expt-mod.lisp package.lisp split-sequence.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.1/
+mkdir cl-utilities-1.1.1
+cp cl-utilities.asd package.sh collecting.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.1.1/
rm -f cl-utilities-latest.tar.gz cl-utilities-latest.tar.gz.asc
-tar -czvf cl-utilities-1.1.tar.gz cl-utilities-1.1/
-ln -s /root/lisp/cl-utilities/cl-utilities-1.1.tar.gz /root/lisp/cl-utilities/cl-utilities-latest.tar.gz
-/usr/bin/xterm -e gpg -b -a /root/lisp/cl-utilities/cl-utilities-1.1.tar.gz
-ln -s /root/lisp/cl-utilities/cl-utilities-1.1.tar.gz.asc /root/lisp/cl-utilities/cl-utilities-latest.tar.gz.asc
-rm -Rf cl-utilities-1.1/
+tar -czvf cl-utilities-1.1.1.tar.gz cl-utilities-1.1.1/
+ln -s ~/hacking/lisp/cl-utilities/cl-utilities-1.1.1.tar.gz ~/hacking/lisp/cl-utilities/cl-utilities-latest.tar.gz
+gpg -b -a ~/hacking/lisp/cl-utilities/cl-utilities-1.1.1.tar.gz
+ln -s ~/hacking/lisp/cl-utilities/cl-utilities-1.1.1.tar.gz.asc ~/hacking/lisp/cl-utilities/cl-utilities-latest.tar.gz.asc
+rm -Rf cl-utilities-1.1.1/
-scp cl-utilities-1.1.tar.gz pscott@common-lisp.net:/project/cl-utilities/public_html/cl-utilities-1.1.tar.gz
-scp cl-utilities-1.1.tar.gz.asc pscott@common-lisp.net:/project/cl-utilities/public_html/cl-utilities-1.1.tar.gz.asc
+scp cl-utilities-1.1.1.tar.gz pscott@common-lisp.net:/project/cl-utilities/public_html/cl-utilities-1.1.1.tar.gz
+scp cl-utilities-1.1.1.tar.gz.asc pscott@common-lisp.net:/project/cl-utilities/public_html/cl-utilities-1.1.1.tar.gz.asc
scp cl-utilities-latest.tar.gz pscott@common-lisp.net:/project/cl-utilities/public_html/cl-utilities-latest.tar.gz
-scp cl-utilities-latest.tar.gz.asc pscott@common-lisp.net:/project/cl-utilities/public_html/cl-utilities-latest.tar.gz.asc
\ No newline at end of file
+scp cl-utilities-latest.tar.gz.asc pscott@common-lisp.net:/project/cl-utilities/public_html/cl-utilities-latest.tar.gz.asc
Index: cl-utilities/split-sequence.lisp
diff -u cl-utilities/split-sequence.lisp:1.1.1.1 cl-utilities/split-sequence.lisp:1.2
--- cl-utilities/split-sequence.lisp:1.1.1.1 Mon May 9 23:26:29 2005
+++ cl-utilities/split-sequence.lisp Mon Aug 29 22:14:47 2005
@@ -50,6 +50,13 @@
;;; * (split-sequence #\; ";oo;bar;ba;" :start 1 :end 9)
;;; -> ("oo" "bar" "b"), 9
+;; cl-utilities note: the license of this file is unclear, and I don't
+;; even know whom to contact to clarify it. If anybody objects to my
+;; assumption that it is public domain, please contact me so I can do
+;; something about it. Previously I required the split-sequence
+ ; package as a dependency, but that was so unwieldy that it was *the*
+;; sore spot sticking out in the design of cl-utilities. -Peter Scott
+
(in-package :cl-utilities)
(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))
@@ -168,7 +175,7 @@
of this function; :from-end values of NIL and T are equivalent unless
:count is supplied. The second return value is an index suitable as an
argument to CL:SUBSEQ into the sequence indicating where processing
-stopped."
+stopped." ; Emacs syntax highlighting is broken, and this helps: "
(let ((len (length seq))
(other-keys (when key-supplied
(list :key key))))