commits
- Add test_golden_compress.ml: Tests compression of zstd reference
golden test files at all compression levels (1-19) with both OCaml
roundtrip and C zstd interop verification
- Remove debug executable entries from dune (files already deleted)
All 8 golden compression tests pass.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Three critical fixes for compression reliability:
1. Huffman tree algorithm: Replace heuristic bit-length assignment with
proper Huffman tree that includes implied symbol. This ensures the
leftover is always a power of 2, satisfying Kraft equality.
2. Symbol count overflow: Fall back to raw literals when >128 unique
symbols, since direct representation header can only encode up to
128 weights (header byte = 127 + num_weights would overflow 255).
3. Raw literals size_format: Use size_format=3 (0b1100) instead of
size_format=2 (0b1000) for 3-byte header. Per RFC 8878, size_format
0 and 2 both mean 5-bit size; size_format 3 means 20-bit size.
Add comprehensive test suite (1083 tests across 19 compression levels
and various data patterns). All tests now pass.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Two bugs fixed:
1. Literal length encoding: The formula for codes >= 16 was incorrect.
Used `16 + (lit_len - 16) / 4` which assumed all codes have same
extra bit count, but LL codes 16-19 have 1 bit, 20-21 have 2 bits,
etc. Fixed by using proper baseline table lookup for all codes >= 16.
2. Offset encoding with literal_length=0: When ll=0, the repeat offset
semantics shift per RFC 8878 section 3.1.1.5:
- offBase=1 means rep[1] (not rep[0]!)
- offBase=2 means rep[2]
- offBase=3 means rep[0]-1
The encoder was using offBase=1 for rep[0] regardless of ll, causing
corrupted output when ll=0 (decoder would use wrong repeat offset).
Fixed by encoding full offset when ll=0 and rep[0] is needed.
Also fixed match_length encoding to use proper baseline lookup.
All 19 tests pass. Verified with both OCaml and C zstd decompressors.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix critical offset encoding bug: compute ofCode = highbit(offBase) without
incorrectly adding 3 to the FSE symbol
- Fix offset history update condition from of_code > 3 to of_code > 1
- Add skippable frame support (read, write, detect, get_skippable_variant)
- Add multi-frame decompression (decompress_all, find_frame_compressed_size)
- Add compression ratio test verifying RLE efficiency
- Remove all debug Printf.eprintf statements
- Remove stray test files from project root
- Update STATUS.md with complete feature comparison
All 30 tests now pass:
- 14 zstd unit tests
- 6 bytesrw_zstd streaming tests
- 10 C interop tests
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Encoder improvements:
- Add RLE block support for repetitive data (massive compression)
- Fix block header encoding (block_type in bits 1-2)
- Remove duplicate zstd_magic constant
Code cleanup:
- Refactor duplicated code in huffman.ml write_header
- Add comprehensive module documentation for encoder limitations
- Document future work for FSE-compressed blocks
STATUS.md updates:
- Add detailed feature comparison vs C zstd library
- Document decoder (~95% complete) and encoder (~40% complete)
- Add test coverage summary (22 tests passing)
- Document interoperability verification with C zstd
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Interop tests verify:
- Pure OCaml decompresses C-compressed data (test vectors from bytesrw)
- C zstd CLI decompresses pure OCaml compressed data
- Roundtrip works for various data sizes and compression levels
Fixes:
- Empty frame encoding now includes required empty block header (01 00 00)
- Empty frame decompression correctly reads block header before checksum
All 22 tests pass (9 zstd + 6 bytesrw + 7 interop).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements bytesrw stream filters for zstd compression/decompression:
- compress_reads/compress_writes for compression
- decompress_reads/decompress_writes for decompression
- Proper error handling via bytesrw error system
- Includes tests for roundtrip, empty input, and large input
Also fixes empty frame decompression (content_size=0 has no blocks).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add bitstream as a dependency
- Rewrite bit_reader.ml as thin wrapper around Bitstream, translating
exceptions to Zstd_error
- Rewrite bit_writer.ml as thin wrapper around Bitstream
- Update vendored bitstream to latest with bytesrw-compatible slice API
This decouples bit-level I/O from zstd-specific error handling and
enables future bytesrw streaming integration.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Pure OCaml implementation of forward and backward bitstream reading/writing:
- Forward_reader/Forward_writer: standard start-to-end bit operations
- Backward_reader/Backward_writer: end-to-start for FSE/ANS codecs
- Comprehensive test suite (13 tests)
Extracted from ocaml-zstd for reuse in other binary format parsers.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove local src/xxhash.ml (was duplicated code)
- Add xxhash library dependency to dune
- ocaml-xxhash is now vendored at vendor/opam/ocaml-xxhash
This uses the comprehensive, tested xxhash implementation that has been
validated against the official C reference test vectors.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Extract 52 test vectors from vendor/git/xxHash/tests/sanity_test_vectors.h
- Cover all lengths 0-31, key boundaries (32, 33, 48, 63, 64, 65, 96, 100, 127, 128)
- Include large inputs (256, 512, 1024, 4096 bytes)
- Test both seed=0 and seed=PRIME32 (0x9E3779B1)
- Add streaming and byte-wise streaming validation
- 24 tests, 100% pass rate against C reference
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Pure OCaml xxHash-64 implementation with one-shot and streaming APIs
- 21 tests covering consistency, boundaries, streaming, and properties
- Vendored C reference from github.com/Cyan4973/xxHash
- STATUS.md documenting work needed for reference test suite integration
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace verbose match expressions with Option.fold, Option.map, and
Option.bind for cleaner code. Removes ~50 lines while preserving
identical semantics.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add complete zstd implementation in ~3,000 lines of pure OCaml:
- Full decompression: Raw, RLE, and Compressed blocks
- FSE (Finite State Entropy) decoding with predefined/custom tables
- Huffman 1-stream and 4-stream decoding
- Sequence decoding with repeat offset handling
- xxHash-64 checksum computation
- Dictionary support for decompression
- Basic compression with raw block output
- Roundtrip compress/decompress working
Source files:
- constants.ml: Magic numbers, FSE tables, sequence baselines
- bit_reader.ml: Forward/backward bitstream reading
- bit_writer.ml: Forward/backward bitstream writing
- fse.ml: FSE encode/decode
- huffman.ml: Huffman encode/decode
- xxhash.ml: xxHash-64 checksums
- zstd_decode.ml: Frame/block decompression
- zstd_encode.ml: Frame/block compression
- zstd.ml/mli: Public API
All 9 tests pass including golden decompression tests from the
official zstd test suite.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Status: STUB PROJECT - Zstd C library vendored, no OCaml code yet.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove legacy support by default
Summary:
Some old zstd versions (notably v0.6.x) have a bug in fileio.c where header includes check for `ZSTD_LEGACY_SUPPORT==1` but code usage checks for `ZSTD_LEGACY_SUPPORT>=1`. Using value 5 causes compilation failure because headers aren't included but the code tries to use legacy functions.
Changing to `ZSTD_LEGACY_SUPPORT=1` for old version builds fixes the compilation while still enabling legacy format support.
Test Plan:
Run `make versionsTest` or `python3 tests/test-zstd-versions.py` to verify all old versions compile and cross-version decompression works correctly.
This is a bug in the streaming implementation of the v0.5 decoder.
The bug has always been there.
It requires an uncommon block configuration, which wasn't tested at the time.
v0.5 is deprecated now,
latest version to produce such format is v0.5.1 from February 2016.
It was superceded in April 2016.
So it's both short lived and very old.
Another PR will remove support of this format,
but it will still be possible to explicitely request this support on demand,
so better fix the issue.
Summary:
The version compatibility test needs to decode legacy frames (v0.5.x - v0.7.x) to verify cross-version interoperability. Since legacy support is now disabled by default (v1.6.0), head must be built with ZSTD_LEGACY_SUPPORT=5 for this test.
Test Plan:
Run `python3 tests/test-zstd-versions.py` to verify cross-version compatibility testing works correctly.
Summary:
Updates the library build tests to reflect that legacy format support is now disabled by default. Also adds a new test case to verify that legacy support can still be explicitly enabled via ZSTD_LEGACY_SUPPORT=5.
Test Plan:
Run `bash tests/libzstd_builds.sh` on a Linux environment.
Summary:
Completes the transition to disabled legacy support by default across all build systems. This follows up on the previous Makefile and CMake changes to ensure consistent default behavior regardless of the build system used.
Updated build configurations: Meson, tests/Makefile, Visual Studio 2008/2010 projects, and BUCK.
Test Plan:
Verified changes compile correctly via `make lib-release`. Build system configurations have been updated consistently across all platforms.
to reflect the relatively big scope change by removing support of legacy formats.
can still be changed manually by setting `ZSTD_LEGACY_SUPPORT` to a different value
[ci] update freebsd image
Bump actions/upload-artifact from 5.0.0 to 6.0.0
Bump actions/cache from 4 to 5
Bump msys2/setup-msys2 from 2.29.0 to 2.30.0
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)
---
updated-dependencies:
- dependency-name: actions/cache
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: 6.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Bumps [msys2/setup-msys2](https://github.com/msys2/setup-msys2) from 2.29.0 to 2.30.0.
- [Release notes](https://github.com/msys2/setup-msys2/releases)
- [Changelog](https://github.com/msys2/setup-msys2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/msys2/setup-msys2/compare/fb197b72ce45fb24f17bf3f807a388985654d1f2...4f806de0a5a7294ffabaff804b38a9b435a73bda)
---
updated-dependencies:
- dependency-name: msys2/setup-msys2
dependency-version: 2.30.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Bump actions/setup-java from 5.0.0 to 5.1.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/dded0888837ed1f317902acf8a20df0ad188d165...f2beeb24e141e01a676f977032f5a29d81c9e27e)
---
updated-dependencies:
- dependency-name: actions/setup-java
dependency-version: 5.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Bump actions/checkout from 6.0.0 to 6.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v6...v6.0.1)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Add RISC-V 64-bit architecture detection
modulemap: remove `config_macros`
Split lib target types in their own export groups
Bump actions/checkout from 5.0.0 to 6.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Bump github/codeql-action from 3.30.1 to 4.31.2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.1 to 4.31.2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/f1f6e5f6af878fb37288ce1c627459e94dbf7d01...0499de31b99561a6d14a36a5f662c2a54f91beee)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-version: 4.31.2
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Bump actions/upload-artifact from 4 to 5
- Add test_golden_compress.ml: Tests compression of zstd reference
golden test files at all compression levels (1-19) with both OCaml
roundtrip and C zstd interop verification
- Remove debug executable entries from dune (files already deleted)
All 8 golden compression tests pass.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Three critical fixes for compression reliability:
1. Huffman tree algorithm: Replace heuristic bit-length assignment with
proper Huffman tree that includes implied symbol. This ensures the
leftover is always a power of 2, satisfying Kraft equality.
2. Symbol count overflow: Fall back to raw literals when >128 unique
symbols, since direct representation header can only encode up to
128 weights (header byte = 127 + num_weights would overflow 255).
3. Raw literals size_format: Use size_format=3 (0b1100) instead of
size_format=2 (0b1000) for 3-byte header. Per RFC 8878, size_format
0 and 2 both mean 5-bit size; size_format 3 means 20-bit size.
Add comprehensive test suite (1083 tests across 19 compression levels
and various data patterns). All tests now pass.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Two bugs fixed:
1. Literal length encoding: The formula for codes >= 16 was incorrect.
Used `16 + (lit_len - 16) / 4` which assumed all codes have same
extra bit count, but LL codes 16-19 have 1 bit, 20-21 have 2 bits,
etc. Fixed by using proper baseline table lookup for all codes >= 16.
2. Offset encoding with literal_length=0: When ll=0, the repeat offset
semantics shift per RFC 8878 section 3.1.1.5:
- offBase=1 means rep[1] (not rep[0]!)
- offBase=2 means rep[2]
- offBase=3 means rep[0]-1
The encoder was using offBase=1 for rep[0] regardless of ll, causing
corrupted output when ll=0 (decoder would use wrong repeat offset).
Fixed by encoding full offset when ll=0 and rep[0] is needed.
Also fixed match_length encoding to use proper baseline lookup.
All 19 tests pass. Verified with both OCaml and C zstd decompressors.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix critical offset encoding bug: compute ofCode = highbit(offBase) without
incorrectly adding 3 to the FSE symbol
- Fix offset history update condition from of_code > 3 to of_code > 1
- Add skippable frame support (read, write, detect, get_skippable_variant)
- Add multi-frame decompression (decompress_all, find_frame_compressed_size)
- Add compression ratio test verifying RLE efficiency
- Remove all debug Printf.eprintf statements
- Remove stray test files from project root
- Update STATUS.md with complete feature comparison
All 30 tests now pass:
- 14 zstd unit tests
- 6 bytesrw_zstd streaming tests
- 10 C interop tests
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Encoder improvements:
- Add RLE block support for repetitive data (massive compression)
- Fix block header encoding (block_type in bits 1-2)
- Remove duplicate zstd_magic constant
Code cleanup:
- Refactor duplicated code in huffman.ml write_header
- Add comprehensive module documentation for encoder limitations
- Document future work for FSE-compressed blocks
STATUS.md updates:
- Add detailed feature comparison vs C zstd library
- Document decoder (~95% complete) and encoder (~40% complete)
- Add test coverage summary (22 tests passing)
- Document interoperability verification with C zstd
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Interop tests verify:
- Pure OCaml decompresses C-compressed data (test vectors from bytesrw)
- C zstd CLI decompresses pure OCaml compressed data
- Roundtrip works for various data sizes and compression levels
Fixes:
- Empty frame encoding now includes required empty block header (01 00 00)
- Empty frame decompression correctly reads block header before checksum
All 22 tests pass (9 zstd + 6 bytesrw + 7 interop).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements bytesrw stream filters for zstd compression/decompression:
- compress_reads/compress_writes for compression
- decompress_reads/decompress_writes for decompression
- Proper error handling via bytesrw error system
- Includes tests for roundtrip, empty input, and large input
Also fixes empty frame decompression (content_size=0 has no blocks).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add bitstream as a dependency
- Rewrite bit_reader.ml as thin wrapper around Bitstream, translating
exceptions to Zstd_error
- Rewrite bit_writer.ml as thin wrapper around Bitstream
- Update vendored bitstream to latest with bytesrw-compatible slice API
This decouples bit-level I/O from zstd-specific error handling and
enables future bytesrw streaming integration.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Pure OCaml implementation of forward and backward bitstream reading/writing:
- Forward_reader/Forward_writer: standard start-to-end bit operations
- Backward_reader/Backward_writer: end-to-start for FSE/ANS codecs
- Comprehensive test suite (13 tests)
Extracted from ocaml-zstd for reuse in other binary format parsers.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove local src/xxhash.ml (was duplicated code)
- Add xxhash library dependency to dune
- ocaml-xxhash is now vendored at vendor/opam/ocaml-xxhash
This uses the comprehensive, tested xxhash implementation that has been
validated against the official C reference test vectors.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Extract 52 test vectors from vendor/git/xxHash/tests/sanity_test_vectors.h
- Cover all lengths 0-31, key boundaries (32, 33, 48, 63, 64, 65, 96, 100, 127, 128)
- Include large inputs (256, 512, 1024, 4096 bytes)
- Test both seed=0 and seed=PRIME32 (0x9E3779B1)
- Add streaming and byte-wise streaming validation
- 24 tests, 100% pass rate against C reference
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Pure OCaml xxHash-64 implementation with one-shot and streaming APIs
- 21 tests covering consistency, boundaries, streaming, and properties
- Vendored C reference from github.com/Cyan4973/xxHash
- STATUS.md documenting work needed for reference test suite integration
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add complete zstd implementation in ~3,000 lines of pure OCaml:
- Full decompression: Raw, RLE, and Compressed blocks
- FSE (Finite State Entropy) decoding with predefined/custom tables
- Huffman 1-stream and 4-stream decoding
- Sequence decoding with repeat offset handling
- xxHash-64 checksum computation
- Dictionary support for decompression
- Basic compression with raw block output
- Roundtrip compress/decompress working
Source files:
- constants.ml: Magic numbers, FSE tables, sequence baselines
- bit_reader.ml: Forward/backward bitstream reading
- bit_writer.ml: Forward/backward bitstream writing
- fse.ml: FSE encode/decode
- huffman.ml: Huffman encode/decode
- xxhash.ml: xxHash-64 checksums
- zstd_decode.ml: Frame/block decompression
- zstd_encode.ml: Frame/block compression
- zstd.ml/mli: Public API
All 9 tests pass including golden decompression tests from the
official zstd test suite.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Summary:
Some old zstd versions (notably v0.6.x) have a bug in fileio.c where header includes check for `ZSTD_LEGACY_SUPPORT==1` but code usage checks for `ZSTD_LEGACY_SUPPORT>=1`. Using value 5 causes compilation failure because headers aren't included but the code tries to use legacy functions.
Changing to `ZSTD_LEGACY_SUPPORT=1` for old version builds fixes the compilation while still enabling legacy format support.
Test Plan:
Run `make versionsTest` or `python3 tests/test-zstd-versions.py` to verify all old versions compile and cross-version decompression works correctly.
This is a bug in the streaming implementation of the v0.5 decoder.
The bug has always been there.
It requires an uncommon block configuration, which wasn't tested at the time.
v0.5 is deprecated now,
latest version to produce such format is v0.5.1 from February 2016.
It was superceded in April 2016.
So it's both short lived and very old.
Another PR will remove support of this format,
but it will still be possible to explicitely request this support on demand,
so better fix the issue.
Summary:
The version compatibility test needs to decode legacy frames (v0.5.x - v0.7.x) to verify cross-version interoperability. Since legacy support is now disabled by default (v1.6.0), head must be built with ZSTD_LEGACY_SUPPORT=5 for this test.
Test Plan:
Run `python3 tests/test-zstd-versions.py` to verify cross-version compatibility testing works correctly.
Summary:
Completes the transition to disabled legacy support by default across all build systems. This follows up on the previous Makefile and CMake changes to ensure consistent default behavior regardless of the build system used.
Updated build configurations: Meson, tests/Makefile, Visual Studio 2008/2010 projects, and BUCK.
Test Plan:
Verified changes compile correctly via `make lib-release`. Build system configurations have been updated consistently across all platforms.
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)
---
updated-dependencies:
- dependency-name: actions/cache
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-version: 6.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Bumps [msys2/setup-msys2](https://github.com/msys2/setup-msys2) from 2.29.0 to 2.30.0.
- [Release notes](https://github.com/msys2/setup-msys2/releases)
- [Changelog](https://github.com/msys2/setup-msys2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/msys2/setup-msys2/compare/fb197b72ce45fb24f17bf3f807a388985654d1f2...4f806de0a5a7294ffabaff804b38a9b435a73bda)
---
updated-dependencies:
- dependency-name: msys2/setup-msys2
dependency-version: 2.30.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/dded0888837ed1f317902acf8a20df0ad188d165...f2beeb24e141e01a676f977032f5a29d81c9e27e)
---
updated-dependencies:
- dependency-name: actions/setup-java
dependency-version: 5.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v6...v6.0.1)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.1 to 4.31.2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/f1f6e5f6af878fb37288ce1c627459e94dbf7d01...0499de31b99561a6d14a36a5f662c2a54f91beee)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-version: 4.31.2
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>