Skip to content

Commit 4f08873

Browse files
committed
libfyaml: update to 0.9.4.
## [0.9.4] - 2026-02-03 ### Major: Full Windows Support This release adds **full native Windows support**. libfyaml now builds and runs natively on Windows with MSVC, clang-cl, and Clang compilers. **Native Windows builds:** - Full support for building on Windows using MSVC, clang-cl, or GCC - Works with Visual Studio, VSCode, and other Windows development tools - All tests pass on Windows **Cross-compilation from Linux:** - Support for msvc-wine to install MSVC redistributables on Linux - Compile using `cl.exe` via Wine - Compile using `clang-cl` without Wine - Compile using Clang cross-compilation triplet ### Major: Comment Support Now Stable Comment parsing and emission has been moved out of experimental status. Comments can now be reliably preserved and manipulated through the API. ### Added - `fy_node_set_style()`: Set the style of a node (block, flow, plain, etc.) - Fixes #78 - `fy_token_set_comment()`: Attach comments to tokens programmatically - `fy_event_to_string()`: Convert events to string representation - `fy_diag_get_collect_errors()`: Query if error collection is enabled - `fy_atom_lines_containing()`: Get lines containing an atom (for diagnostics) - `fy_memstream`: Portable `open_memstream` alternative for cross-platform support - CMake-based CI workflow with improved matrix coverage - Emscripten platform detection for `endian.h` ### Changed - libclang now defaults to OFF (will be enabled when reflection features are ready) - Document start token is now preserved (may contain comments) - Walk methods now handle error paths more systematically - Removed non-existent experimental function declarations from `libfyaml.h` ### Fixed - **#193**: Token creation now properly clears memory to avoid undefined behavior on invalid input - **#186**: Reference loop nesting now respected when checking link validity - **#185**: Fixed crash when setting document root to NULL; also fixed input size clamping for corrupted input - **#184**: Walk memory leak fix with improved debugging infrastructure - **#183, #191**: Error out early on `FYECF_EXTENDED_CFG` with helper emit methods (prevents crash) - **#182**: Walk expression unref bug fix with debug infrastructure - **#181**: Walk double-free on node delete - **#178, #177**: Walk methods now handle error paths systematically (recursive alias resolution) - **#176**: Off-by-one error in `fy_accel_grow` - **#175**: Parser crash on corrupted UTF-8 at end of file - **#174**: Superfluous document end marker with explicit version/tag directives - **#173, #172**: Depth limit for node copy (prevents stack overflow under fuzzing) - **#143**: Document root now correctly marked as attached - Emit state now properly reset at end of document (fixes multi-document stream markers) - Flow quoting error on ANY style (test was backwards) - Empty file `fdopen` issue on some platforms - Empty stream `realloc(0)` undefined behavior - Removed jarring notice when alias is declared multiple times (valid YAML) ### Platform Support **Supported platforms**: Linux, macOS, FreeBSD, OpenBSD, NetBSD, and **Windows**. **Windows-specific:** - Full native MSVC support (32-bit and 64-bit) - clang-cl and Clang cross-compilation support - msvc-wine support for Linux-based Windows cross-compilation - Proper CRLF (DOS line ending) handling - Fixed 32-bit MSVC intrinsics (`_BitScanForward64`, `_BitScanReverse64`, `__popcnt64`) **Portability fixes:** - Fixed void pointer arithmetic (GCC extension) for strict C compliance - Fixed GCC ternary operator extension (`x ? : y` -> `x ? x : y`) - Fixed `\e` escape sequence (GCC/clang extension) -> `\x1b` - Fixed enum comparison warnings across platforms - Align mremap initial size to page boundary (fixes BSD crashes) **macOS:** - Fixed ASAN support (requires `-fsanitize=address` at link time) - Added extra ASAN flags for Apple's clang (alloca poisoning disabled) **CI/Build:** - New CMake-based GitHub Actions workflow - Improved build matrix coverage - Fixed distcheck breakage ### Internal - Walk expression debug infrastructure for easier debugging - Portable `fy_memstream` wrapper for `open_memstream` - Use `fy_align_alloc/free` wrappers in allocator - Fixed allocator `get_caps` return type (enum, not int) - Atomic counter function instead of macro - General warning cleanup pass ### Statistics - 58 commits since v0.9.3 - 18 bug fix issues closed - Full Windows platform support added
1 parent 8dc8387 commit 4f08873

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

textproc/libfyaml/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# $NetBSD: Makefile,v 1.6 2026/01/18 10:50:26 wiz Exp $
1+
# $NetBSD: Makefile,v 1.7 2026/02/08 21:46:47 wiz Exp $
22

3-
DISTNAME= libfyaml-0.9.3
3+
DISTNAME= libfyaml-0.9.4
44
CATEGORIES= textproc
55
MASTER_SITES= ${MASTER_SITE_GITHUB:=pantoniou/}
66
GITHUB_RELEASE= v${PKGVERSION_NOREV}

textproc/libfyaml/distinfo

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
$NetBSD: distinfo,v 1.4 2026/01/18 10:50:26 wiz Exp $
1+
$NetBSD: distinfo,v 1.5 2026/02/08 21:46:47 wiz Exp $
22

3-
BLAKE2s (libfyaml-0.9.3.tar.gz) = 7030854e5f1976d9be02f641bbc0413398775f9a9f3a195b96ff69c3ef1a5f9b
4-
SHA512 (libfyaml-0.9.3.tar.gz) = 0b991d9beaaeb1a088ae25666f679235d76812bb4b991d56843d7b24369aa67b50975903f8758c065d25520590114cdb137d78d8fcd56e0e4a8e6094d8728c84
5-
Size (libfyaml-0.9.3.tar.gz) = 1076446 bytes
3+
BLAKE2s (libfyaml-0.9.4.tar.gz) = 005df028474a7dbdc04c3c407e939da1db5bb11124911878d8da465bc011db12
4+
SHA512 (libfyaml-0.9.4.tar.gz) = 5335bc07c102902a95c54848863cf353e2cdd8efb0f6fa47f41429b7bda1bc5133cb3a2c753faebf42fe23a35eaf8e4267f89276e921e6e6dbed9960528ff15f
5+
Size (libfyaml-0.9.4.tar.gz) = 1025050 bytes

0 commit comments

Comments
 (0)