Update CHANGELOG.md for v5.0.0

This commit is contained in:
Josh Holtrop 2026-08-21 14:59:28 -04:00
parent 3879344e6e
commit 2508fb311e

View File

@ -3,20 +3,20 @@
### New Features ### New Features
- Add Rust target language output. - Add Rust target language output.
- Add Rust language detection in propane.vim.
### API Changes ### API Changes
- The matched text argument passed to lexer user code blocks is now named - The matched text argument passed to lexer user code blocks is now named
`match_text` for every target language. It was previously named `match` for `match_text` instead of `match`, since `match` is a keyword in Rust. The
C, C++, and D, and `match_` for Rust. Any lexer user code block which
references the matched text must be updated to use the new name. The
`match_length` argument (C and C++) is unchanged. `match_length` argument (C and C++) is unchanged.
- Tree generation mode now stores all tree nodes in a compact arena owned by - Tree generation mode now stores all tree nodes in a compact arena owned by
the parser context (a flat node array plus a shared child-link array). the parser context (a flat node array plus a shared child-link array).
This replaces the previous design of one heap allocation per node with This replaces the previous design of one heap allocation per node with
layout-punned typed structs. layout-punned typed structs.
- Tree nodes are now referenced by lightweight handles rather than pointers. - Tree nodes are now referenced by lightweight handles rather than pointers.
`p_result()` and the field accessors return handle values. `p_result()` and the field accessors now return handle values in tree
generation mode.
- The whole tree is freed together with the context by `p_context_delete()`. - The whole tree is freed together with the context by `p_context_delete()`.
The `p_tree_delete()` / `p_tree_delete_XXX()` functions have been removed; The `p_tree_delete()` / `p_tree_delete_XXX()` functions have been removed;
tree node handles are only valid while the context is alive. tree node handles are only valid while the context is alive.