From pscott at common-lisp.net Wed May 3 01:33:28 2006 From: pscott at common-lisp.net (pscott) Date: Tue, 2 May 2006 21:33:28 -0400 (EDT) Subject: [cl-utilities-cvs] CVS cl-utilities/doc Message-ID: <20060503013328.E98D975027@common-lisp.net> Update of /project/cl-utilities/cvsroot/cl-utilities/doc In directory clnet:/tmp/cvs-serv22428/doc Modified Files: collecting.html compose.html extremum.html once-only.html rotate-byte.html split-sequence.html with-unique-names.html Log Message: Fixed broken links in with-unique-names.html and changed links to the old HyperSpec at lisp.org to the newer one at lispworks.com. Thanks to Martin Simmons for pointing this out. --- /project/cl-utilities/cvsroot/cl-utilities/doc/collecting.html 2005/12/14 21:15:16 1.2 +++ /project/cl-utilities/cvsroot/cl-utilities/doc/collecting.html 2006/05/03 01:33:28 1.3 @@ -18,7 +18,7 @@

Arguments and Values:

forms---an implicit +href="http://www.lispworks.com/documentation/HyperSpec/Body/glo_i.html#implicit_progn">implicit progn.

collector---a symbol which will have a collection function bound to it. --- /project/cl-utilities/cvsroot/cl-utilities/doc/compose.html 2005/12/14 21:15:16 1.1 +++ /project/cl-utilities/cvsroot/cl-utilities/doc/compose.html 2006/05/03 01:33:28 1.2 @@ -14,7 +14,7 @@

Arguments and Values:

-

function---a function designator.

+

function---a function designator.

composite-function---a function. --- /project/cl-utilities/cvsroot/cl-utilities/doc/extremum.html 2005/12/14 21:15:18 1.2 +++ /project/cl-utilities/cvsroot/cl-utilities/doc/extremum.html 2006/05/03 01:33:28 1.3 @@ -31,13 +31,13 @@ morally-smallest-element---the element of sequence that would appear first if the sequence were ordered according to sort +http://www.lispworks.com/documentation/HyperSpec/Body/fun_sortcm_stable-sort.html">sort using predicate and key

morally-smallest-elements---the identical elements of sequence that would appear first if the sequence were ordered according to sort +http://www.lispworks.com/documentation/HyperSpec/Body/fun_sortcm_stable-sort.html">sort using predicate and key. If predicate states that neither of two objects is before the other, they are considered identical. @@ -47,7 +47,7 @@ n-smallest-elements---the n elements of sequence that would appear first if the sequence were ordered according to sort +http://www.lispworks.com/documentation/HyperSpec/Body/fun_sortcm_stable-sort.html">sort using predicate and key

@@ -57,7 +57,7 @@ appear first if the subsequence of sequence specified by start and end were ordered according to sort +http://www.lispworks.com/documentation/HyperSpec/Body/fun_sortcm_stable-sort.html">sort using predicate and key. @@ -96,7 +96,7 @@

The return value of (extremum predicate sequence :key key) can be defined as (elt (sort +http://www.lispworks.com/documentation/HyperSpec/Body/fun_sortcm_stable-sort.html">sort predicate (subseq sequence start end) :key key) 0) except when sequence is empty (see Exceptional Situations), but may use faster (less asymptotically complex) algorithms to find this answer. --- /project/cl-utilities/cvsroot/cl-utilities/doc/once-only.html 2005/12/14 21:15:18 1.1 +++ /project/cl-utilities/cvsroot/cl-utilities/doc/once-only.html 2006/05/03 01:33:28 1.2 @@ -15,9 +15,9 @@

Arguments and Values:

-name---a symbol.

+name---a symbol.

-form---a form.

+form---a form.

Description:

--- /project/cl-utilities/cvsroot/cl-utilities/doc/rotate-byte.html 2005/12/14 21:15:18 1.1 +++ /project/cl-utilities/cvsroot/cl-utilities/doc/rotate-byte.html 2006/05/03 01:33:28 1.2 @@ -46,7 +46,12 @@

See Also:

-

byte, dpb, ldb +

byte, +dpb, ldb

Implementation notes --- /project/cl-utilities/cvsroot/cl-utilities/doc/split-sequence.html 2005/12/14 21:15:18 1.2 +++ /project/cl-utilities/cvsroot/cl-utilities/doc/split-sequence.html 2006/05/03 01:33:28 1.3 @@ -41,7 +41,7 @@

Splits sequence into a list of subsequences delimited by objects satisfying the test. -

List is a list of sequences of the same kind as sequence that has elements consisting of subsequences of sequence that were delimited in the argument by elements satisfying the test. Index is an index into sequence indicating the unprocessed region, suitable as an argument to subseq to continue processing in the same manner if desired. +

List is a list of sequences of the same kind as sequence that has elements consisting of subsequences of sequence that were delimited in the argument by elements satisfying the test. Index is an index into sequence indicating the unprocessed region, suitable as an argument to subseq to continue processing in the same manner if desired.

The count argument, if supplied, limits the number of subsequences in the first return value; if more than count delimited subsequences exist in sequence, the count leftmost delimited subsequences will be in order in the first return value, and the second return value will be the index into sequence at which processing stopped. --- /project/cl-utilities/cvsroot/cl-utilities/doc/with-unique-names.html 2005/12/14 21:15:18 1.1 +++ /project/cl-utilities/cvsroot/cl-utilities/doc/with-unique-names.html 2006/05/03 01:33:28 1.2 @@ -22,7 +22,7 @@ evaluated. The default is var.

declaration---a declare + http://www.lispworks.com/documentation/HyperSpec/Body/sym_declare.html">declare expression; not returned by the forms.

Description:

Executes + HREF="http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_e.htm#Execute">Executes a series of forms with each var bound to a fresh, uninterned symbol. The uninterned symbol is created as if by - a call to gensym with the + a call to gensym with the string denoted by prefix---or, if prefix is not supplied, the string @@ -51,7 +51,7 @@ created are lexical unless special + HREF="http://www.lispworks.com/documentation/HyperSpec/Body/dec_specia.htm#special">special declarations are specified.

@@ -72,15 +72,15 @@

Side Effects:

- Might increment *gensym-counter* once for each + Might increment *gensym-counter* once for each var.

Affected by:

*gensym-counter* + http://www.lispworks.com/documentation/HyperSpec/Body/var_stgensym-counterst.html">*gensym-counter*

Exceptional Situations:

None.

See Also:

-gensym, let +gensym, let

From pscott at common-lisp.net Wed May 3 01:46:54 2006 From: pscott at common-lisp.net (pscott) Date: Tue, 2 May 2006 21:46:54 -0400 (EDT) Subject: [cl-utilities-cvs] CVS cl-utilities/doc Message-ID: <20060503014654.75D321005@common-lisp.net> Update of /project/cl-utilities/cvsroot/cl-utilities/doc In directory clnet:/tmp/cvs-serv24065/doc Modified Files: split-sequence.html Log Message: Added implementation notes explaining the abysmal performance on lists. --- /project/cl-utilities/cvsroot/cl-utilities/doc/split-sequence.html 2006/05/03 01:33:28 1.3 +++ /project/cl-utilities/cvsroot/cl-utilities/doc/split-sequence.html 2006/05/03 01:46:54 1.4 @@ -78,11 +78,28 @@ me so we can get it straightened out.

The implementation itself is mature and well tested, and it is -widely used. Efficiency probably isn't what it could be with some type -declarations, but the code is striaghtforward and should be fast -enough. If it isn't fast enough for you, feel free to modify -it, or even just complain about it on the mailing list---something -might get done.

+widely used. The code should be fast enough for most people, but be +warned: it was written with vectors in mind, with list manipulation as +an afterthought. It does a lot of things that are quick on vectors but +slow on lists, and this can result in many orders of magnitude +slowdown in list benchmarks versus code written for lists. If this is +a problem for you, it should be straightforward to write your own, +such as the (more limited, not API compatible) example function given +by Szymon in this +mailing list post:

+ +

+(defun split-list-if (test list &aux (start list) (end list))
+  (loop while (and end (setq start (member-if-not test end)))
+	collect (ldiff start (setq end (member-if test start)))))
+

+ +

If this is an issue for enough people, I could optimize the code +and fix this problem. I'm reluctant to do that, however, since the +code works and is tested. It's usually more important to be correct +and non-buggy than to be fast, and I have been known to introduce +bugs.


Manual Index

From pscott at common-lisp.net Wed May 3 01:57:15 2006 From: pscott at common-lisp.net (pscott) Date: Tue, 2 May 2006 21:57:15 -0400 (EDT) Subject: [cl-utilities-cvs] CVS cl-utilities Message-ID: <20060503015715.743772009@common-lisp.net> Update of /project/cl-utilities/cvsroot/cl-utilities In directory clnet:/tmp/cvs-serv24356 Modified Files: package.sh Log Message: Fixed a broken link, for real this time. Really. I hope. --- /project/cl-utilities/cvsroot/cl-utilities/package.sh 2005/12/28 23:34:29 1.7 +++ /project/cl-utilities/cvsroot/cl-utilities/package.sh 2006/05/03 01:57:15 1.8 @@ -1,21 +1,21 @@ #!/bin/sh -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/ +mkdir cl-utilities-1.2.4 +mkdir cl-utilities-1.2.4/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.4/ +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.4/doc/ rm -f cl-utilities-latest.tar.gz cl-utilities-latest.tar.gz.asc -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/ +tar -czvf cl-utilities-1.2.4.tar.gz cl-utilities-1.2.4/ +ln -s ~/hacking/lisp/cl-utilities/cl-utilities-1.2.4.tar.gz ~/hacking/lisp/cl-utilities/cl-utilities-latest.tar.gz +gpg -b -a ~/hacking/lisp/cl-utilities/cl-utilities-1.2.4.tar.gz +ln -s ~/hacking/lisp/cl-utilities/cl-utilities-1.2.4.tar.gz.asc ~/hacking/lisp/cl-utilities/cl-utilities-latest.tar.gz.asc +rm -Rf cl-utilities-1.2.4/ -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-1.2.4.tar.gz pscott at common-lisp.net:/project/cl-utilities/public_html/cl-utilities-1.2.4.tar.gz +scp cl-utilities-1.2.4.tar.gz.asc pscott at common-lisp.net:/project/cl-utilities/public_html/cl-utilities-1.2.4.tar.gz.asc +scp cl-utilities-latest.tar.gz pscott at common-lisp.net:/project/cl-utilities/ftp/cl-utilities-1.2.4.tar.gz +scp cl-utilities-latest.tar.gz.asc pscott at common-lisp.net:/project/cl-utilities/ftp/cl-utilities-1.2.4.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 From pscott at common-lisp.net Wed May 3 01:57:15 2006 From: pscott at common-lisp.net (pscott) Date: Tue, 2 May 2006 21:57:15 -0400 (EDT) Subject: [cl-utilities-cvs] CVS cl-utilities/doc Message-ID: <20060503015715.B33BC4005@common-lisp.net> Update of /project/cl-utilities/cvsroot/cl-utilities/doc In directory clnet:/tmp/cvs-serv24356/doc Modified Files: with-unique-names.html Log Message: Fixed a broken link, for real this time. Really. I hope. --- /project/cl-utilities/cvsroot/cl-utilities/doc/with-unique-names.html 2006/05/03 01:33:28 1.2 +++ /project/cl-utilities/cvsroot/cl-utilities/doc/with-unique-names.html 2006/05/03 01:57:15 1.3 @@ -51,7 +51,7 @@ created are lexical unless special + HREF="http://www.lispworks.com/documentation/HyperSpec/Body/d_specia.htm#special">special declarations are specified.