MODIFIED: library(memfile), providing memory based buffers and streams.
The implementation has changed considerably, although it remains
compatible for typical use cases.  Summary:

  - Handles are now reserved symbols (like streams, etc.), providing
    safety against double removal, memory corruption, etc.  Memory
    files are now also subject to GC.
  - The API is now thread-safe.
  - open_memory_file/3 now supports the modes append, update and insert.
  - New predicates have been added to
    - Get the content as a string
    - Insert and delete text anywhere in the buffer
    - Get a range of characters as a string.

With these changes memory files provide the functionality to maintain a
mirror of the SWISH editor needed for code analysis.  This avoids the
need for XPCE to run SWISH and avoids the single-thread limitation of
XPCE.