Skip to content

v3.0.0

Latest

Choose a tag to compare

@mta452 mta452 released this 24 Jan 20:31

Additions

  • Introduced a new Text Editing and Analysis API:

    • Provides immutable and mutable text objects with support for UTF-8, UTF-16, and UTF-32 encodings.
    • Supports efficient text mutation operations including insert, delete, replace, and batch edits with deferred reanalysis.
    • Makes attributes a first class concept, enabling attribute aware text inspection and replacement.
    • Exposes logical, script, attribute, and visual run iterators for traversing analyzed text.
    • Enables paragraph iteration with access to paragraph level metadata and analysis results.
    • Comes with extensive test coverage for text editing, attributes, run iteration, and replacement semantics.
  • Introduced SBAllocator as a public memory allocation abstraction:

    • Allows clients to provide custom allocation, reallocation, and deallocation strategies.
    • Ensures consistent allocator usage across all public APIs.
    • Includes allocator specific test suites across all supported build systems.
  • Introduced internal thread safety and concurrency support:

    • Implements platform independent atomic operations, thread local storage, memory fences, and one time execution primitives as internal infrastructure.
    • Makes internal object reference counting thread safe.
    • Includes comprehensive test coverage for concurrency behavior.
  • Updated Unicode data to Unicode 17.0.0 (thanks @utelle).

  • Added support for installing the library in all CMake configurations (thanks @jcowgill).

Updates

  • Refined internal implementations of run queues and bracket queues.
  • Improved performance and memory usage across internal text processing paths.
  • Reorganized the source layout for clearer separation of components.