[sicl-cvs] GIT update: SICL, bricks for implementors of Common Lisp systems. branch, master, updated. c908a4647626b56aa21fb83a6a5058e83aada7e2
Robert Strandh
rstrandh at common-lisp.net
Sat Dec 4 16:18:10 UTC 2010
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SICL, bricks for implementors of Common Lisp systems. ".
The branch, master has been updated
via c908a4647626b56aa21fb83a6a5058e83aada7e2 (commit)
from 8e2ba58ac3a3fcbbb8a7b9ec3f00fb3822dbfb93 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c908a4647626b56aa21fb83a6a5058e83aada7e2
Author: Robert Strandh <strandh at Sicl.(none)>
Date: Sat Dec 4 17:06:53 2010 +0100
New method for traversing lists from the end, which is required by
some sequence functions, in particular count when from-end is true.
This method uses recursion, and traverses during backtrack, but it
limits the stack depth to some fixed amount that can be set for
each implementation.
Modified existing specialized versions of count to take advantage of
the new method. Some of them were correct in that they traversed from
end, using an auxiliary vector. Some of them were wrong, because they
would scan from start to end even though key=other, so the key
function could have side effects, and so scanning from start to end
would have been a violation of the standard.
This new method gives us a very fast version of count when from-end is
true and either key is not identity or either test or test-not is
neither eql nor eq, i.e., when the test and/or the key might have side
effects. We have observed execution times of only 1/3 of those of
SBCL on long lists.
Even though there is no requirement that the list be scanned from the
end when from-end is true in functions such as find, scanning from the
beginning can be penalizing when the test and/or the key functions are
costly to execute. We might use our new method for those cases as
well, thus potentially saving a lot when the item looked for is close
to the end of the list.
More utility functions to use at the end of lists.
More renamings in order that the code conform to recent naming
conventions.
The entire code is in a limbo now. Many tests fail. This is work in
progress to get it back into a reasonable state.
-----------------------------------------------------------------------
Summary of changes:
Code/Sequences/sequences.lisp | 3911 ++++++++++++++++++-----------------------
1 files changed, 1758 insertions(+), 2153 deletions(-)
hooks/post-receive
--
SICL, bricks for implementors of Common Lisp systems.
More information about the Sicl-cvs
mailing list