Skip to content

Add missing filesystem mutation primitives to std::sys #382

Description

@LunaStev

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 Port the Linux standard-library syscall layer to RV64 #370.
  • Platform-specific behavior is documented instead of silently normalized.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cross-platformIssues related to making Wave work seamlessly across multiple operating systems.enhancementA request for a new feature or improvement.help wantedThe issue requires extra attention or help from others.needs testingIssues that require additional testing or verification.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions