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. ---------------------------------------------------------------------