Add missing filesystem mutation primitives to std::sys
- Dominant language
- Rust
- Stars
- 53
- Forks
- 16
- Avg merge
- 4h 22m
- Merged PRs (30d)
- 46
Description
Tracked by #375 and represented in #378.
## Scope
Extend target-specific filesystem providers and the common std::sys::fs facade with coherent contracts for:
- rename.
- chmod and fchmod.
- truncate and ftruncate.
- link and symlink.
- readlink.
- directory creation and removal parity where names differ by platform.
Keep these as raw operating-system primitives. User-facing naming and ownership decisions belong to #380.
## Completion criteria
- [ ] Linux and macOS providers expose matching portable operations where semantics align.
- [ ] Constants, integer widths, pointer types, and return conventions are source-auditable.
- [ ] Hosted tests cover success and representative failure paths.
- [ ] RV64 Linux integration follows the architecture split in #370.
- [ ] Platform-specific behavior is documented instead of silently normalized.
Contributor guide
Research direction
Start at the common std::sys::fs facade and the target-specific filesystem providers, then read the contracts tracked by #375 and represented in #378. Check the hosted tests for success and representative failure paths, and review the architecture split in #370 for RV64 Linux. Done means matching Linux and macOS primitives, auditable types and return conventions, documented platform-specific behavior, and passing integration coverage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- operating-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100