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.
23 files changed: