Big housekeeping release
What's new
Critical fix
- Fixed iOS's xcframework builds silently missing libtiff symbols because of a change in libtiff's CMakeLists
Processor correctness audit
Fixed a lot of bugs and edge cases
- WebP: lossless encoding was sometimes lossy; now truly lossless, including animated WebP
- TIFF: fixed corruption of 16/32 bit, floating-point, CMYK, and palette images
- PE (EXE/DLL/OCX/SCR/CPL): the optimizer now consistently reduces file sizes
- Lua bytecode: fixed crashes on many compiled scripts
- STL: fixed malformed files silently producing wrong 3D geometry
- ICO: fixed icons with incorrect height failing to load or render incorrectly
- MNG/JNG, PCX/DCX, PNM, JPEG 2000, TGA, BMP, GIF: fixed various data losses, wrong colors, and metadata loseses bugs
- PDF, OOXML/OpenDocument, Archive, WOFF/WOFF2: fixed corruption and metadata handling bugs
- SQLite, JSON, vCard, RDB: fixed data loss and precision bugs
- MP3, Ogg, JPEG XL, APE/Musepack/TTA, WavPack: fixed audio corruption, crashes, and integrity-check gaps. WavPack cover art is now optimized instead of just copied through
- Kanzi, Cab, Brotli, Lz4, Zstd, Bzip2, Lzma/XZ, Gzip, SWF: fixed missing integrity checks, and truncation bugs on multi-stream files
- JPEG, PNG, XML/SVG/HTML, Matroska, ICNS: assorted metadata and minor corruption fixes
Reliability
- Fixed a data race on internal result arrays across worker threads
- Fixed
--output-dirsilently discarding Phase 2's recompression for "mixed" processors (FLAC, APE, Ogg, MKV, XML) that both recompress and extract embedded content - Fixed a rare hang when cancelling a run while files were still queued
- Hardened archive extraction against some edge case, and fixed orphaned temp files left behind when optimization failed partway
CLI
- Redesigned console output during processing
Dependencies
- Updated
mseedoutwhich is now faster, lower memory usage, and no longer crashes on large files - Updated
mp3packercppto provide mp3 checking via its minimp3 - Updated
libmkclean,zopflito fix some undefined behaviours
macOS: removing the Gatekeeper quarantine
When downloading binaries from the internet, macOS automatically marks them as “quarantined”.
If you try to run chsl and macOS shows a warning like:
“chsl cannot be opened because it is from an unidentified developer”
…you need to remove the quarantine attribute manually.
How to remove the quarantine flag
Open Terminal in the folder where you downloaded chsl and run:
xattr -d com.apple.quarantine ./chslTo verify that the quarantine flag is gone:
xattr ./chslIf com.apple.quarantine no longer appears, you're good to go.
Now you can run:
./chsl ...Note
This issue does not occur if you compile chsl yourself.