Skip to content

taurus v0.10.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 14:57
· 27 commits to main since this release

Breaking — legacy parser DELETED (3092 lines removed)

The legacy parser (parser_new.c, 1956 lines) is gone. direct_parse
(with DTD entity support from v0.9.0) now covers the full XML feature
set. The three-parser architecture collapses to two.

Deleted

  • src/taurus/parse/parser_new.c — 1956 lines
  • src/taurus/parse/parser_new.h — 175 lines
  • src/taurus/parse/compact_parser.c — 654 lines (was dead code)
  • Legacy parser fallback in taurus_parse — 319 lines
  • Legacy parser path in taurus_parse_inplace — delegates to taurus_parse

The src/taurus/parse/ directory is now empty.

Changes

  • taurus_parse: when direct_parse and flat_parse both fail,
    returns NULL. No legacy fallback.
  • taurus_parse_inplace: delegates to taurus_parse (direct_parse
    copies the caller's buffer for in-place NUL termination).
  • direct_parse and flat_parser: now respect g_taurus_max_depth
    (custom depth limit) via __thread extern. Falls back to
    DP_MAX_DEPTH (256) / FLAT_MAX_DEPTH when the limit is 0.

Architecture after this release

Two parsers instead of three:

  1. flat/direct_parse.c — single-pass, zero-copy, bulk-alloc,
    DTD-aware (primary).
  2. flat/flat_parser.c — FlatDoc intermediate + lazy promote
    (fallback for edge cases direct_parse rejects).

This is an internal ABI change (no public API surface change).
576/576 tests pass; ASAN clean.