Flexichain library specification

Robert STRANDH <[email protected]> Thu, 4 Mar 2004 08:42:17 +0100 (CET)
Newsgroups gmane.lisp.clump
Message-ID <[email protected]>
Hello, 

Matthieu Villeneuve and myself have been working on a library for
storing sequences of objects such that objects can be efficiently
inserted in and deleted from the sequence.  

I am working mostly on the specification, whereas Matthieu is working
on the implementation, which is hard, because I keep changing the
specification.  Actually, he has not yet seen the latest version of
the specification, so I hope he will not faint. 

The library is called `flexichain' (thanks to Tim Moore for letting me
use the `flexi-' prefix).  Potential clients for this library are
Goatee (the text editor of McCLIM), Portable Hemlock, and Gsharp, the
interactive, extensible score editor.  The implementation is an
improved gap-buffer with circular storage to speed up worst-case
operations by a factor two and eliminate an annoying worst case (queue
operations).

We decided to write this library because something with this
functionality is often needed, as is evident from the numerous times
people (including myself) have come up with less efficient and less
general code for a subset of this functionality. 

At this time, we would like for you all to help us review and improve
the specification, so that we can freeze it and let Matthieu work in
peace.  Here it is:

   http://dept-info.labri.fr/~strandh/flexichain.ps 

Although we have thought pretty hard about naming, we are open to
suggestions for improving names of operations, protocols, classes,
etc. 

Thanks in advance for any help. 

Bonne journée,
-- 
Robert Strandh

---------------------------------------------------------------------
Greenspun's Tenth Rule of Programming: any sufficiently complicated C
or Fortran program contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.
---------------------------------------------------------------------