Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Commit [a682f4] Maximize Restore History

1.0.0.22: Extensible sequences. (EXPERIMENTAL: Do Not Use As Food)

... a little bit of type system hackery, as usual; we can't
use hierarchical comparison on the newly non-sealed
classoid SEQUENCE because, well, its subclasses aren't
hierarchically arranged (take a bow, ARRAY).
... a certain amount of rearrangement of seq.lisp and related
source files; mostly, defining SEQ-DISPATCH to have
three branches rather than two, and writing trampoline
stubs.
... make CONSED-SEQUENCE understand that we can only be clever
about freshly-consed vectors.
... actually make DOVECTOR be like DOLIST, in having a tagbody,
being clever about the declarations, and so on.
... new SEQUENCEP function.
... new macro DOSEQUENCE (like DOVECTOR and DOLIST but for
sequences, used in one or two places)
... lotso &REST args for sequence functions, so fndb needed
reworking. (The &REST args have dynamic extent and
are declared as such)
... change VALIDATE-SUPERCLASS to allow SEQUENCE as a
superclass.
... disable a couple of XC type tests.

Note: you don't get tests for this for two reasons: one, the
interface isn't stable (I'm hoping to get feedback), but more
importantly two, the tests that I have are a derived work of a
GPL piece of software (the ansi-tests from GCL). This situation
will be rectified eventually.

Feedback welcome.

Christophe Rhodes Christophe Rhodes 2006-12-05

added src/pcl/sequence.lisp
changed src/code/array.lisp
changed src/code/class.lisp
changed src/code/coerce.lisp
changed src/code/cross-type.lisp
changed src/code/defboot.lisp
changed src/code/deftypes-for-target.lisp
changed src/code/early-extensions.lisp
changed src/code/early-type.lisp
changed src/code/late-type.lisp
changed src/code/pred.lisp
changed src/code/seq.lisp
changed src/code/sort.lisp
changed src/cold/warm.lisp
changed src/compiler/generic/vm-fndb.lisp
changed src/compiler/fndb.lisp
changed src/compiler/seqtran.lisp
changed src/compiler/typetran.lisp
changed src/pcl/std-class.lisp
changed tests/type.before-xc.lisp
changed NEWS
changed package-data-list.lisp-expr
changed version.lisp-expr
src/pcl/sequence.lisp Diff Switch to side-by-side view
Loading...
src/code/array.lisp Diff Switch to side-by-side view
Loading...
src/code/class.lisp Diff Switch to side-by-side view
Loading...
src/code/coerce.lisp Diff Switch to side-by-side view
Loading...
src/code/cross-type.lisp Diff Switch to side-by-side view
Loading...
src/code/defboot.lisp Diff Switch to side-by-side view
Loading...
src/code/deftypes-for-target.lisp Diff Switch to side-by-side view
Loading...
src/code/early-extensions.lisp Diff Switch to side-by-side view
Loading...
src/code/early-type.lisp Diff Switch to side-by-side view
Loading...
src/code/late-type.lisp Diff Switch to side-by-side view
Loading...
src/code/pred.lisp Diff Switch to side-by-side view
Loading...
src/code/seq.lisp Diff Switch to side-by-side view
Loading...
src/code/sort.lisp Diff Switch to side-by-side view
Loading...
src/cold/warm.lisp Diff Switch to side-by-side view
Loading...
src/compiler/generic/vm-fndb.lisp Diff Switch to side-by-side view
Loading...
src/compiler/fndb.lisp Diff Switch to side-by-side view
Loading...
src/compiler/seqtran.lisp Diff Switch to side-by-side view
Loading...
src/compiler/typetran.lisp Diff Switch to side-by-side view
Loading...
src/pcl/std-class.lisp Diff Switch to side-by-side view
Loading...
tests/type.before-xc.lisp Diff Switch to side-by-side view
Loading...
NEWS Diff Switch to side-by-side view
Loading...
package-data-list.lisp-expr Diff Switch to side-by-side view
Loading...
version.lisp-expr Diff Switch to side-by-side view
Loading...