Releases: antiguru/rust-lgalloc
Releases · antiguru/rust-lgalloc
v0.7.0
Breaking changes
- Replace file-backed memory mappings with
MAP_ANONYMOUS+MADV_HUGEPAGE.
Allocations now use anonymous mappings with transparent huge page hints instead
of memory-mapped temporary files. (#67) - Remove
LgAlloc::path,LgAlloc::with_path(), andLgAlloc::file_growth_dampener().
UseLgAlloc::growth_dampener()instead. - Remove
FileStats,MapStats, andlgalloc_stats_with_mapping().
lgalloc_stats()is the only stats function. - Remove
LgAllocStats::fileandLgAllocStats::mapfields. - Raise minimum size class from 2^10 (1 KiB) to 2^21 (2 MiB), matching one huge page.
Handle::prefetchnow takes a typed element range (prefetch::<T>(Range<usize>))
and returnsPrefetchErrorinstead ofAllocError.
Added
Handle::prefetch::<T>(Range<usize>)for typed prefetch hints viaMADV_WILLNEED.PrefetchErrortype for prefetch-specific errors.munmaponGlobalStealer::dropto return virtual address space on shutdown.- Graceful handling of
MADV_HUGEPAGEfailure (one-time warning instead of error). - Allocation benchmarks comparing lgalloc, system allocator, and raw mmap.
Fixed
- Use
MADV_FREE(Linux) /MADV_DONTNEED(other) for background clear instead of
MADV_REMOVE, which fails on anonymous memory.
Removed
numa_maps,memmap2,tempfile,serial_testdependencies.
Other
- Move tests to integration test files.
- Rewrite README with structured sections.
- Update release-plz workflow to patch README version automatically (#68).
v0.6.0
v0.5.0
v0.4.0
v0.3.1
Other
- Try harder to reclaim disk space
- Only run tests on pull request and pushes to main
- Add API to disable lgalloc globally
v0.3.0
Other
- Remove memory based on byte size instead of count
v0.2.2
Other
- Fix the background scheduler to reschedule itself
v0.2.1
Other
- Extract numa_maps into separate crate
- Update documentation
v0.2.0
Other
- Use release-plz to update
- Remove Region API
- numa_maps parsing and reporting
- Add eager_return option to call MADV_DONTNEED on non-cached frees
- Remove bench, require less recent Rust
- Bump version
- Merge pull request #33 from antiguru/extend_size_classes
- Add more supported size classes
- Cleaner APIs
- Support zst
- Change public interface to directly allocate memory
- Bump version to 0.1.6
- Threads maintain a byte-size bounded cache
- Merge pull request #24 from antiguru/bump_version
- Do not populate when mapping
- Merge pull request #20 from antiguru/bgthread_fix
- Merge pull request #22 from antiguru/all_targets
- Re-use buffer in tests
- Documentation, bump version, remove unused print_stats
- Store areas in ManuallyDrop
- Expose less access to the region-allocated vector
- Hide the internal state of Region::MMap
- Address comments
- Introduce benchmark
- Clearer implementation around ftruncate
- Remove stale comment
- Make tests faster
- Reuse background worker on configuration update
- Remove diagnostics function
- Remove Region::MIN_MMAP_SIZE
- Update readme
- Relax version requirements
- Bump version
- Fix MADV_DONTNEED_STRATEGY
- Use MADV_REMOVE on Linux, MADV_DONTNEED otherwise
- Allow publishing crate
- Merge pull request #9 from antiguru/deps
- Rename crate to lgalloc
- Only require Rust 1.70, chosen to be compatible with other projects
- Make LgAllocStats::size_class pub
- Report stats
- Merge pull request #4 from antiguru/enabled_flag
- More focused inline annotations
- cargo format
- Introduce configurations, size class abstraction.
- More usability improvements.
- Split global region into resident and non-resident
- Initial import