v1.7.0
Major release featuring a libmagic replacement and six new processors.
What's new
New processors
- CAB (Microsoft Cabinet): Added
CabProcessorto optimize MSZIP blocks inside legacy Microsoft.cabfiles. - GZip: Moved
.gzfile processing to newGzProcessor. - LZ4: Added
Lz4Processorto support LZ4 streams. - Lua: Added
LuaProcessorto optimize Lua bytecode by stripping (thanks Leanify). - STL: Added
StlProcessorto optimize 3D printing STL files. - MIME: Added
MimeProcessorto parse multipart messages (like.eml), extracting Base64 attachments, optimizing them, and re-encoding them.
Bye bye libmagic
- Replaced
libmagicwithqadmimes: libmagic was too heavy of a dependency; to make sure it worked properly, a lot of CMake boilerplate was needed, and the magic database was embedded in the binary and decompressed on first boot, to make sure it was always present. Chisel now uses a lighter replacement, qadmimes, which currently has around 700 rules built into the binary directly.
Architectural changes & deprecations
- The
parallelprocessing mode has been deprecated. Kind of pointless tbh - Dropped support for
RARextraction. It was never compatible, it just was erroneously marked as such.
General improvements
- Fixed some memory leaks in the ApeProcessor, default-initialized several variables, packed internal structs, and improved JPEG error handling to prevent crashes on corrupt payloads.
- Cleaned up the
raw_equalinterface across the board. Removed redundant overrides for many processors, relying instead on the baseget_raw_checksummatching. Added a robust semantic equivalence check for the JSON processor. - The
FileLogSinknow always explicitly flushes at the end of operations, so of a file causes a hard crash, the log is guaranteed to be written to disk before the process dies. - Added various CMake options to avoid compiling unnecessary components, so builds are now a bit faster.
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.