Release 0.3 (not yet released)

Release 0.2 (2026-08-08)

* When lines are deleted from a TEXT.EDITOR-BUFFER.STANDARD-BUFFER:BUFFER, the
  corresponding entries are now cleared from an internal cache to prevent
  garbage retention.

  When the occupancy of the cache drops beyond a certain ratio, the underlying
  storage vector is now shrunk to release the memory.

* The new function TEXT.EDITOR-BUFFER:CLEAR can be used to remove all items of
  either a line or an entire buffer conveniently and efficiently.

* When a TEXT.EDITOR-BUFFER.STANDARD-LINE:LINE is split, the underlying storage
  vector is now shrunk as intended.

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

