[alexandria-devel] Moving to next stage

Nikodemus Siivola nikodemus at random-state.net
Mon Jun 11 10:08:41 UTC 2007


I think Alexandria is soon ready to move to next stage:
dropping the things that we cannot agree on.

My TODO list before that includes just a few cleanups
and documentation tweak (that can be probably best
done in parallel with the dropping), and adding three
more functions: MAP-COMBINATIONS, -PERMUTATIONS,
and -DERANGEMENTS, which I'll merge as soon as I
find my MAP-DERANGEMENTS (missing in action, but I
know I have it.)

Does anyone else think there is something significant
missing?

After we feel that we're as complete as we're likely
to get in short order, I propose the following work
order:

  1. Hash over everything we have, one-by-one:

     * Vetos, dropping the things we don't agree on
       or are feeling unsure about. (Eg. I'm not sure
       the statistical stuff belongs in Alexandria:
       is it "good enough" for real statistical work?
       If not, then we should drop it because people
       really needing it will just need to shadow it,
       and others don't care.)

     * Checking that the documentation is complete
       enough.

     * Checking that the tests are complete enough.

     * Checking that the API is Common Lispy enough:
       :START & :END arguments, etc.

     * Checking that the API is future-proof enough:
       not grabbing names that might better serve other
       purposes, not using &OPTIONAL arguments if we
       may end up wanting to later add &KEY arguments,
       etc.

     * Checking that we're not defining something that
       should be a generic function as function.

     * Checking that functions have their "obvious"
       companion functions: REMOVE-FOO, REMOVE-FOO-IF,
       REMOVE-FOO-IF-NOT, DELETE-FOO, etc.

     * Fixing as necessary.

     ...this is going to take a fair while, so the
     sooner we get to it the better -- but similarly
     it doesn't make a real difference if we start
     a week or few later then sooner.

  2. Make the nickname ALEXANDRIA conditional on there
     not being an ALEXANDRIA.X[.Y] with X greater then
     1.

  3. Wrap it up as ALEXANDRIA.1.BETA.1, and put it up
     for public review (month or two.)

     If there are comments, attend to them and repeat
     the beta cycle

  5. Rename it as ALEXANDRIA.1, and rest on our laurels.

I futher propose that the stuff we drop goes in BABEL
package, which is doesn't make any guarantees about
anything -- just a grab-bag of stuff that doesn't fit
in Alexandria, and doesn't (yet) have an obvious home
elsewhere.

Cheers,

  -- Nikodemus




More information about the alexandria-devel mailing list