Commit 76c5d8c
committed
libfyaml: update to 0.9.6.
## [0.9.6] - 2026-03-15
### Major: Public Header Split
The monolithic `libfyaml.h` has been split into focused sub-headers under `include/libfyaml/`. The main header still exists and includes everything, so **existing code requires no changes**. Projects can now include only the sub-headers they need for faster compilation:
- `libfyaml/libfyaml-core.h` — parser, emitter, document, node, path
- `libfyaml/libfyaml-composer.h` — composer interface
- `libfyaml/libfyaml-docbuild.h` — document builder
- `libfyaml/libfyaml-allocator.h` — allocator API
- `libfyaml/libfyaml-atomics.h`, `libfyaml-thread.h`, `libfyaml-util.h`, and more
All gaps in the API documentation have been filled as part of this work.
### Added
- `fy_node_sequence_sort()`: Sort a single sequence node's items using a custom comparator (mirrors `fy_node_mapping_sort()`)
### Changed
- Public API hardened against NULL arguments throughout (`fy_token_*`, `fy_emit_*`, `fy_doc_*`) — fixes #252, #254, #255
- fy-tool: Usage text cleaned up and colorized on TTYs
- Walk: Pathological YPath execution is now capped to prevent runaway resource use
- Dedup allocator: Improvements for split entries and content tags
- `indent_delta` refactored into atom layer for correctness
### Fixed
**Emitter:**
- Folded block scalar line breaks no longer get lost
- Fix comment indentation loss for block sequences inside mappings
- Fix memory leak in `fy_emit_mapping()`
**Parser:**
- Fix failure on empty merge key
- Fix `fy_parser_event_resolve_hook_merge_key_start()` error path
- Fix extent check in `fy_reader_fetch_flow_scalar_handle()`
- Use `HAVE_LLVM_C_CORE_H` to detect LLVM (portability fix)
**Walk (YPath):**
- Cap pathological YPath execution to prevent runaway resource use
- Guard numeric expression conversion against overflow
**Document API:**
- Avoid rehashing anchors during cleanup
- Fix `fy_node_copy_to_scalar()` mess
- Fix bogus condition in `fy_node_by_path_internal()`
- Keep remove-by-key lookup nodes caller-owned
**Threading:**
- Fix threading bug triggered when thread count hits 64
**Build / Portability:**
- cmake: Install canned man pages when Sphinx is not available
- cmake: Respect `DESTDIR` when creating symlinks to fy-tool
- cmake: Rework Windows CMake support for correctness
- cmake: Fix docs build after public header move
- windows: Fix compilation issues
- build: Link libm in autotools builds
- utils: Fix overflow implementations
- `.gitattributes`: Mark all text files as LF-terminated1 parent ebb2868 commit 76c5d8c
4 files changed
Lines changed: 50 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
2 | 7 | | |
| 8 | + | |
3 | 9 | | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
4 | 23 | | |
5 | 24 | | |
6 | 25 | | |
| |||
9 | 28 | | |
10 | 29 | | |
11 | 30 | | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
4 | | - | |
5 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
0 commit comments