Critical Bug Fixes
This hotfix release addresses three critical bugs that prevented reading most real-world MATLAB v5 files.
Bug Fixes
1. Compressed Data Support (Critical)
- Issue: Files with zlib-compressed data (miCOMPRESSED) returned 0 variables
- Impact: Most real-world MATLAB files use compression - they were unreadable
- Fix: Implemented full zlib decompression with compression bomb protection
2. Endianness Interpretation (Critical)
- Issue: 'MI'/'IM' endian indicators were interpreted incorrectly (swapped)
- Impact: Wrong byte order caused garbage data or parse failures
- Fix: Corrected to match MATLAB specification ('IM' = little-endian, 'MI' = big-endian)
3. Small Format Tag Data (Critical)
- Issue: Small format tags (1-4 bytes) lost their embedded data
- Impact: Variable names and small arrays were corrupted
- Fix: Added proper handling for data embedded in tag bytes
Verification
- All 298+ existing tests pass
- Tested with real scientific data files (12 and 34 variables)
- CI passed on all platforms (Ubuntu, macOS, Windows)
Upgrade
go get github.com/scigolib/[email protected]Full Changelog: v0.3.0...v0.3.1