Release 0.2 (not yet released)

Release 0.1.0 (2026-02-06)

* Initial import based on Cluffer predominantly written by Robert Strandh.

  Major differences compared to Cluffer are listed below.

* All protocols have been split into an external part and an implementation
  part. The external part is intended to be safe and convenient while the
  implementation part is intended to be efficient and minimal. On the safe vs.
  efficient axis, functions in external protocols check preconditions while
  functions in implementation protocols assume correct arguments. On the
  minimal vs. convenient axis, a good example are convenient external functions
  location{<=,<,=,/=,>,>=} each of which accept any number of arguments. On the
  implementation side, there are only the (almost) minimal functions
  location{<=,<,=} each of which accepts exactly two arguments.

* Compared to Cluffer, lines in the standard-line module are less frequently
  converted between the gap-buffer representation and the plain vector
  representation. This change makes many operations more efficient, in
  particular sequences of operations that used to trigger many back and forth
  conversions.

* Compared to Cluffer, it is easier for clients to supply their own LINE
  subclasses due to two changes: Firstly, when the split operation has to make
  a new line object, it uses the new generic function MAKE-LINE-LIKE on which
  clients can define their own methods. Secondly, the standard-line module no
  longer uses CHANGE-CLASS to implement the transition between open and closed
  lines. The latter changes also has a positive impact on performance in most
  all tested implementations.

* The standard-buffer module now caches information that is needed for mapping
  line numbers to line objects and vice versa. Compared to Cluffer, these
  caches allow many common operations to be performed without splaying the tree
  at the core of standard-buffer data structure.

* This library offers the convenience functions MAKE-BUFFER, INSERT-ITEMS and
  INSERT-ITEMS-AT for the common tasks of creating a buffer and adding items in
  bulk.

