diff --git a/CHANGELOG.md b/CHANGELOG.md index a09adcd..f5c497a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,45 @@ ## [Unreleased] +## [0.11.0] - 2026-08-10 + +### ONE parser architecture — flat subsystem DELETED (4479 lines removed) + +`direct_parse` is now the sole XML parser. The entire flat/ +subsystem (flat_parser, flat_promote, flat_doc, flat_fast, +flat_serialize, flat_xpath) is deleted. One parser, like pugixml. + +#### Changes + +- **UTF-8 name support**: Added `CT_UTF8` flag to the shared + chartype table for bytes >= 0x80. `IS_NAME_CHAR` and + `IS_NAME_START` now include `CT_UTF8`, so UTF-8 multibyte names + (``) scan without truncation. + +- **Close tag prefix:local fix**: Close tag verification now + strips the prefix from `` before comparing with the + open element's local name. This was a latent bug that surfaced + when the flat_parser fallback was removed. + +- **Deleted flat subsystem** (~4479 lines): + - `flat_doc.c/h`, `flat_parser.c/h`, `flat_promote.c/h`, + `flat_fast.c/h`, `flat_serialize.c/h`, `flat_xpath.c/h` + - `test/flat/` directory + `test_flat_promote_line.cpp` + - `benchmarks/flat/bench_flat_parse.c` + - `flat_doc`/`flat_promoted` fields from `struct taurus_document` + - Flat fast-path checks in `xpath_public.c` and `serialize.c` + +- `taurus_parse` calls `direct_parse` directly — no fallback chain. +- `taurus_document_ensure_promoted` is now a no-op chokepoint. + +#### Architecture + +- `src/taurus/parse/` — empty (legacy parser deleted v0.10.0) +- `src/taurus/flat/` — only `direct_parse.c` and `direct_parse.h` + +One parser, one codebase, ~7500 lines of parser code removed across +v0.10.0 + v0.11.0. + + ## [0.10.0] - 2026-08-09 ### Breaking — legacy parser DELETED (3092 lines removed) diff --git a/CMakeLists.txt b/CMakeLists.txt index d943029..a0704f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.20) project(taurus - VERSION 0.10.0 + VERSION 0.11.0 DESCRIPTION "Fast XML parser and XPath evaluator in pure C" LANGUAGES C CXX ) diff --git a/vcpkg.json b/vcpkg.json index 149d9e9..c50d40a 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json", "name": "taurus", - "version": "0.10.0", + "version": "0.11.0", "description": "High-performance XML parser and XPath 1.0 engine in C (libtaurus)", "homepage": "https://github.com/lutaml/taurus", "license": "MIT",