# Beta.2 Runtime Resource Foundation Scope This file tracks the first post-`1.0.0-beta.1` runtime/resource foundation slice. It is main-branch work intended for a future `1.0.0-beta.2` bundle. ## Implemented In This Slice - `std.fs.open_text_read_result : (string) -> (result i32 i32)` opens a text file for read-only resource-handle flow. - `std.fs.read_open_text_result : (i32) -> (result string i32)` reads remaining text from an open read handle. - `std.fs.close_result : (i32) -> (result i32 i32)` closes an open resource handle. - `std.fs.exists : (string) -> bool`, `std.fs.is_file : (string) -> bool`, and `std.fs.is_dir : (string) -> bool` expose narrow filesystem status checks. - `std.fs.remove_file_result : (string) -> (result i32 i32)` removes one file, and `std.fs.create_dir_result : (string) -> (result i32 i32)` creates one directory. Both return `ok 0` on success or `err 1` on ordinary host failure. - `lib/std/fs.slo` exposes matching explicit source facade helpers: `open_text_read_result`, `read_open_text_result`, `close_result`, `read_text_via_handle_result`, `close_ok`, `exists`, `is_file`, `is_dir`, `remove_file_result`, `create_dir_result`, `remove_file_ok`, and `create_dir_ok`. - Glagol lowers the new calls to private runtime symbols and keeps the existing concrete `result` families. - The test runner and hosted C runtime both enforce the same basic policy: invalid, missing, closed, or exhausted ordinary host failures return `err 1` instead of panicking. ## Resource Policy - Resource handles are positive `i32` tokens owned by the current process. - Handles are opaque Slovo values, not host file descriptors and not stable ABI values. - A handle is valid only until `std.fs.close_result` succeeds. - Reading a closed or invalid handle returns `err 1`. - Closing a closed or invalid handle returns `err 1`. - Resource cleanup is explicit in this beta slice; no finalizer, destructor, ownership transfer, or affine typing rule is claimed. ## Explicitly Out Of Scope - no writable file handles - no binary IO - no directory handles - no directory enumeration or recursive filesystem operations - no process handles - no sockets or networking - no async/event-loop resource model - no platform-specific error codes - no rich host-error ADT - no stable handle ABI/layout guarantee ## Release Gate - focused resource/host tests must pass - focused `std.fs` source facade tests must pass - promotion-gate std facade alignment must pass - full release gate must pass before tagging `1.0.0-beta.2`