Highlights
C++23 Migration
The project has been fully migrated to the C++23 standard, allowing for more expressive and efficient code throughout the library and CLI.
Architectural Simplification
We have consolidated the FileNode and DataNode structures into a single, unified Node class. This simplification reduces memory overhead and improves the maintainability of the virtual tree structure.
Performance Optimizations
- Incremental Path Hashing: Implemented a new path hashing strategy that computes hashes incrementally during tree construction. This significantly reduces the overhead when mounting archives with a massive number of files.
- Scalability: The system has been validated against high-density archives containing over 20 million nodes.
Feature Changes
Permission Handling
- Option Renaming: The permissions-related options have been renamed to
-o enforce_permissionsfor better clarity. - Mask Application: The
fmaskanddmaskoptions are now applied even whendefault_permissionsis enabled, providing more consistent behavior across different mounting scenarios.
Platform Support
- macOS & Homebrew: Improved compatibility for macOS builds, specifically around Homebrew-installed dependencies like
icu4candboost. The build system now handles "keg-only" libraries more robustly. - ChromeOS: Added support for specialized ICU initialization, ensuring better integration with the ChromeOS environment.
Internal Improvements
- Build System Modernization: Consolidated multiple Makefiles and flattened the test directory structure for a cleaner build process.
- Enhanced Testing: Reworked the integration test suite and expanded unit test coverage. Added support for generating code coverage reports directly from the Makefile.
- Technical Accuracy: Renamed
ScopedFiletoFileDescriptorto better reflect its role in resource management.
Installation
For building and installation instructions, please refer to INSTALL.md.
Full Changelog: v1.12...v1.14