Opened 7 months ago

Closed 7 months ago

#22979 closed enhancement (fixed)

libfyaml-0.9.6

Reported by: Bruce Dubbs Owned by: Joe Locash
Priority: normal Milestone: 13.1
Component: BOOK Version: git
Severity: medium Keywords:
Cc:

Description

New point version.

Change History (2)

comment:1 by Joe Locash, 7 months ago

Owner: changed from blfs-book to Joe Locash
Status: new → assigned

comment:2 by Joe Locash, 7 months ago

Resolution: → fixed
Status: assigned → closed
## [0.9.6] - 2026-03-15

### Major: Public Header Split

The monolithic `libfyaml.h` has been split into focused sub-headers under `inclu
de/libfyaml/`. The main header still exists and includes everything, so **existi
ng code requires no changes**. Projects can now include only the sub-headers the
y 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 mor
e

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 u
se
- 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-terminated

### Statistics

- 49 commits since v0.9.5
- 3 issues closed (#252, #254, #255 — NULL argument hardening)
- New contributor: jonathanrainer (`fy_node_sequence_sort`)

Fixed at f63d96c692.

Note: See TracTickets for help on using tickets.