Skip to content

Version 1.14

Latest

Choose a tag to compare

@fdegros fdegros released this 31 May 12:33
54a1624

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_permissions for better clarity.
  • Mask Application: The fmask and dmask options are now applied even when default_permissions is enabled, providing more consistent behavior across different mounting scenarios.

Platform Support

  • macOS & Homebrew: Improved compatibility for macOS builds, specifically around Homebrew-installed dependencies like icu4c and boost. 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 ScopedFile to FileDescriptor to better reflect its role in resource management.

Installation

For building and installation instructions, please refer to INSTALL.md.

Full Changelog: v1.12...v1.14