34 KiB
Slovo Standard Runtime Catalog
Status: standard-runtime catalog through exp-101 over the released exp-14
conformance baseline. The latest Slovo experimental alpha release is
exp-101, Standard Vec String Option And Transform Helpers Alpha. exp-29, exp-30, exp-32,
exp-33, and exp-35 through exp-93 add no compiler-known std.* names;
exp-31 adds exactly one checked numeric conversion name; exp-34 adds exactly
one strict bool parse name; exp-94 adds exactly four concrete (vec i64)
vector names; exp-95 through exp-98 add no compiler-known std.* names; and
exp-99 adds exactly four concrete (vec string) vector names. exp-100 and
exp-101 add no new compiler-known std.* names.
This document catalogs promoted compiler-known std.* operations only. It
does not add source syntax, runtime APIs, standard library functions, manifest
schema versions, ABI/layout promises, runtime headers/libraries, or beta
maturity.
1.0.0-beta.2 adds the first runtime resource foundation calls for read-only
text file handles and narrow filesystem status/mutation operations. These calls
use the existing concrete result families where host failures need to be
observable. Handles are positive opaque i32 process-local tokens, not stable
file descriptors or ABI values.
The 1.0.0-beta.6 networking foundation release adds a narrow loopback TCP
runtime family behind the std.net source facade. These names are blocking,
result-returning, and loopback-only; they do not define DNS, TLS, UDP, async
IO, non-loopback binding, HTTP frameworks, stable socket ABI/layout, or rich
platform error values.
The exp-era catalog is closed to names promoted through exp-101. exp-29,
exp-30, exp-32, exp-33, and exp-35 through exp-93 add no new standard-runtime
operation names. exp-32/exp-39/exp-56/exp-57 std/math.slo helpers,
exp-33/exp-35 std/result.slo helpers, exp-36 std/option.slo helpers,
exp-37 std/time.slo wrappers, exp-38 std/random.slo, std/env.slo, and
std/fs.slo wrappers, exp-48 std/string.slo and std/num.slo facades,
exp-49 std/io.slo facades, exp-52 std/process.slo facades, and exp-53/55
std/cli.slo facades are source-authored functions, not compiler-known
std.* operations. exp-44 through exp-55 add explicit source-search and
discovery gates for existing source modules; exp-56 through exp-93 add
language/source-helper slices. exp-94 adds std.vec.i64.empty,
std.vec.i64.append, std.vec.i64.len, and std.vec.i64.index; exp-95
broadens option language/source-helper support only and adds no new catalog
entries; exp-99 adds std.vec.string.empty, std.vec.string.append,
std.vec.string.len, and std.vec.string.index; exp-100 broadens option
language/source-helper support only and adds no new catalog entries; exp-101
broadens vec-string source-helper support only and adds no new catalog
entries.
Legacy compatibility
aliases such as print_i32, print_string, print_bool, and string_len
are not std.* names and are therefore excluded from this catalog. Legacy
unqualified result helper names remain compatibility syntax; the preferred
source-level result helper names are the std.result.* names cataloged below.
Catalog
| Operation | Signature | Release | Fixture | Behavior/trap/result note | Manifest note | Deferrals |
|---|---|---|---|---|---|---|
std.io.print_i32 |
(i32) -> unit |
v1.5 | examples/supported/standard-runtime.slo |
Prints the i32 using the legacy stdout behavior and returns builtin unit. |
Uses existing standard-runtime usage recording if present; no schema change. | Unit/composite printing, formatting controls, stable helper ABI/layout. |
std.io.print_string |
(string) -> unit |
v1.5 | examples/supported/standard-runtime.slo |
Prints the string using the legacy stdout behavior and returns builtin unit. |
Uses existing standard-runtime usage recording if present; no schema change. | String formatting controls, Unicode policy beyond existing string bytes, stable helper ABI/layout. |
std.io.print_bool |
(bool) -> unit |
v1.5 | examples/supported/standard-runtime.slo |
Prints true or false using the legacy stdout behavior and returns builtin unit. |
Uses existing standard-runtime usage recording if present; no schema change. | Broader value printing and formatting controls. |
std.io.print_f64 |
(f64) -> unit |
exp-20 | examples/supported/f64-numeric-primitive.slo |
Prints one implementation-owned finite f64 textual representation plus a newline and returns builtin unit. |
Uses existing standard-runtime usage recording if present; no schema change. | Formatting controls, stable printed digits, NaN/infinity policy, stable helper ABI/layout. |
std.io.print_i64 |
(i64) -> unit |
exp-21 | examples/supported/i64-numeric-primitive.slo |
Prints one signed decimal i64 textual representation plus a newline and returns builtin unit. |
Uses existing standard-runtime usage recording if present; no schema change. | Formatting controls, unsigned/narrower integer printing, stable helper ABI/layout. |
std.num.i32_to_i64 |
(i32) -> i64 |
exp-22 | examples/supported/numeric-widening-conversions.slo |
Explicitly widens a signed i32 value to the corresponding signed i64 value. |
Uses existing standard-runtime usage recording if present; no schema change. | Implicit promotion, narrowing conversions beyond exp-23 checked i64-to-i32 result, cast syntax, stable helper ABI/layout. |
std.num.i32_to_f64 |
(i32) -> f64 |
exp-22 | examples/supported/numeric-widening-conversions.slo |
Explicitly converts a signed i32 value to a finite f64 value representing that integer. |
Uses existing standard-runtime usage recording if present; no schema change. | Implicit promotion, rounding-mode controls, generic casts, stable helper ABI/layout. |
std.num.i64_to_f64 |
(i64) -> f64 |
exp-22 | examples/supported/numeric-widening-conversions.slo |
Explicitly converts a signed i64 value to a finite f64; exact preservation is not promised for every i64. |
Uses existing standard-runtime usage recording if present; no schema change. | Implicit promotion, checked lossy f64 conversion APIs, rounding-mode controls, stable helper ABI/layout. |
std.num.i64_to_i32_result |
(i64) -> (result i32 i32) |
exp-23 | examples/supported/checked-i64-to-i32-conversion.slo |
Returns ok value when the signed i64 input is in the signed i32 range, otherwise returns err 1; range failure does not trap. |
Uses existing standard-runtime usage recording if present; no schema change. | Other narrowing conversions beyond exp-27 checked f64-to-i32 result, cast syntax, std.num.cast, checked cast generics, stable helper ABI/layout. |
std.num.i32_to_string |
(i32) -> string |
exp-24 | examples/supported/integer-to-string.slo |
Returns the decimal signed ASCII string for the input i32; negative values include -, non-negative values have no leading +. |
Uses existing standard-runtime usage recording if present; no schema change. | f64 formatting beyond exp-26 finite decimal text, parse APIs beyond the released i32/i64/f64/bool result calls, locale/base/radix/grouping/padding controls, generic format/display, implicit conversion, stable helper ABI/layout/ownership. |
std.num.i64_to_string |
(i64) -> string |
exp-24 | examples/supported/integer-to-string.slo |
Returns the decimal signed ASCII string for the input i64; negative values include -, non-negative values have no leading +. |
Uses existing standard-runtime usage recording if present; no schema change. | f64 formatting beyond exp-26 finite decimal text, parse APIs beyond the released i32/i64/f64/bool result calls, locale/base/radix/grouping/padding controls, generic format/display, implicit conversion, stable helper ABI/layout/ownership. |
std.num.f64_to_string |
(f64) -> string |
exp-26 | examples/supported/f64-to-string.slo |
Returns finite decimal ASCII string text for promoted finite f64 inputs; fixture values are 0.0, 3.5, -1.5, and 10.0. |
Uses existing standard-runtime usage recording if present; no schema change. | f32, f64 parse, generic parse/format/display/interpolation, locale/base/radix/grouping/padding/precision controls, stable NaN/infinity text, implicit conversion, stable helper ABI/layout/ownership. |
std.num.f64_to_i32_result |
(f64) -> (result i32 i32) |
exp-27 | examples/supported/f64-to-i32-result.slo |
Returns ok value only when the f64 input is finite, exactly integral, and in the signed i32 range; returns err 1 for non-finite, fractional, or out-of-range input without trapping. |
Uses existing standard-runtime usage recording if present; no schema change. | Unchecked f64-to-i32, casts/cast syntax, generic cast_checked, f32, unsigned/narrower integer families, f64 parse, mixed numeric arithmetic, numeric containers, stable helper ABI/layout/ownership. |
std.num.f64_to_i64_result |
(f64) -> (result i64 i32) |
exp-31 | examples/supported/f64-to-i64-result.slo |
Returns ok value only when the f64 input is finite, exactly integral, and in the signed i64 range; returns err 1 for non-finite, fractional, or out-of-range input without trapping. Conservative fixture values avoid pinning every f64/i64 edge. |
Uses existing standard-runtime usage recording if present; no schema change. | Unchecked casts, unchecked f64-to-i64, cast syntax, generic cast_checked, f32, unsigned/narrower integer families, mixed numeric arithmetic, broad math, stable helper ABI/layout/ownership. |
std.string.len |
(string) -> i32 |
v1.5 | examples/supported/standard-runtime.slo |
Returns the existing decoded byte-count length used by legacy string_len. |
Uses existing standard-runtime usage recording if present; no schema change. | Unicode scalar/grapheme length, slicing, indexing, stable string ABI/layout. |
std.string.concat |
(string, string) -> string |
exp-1 | examples/supported/owned-string-concat.slo |
Returns an immutable runtime-owned string; allocation failure traps as slovo runtime error: string allocation failed. |
Uses existing standard-runtime usage recording if present; no concat-specific schema field. | Mutable strings, string containers, user-visible allocation/deallocation, stable string ABI/layout. |
std.vec.i32.empty |
() -> (vec i32) |
exp-2 | examples/supported/vec-i32.slo |
Returns an empty immutable runtime-owned (vec i32). |
Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond i32, i64, and string, vector mutation, stable vector ABI/layout. |
std.vec.i32.append |
((vec i32), i32) -> (vec i32) |
exp-2 | examples/supported/vec-i32.slo |
Returns a new immutable vector containing the input elements and appended value; allocation failure traps with the exp-2 vector allocation message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Mutation, push, capacity APIs, user deallocation, stable vector ABI/layout. |
std.vec.i32.len |
((vec i32)) -> i32 |
exp-2 | examples/supported/vec-i32.slo |
Returns vector length as i32. |
Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic length APIs and stable vector ABI/layout. |
std.vec.i32.index |
((vec i32), i32) -> i32 |
exp-2 | examples/supported/vec-i32.slo |
Returns the indexed value; out-of-bounds access traps with the exp-2 vector bounds message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Slices/views, iterators, mutation, stable vector ABI/layout. |
std.vec.i64.empty |
() -> (vec i64) |
exp-94 | examples/supported/vec-i64.slo |
Returns an empty immutable runtime-owned (vec i64). |
Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond i32, i64, and string, vector mutation, stable vector ABI/layout. |
std.vec.i64.append |
((vec i64), i64) -> (vec i64) |
exp-94 | examples/supported/vec-i64.slo |
Returns a new immutable vector containing the input elements and appended value; allocation failure traps with the existing vector allocation message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Mutation, push, capacity APIs, user deallocation, stable vector ABI/layout. |
std.vec.i64.len |
((vec i64)) -> i32 |
exp-94 | examples/supported/vec-i64.slo |
Returns vector length as i32. |
Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic length APIs and stable vector ABI/layout. |
std.vec.i64.index |
((vec i64), i32) -> i64 |
exp-94 | examples/supported/vec-i64.slo |
Returns the indexed value; out-of-bounds access traps with the existing vector bounds message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Slices/views, iterators, mutation, stable vector ABI/layout. |
std.vec.string.empty |
() -> (vec string) |
exp-99 | examples/supported/vec-string.slo |
Returns an empty immutable runtime-owned (vec string). |
Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond i32, i64, and string, vector mutation, stable vector ABI/layout. |
std.vec.string.append |
((vec string), string) -> (vec string) |
exp-99 | examples/supported/vec-string.slo |
Returns a new immutable vector containing the input elements and appended string; allocation failure traps with the existing vector allocation message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Mutation, push, capacity APIs, user deallocation, stable vector ABI/layout. |
std.vec.string.len |
((vec string)) -> i32 |
exp-99 | examples/supported/vec-string.slo |
Returns vector length as i32. |
Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic length APIs and stable vector ABI/layout. |
std.vec.string.index |
((vec string), i32) -> string |
exp-99 | examples/supported/vec-string.slo |
Returns the indexed value; out-of-bounds access traps with the existing vector bounds message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Slices/views, iterators, mutation, stable vector ABI/layout. |
std.io.eprint |
(string) -> unit |
exp-3 | examples/supported/host-io.slo |
Writes the string to stderr without appending a newline and returns builtin unit. |
Uses existing standard-runtime usage recording if present; no host-IO schema bump. | Formatting controls, terminal APIs, async IO, stable helper ABI/layout. |
std.process.argc |
() -> i32 |
exp-3 | examples/supported/host-io.slo |
Returns process argument count as i32. |
Uses existing standard-runtime usage recording if present; no process-specific schema field. | Rich process APIs, argv encoding guarantees, stable helper ABI/layout. |
std.process.arg |
(i32) -> string |
exp-3 | examples/supported/host-io.slo |
Returns zero-based process argument; out-of-range access traps as slovo runtime error: process argument index out of bounds. |
Uses existing standard-runtime usage recording if present; no process-specific schema field. | Result-based errors are separate exp-10 names; rich process APIs remain deferred. |
std.env.get |
(string) -> string |
exp-3 | examples/supported/host-io.slo |
Returns environment value, or the empty string when missing. | Uses existing standard-runtime usage recording if present; no env-specific schema field. | Result-based errors are separate exp-10 names; env mutation and enumeration remain deferred. |
std.fs.read_text |
(string) -> string |
exp-3 | examples/supported/host-io.slo |
Returns file text; host read failure traps with the exp-3 file read message. | Uses existing standard-runtime usage recording if present; no fs-specific schema field. | Result-based errors are separate exp-10 names; binary, directory, streaming, async APIs remain deferred. |
std.fs.write_text |
(string, string) -> i32 |
exp-3 | examples/supported/host-io.slo |
Writes text, returning 0 on success and 1 on host failure. |
Uses existing standard-runtime usage recording if present; no fs-specific schema field. | Result-based errors are separate exp-10 names; binary, directory, streaming, async APIs remain deferred. |
std.time.monotonic_ms |
() -> i32 |
exp-8 | examples/supported/time-sleep.slo |
Returns non-negative host monotonic elapsed milliseconds with implementation-owned epoch; host unavailability may trap as slovo runtime error: monotonic time unavailable. |
Uses existing standard-runtime usage recording if present; no time-specific schema field. | Wall-clock/calendar/timezone APIs, high-resolution timers, scheduling guarantees, stable clock ABI/layout. |
std.time.sleep_ms |
(i32) -> unit |
exp-8 | examples/supported/time-sleep.slo |
Sleeps for a non-negative millisecond duration; 0 is valid. Negative runtime values trap as slovo runtime error: sleep_ms negative duration; host sleep failure may trap as slovo runtime error: sleep failed. |
Uses existing standard-runtime usage recording if present; no time-specific schema field. | Positive-duration conformance timing assertions, async timers, cancellation, scheduling guarantees. |
std.process.arg_result |
(i32) -> (result string i32) |
exp-10 | examples/supported/host-io-result.slo |
Returns ok with argument text when in range, or err 1 when out of range. |
Uses existing standard-runtime usage recording if present; no exp-10-specific schema field. | Rich host error ADTs, platform codes, process API breadth, stable helper ABI/layout. |
std.env.get_result |
(string) -> (result string i32) |
exp-10 | examples/supported/host-io-result.slo |
Returns ok with environment value when present, or err 1 when missing. |
Uses existing standard-runtime usage recording if present; no exp-10-specific schema field. | Rich host error ADTs, env mutation/enumeration, platform codes. |
std.fs.read_text_result |
(string) -> (result string i32) |
exp-10 | examples/supported/host-io-result.slo |
Returns ok with file contents on success, or err 1 on ordinary host read failure. |
Uses existing standard-runtime usage recording if present; no exp-10-specific schema field. | Binary, directory, streaming, async APIs, rich host error ADTs. |
std.fs.write_text_result |
(string, string) -> (result i32 i32) |
exp-10 | examples/supported/host-io-result.slo |
Returns ok 0 on success, or err 1 on ordinary host write failure. |
Uses existing standard-runtime usage recording if present; no exp-10-specific schema field. | Binary, directory, streaming, async APIs, rich host error ADTs. |
std.fs.exists |
(string) -> bool |
1.0.0-beta.2 |
examples/projects/std-layout-local-fs |
Returns true when host metadata lookup succeeds for the path, otherwise false. |
Uses existing standard-runtime usage recording if present; no schema change. | Rich host errors, symlink policy, permissions detail, stable platform metadata model. |
std.fs.is_file |
(string) -> bool |
1.0.0-beta.2 |
examples/projects/std-layout-local-fs |
Returns true when the path exists and host metadata classifies it as a regular file. |
Uses existing standard-runtime usage recording if present; no schema change. | Rich metadata, symlink policy, stable platform file-kind model. |
std.fs.is_dir |
(string) -> bool |
1.0.0-beta.2 |
examples/projects/std-layout-local-fs |
Returns true when the path exists and host metadata classifies it as a directory. |
Uses existing standard-runtime usage recording if present; no schema change. | Directory handles, enumeration, recursive traversal, symlink policy, stable platform file-kind model. |
std.fs.remove_file_result |
(string) -> (result i32 i32) |
1.0.0-beta.2 |
examples/projects/std-layout-local-fs |
Removes one file; success returns ok 0, while ordinary host failure returns err 1. |
Uses existing standard-runtime usage recording if present; no schema change. | Recursive removal, directory removal, rich host errors, platform-specific error codes. |
std.fs.create_dir_result |
(string) -> (result i32 i32) |
1.0.0-beta.2 |
examples/projects/std-layout-local-fs |
Creates one directory; success returns ok 0, while existing paths or ordinary host failure return err 1. |
Uses existing standard-runtime usage recording if present; no schema change. | Recursive creation, permissions/mode policy, directory handles, rich host errors, platform-specific error codes. |
std.fs.open_text_read_result |
(string) -> (result i32 i32) |
1.0.0-beta.2 |
examples/projects/std-layout-local-fs |
Opens a text file for read-only resource-handle flow; success returns ok handle where handle is a positive opaque process-local i32, and ordinary open or handle-table failure returns err 1. |
Uses existing standard-runtime usage recording if present; no schema change. | Writable handles, binary IO, directory handles, process handles, sockets, async IO, platform-specific error codes, stable handle ABI/layout. |
std.fs.read_open_text_result |
(i32) -> (result string i32) |
1.0.0-beta.2 |
examples/projects/std-layout-local-fs |
Reads remaining text from an open read handle; success returns ok text, while invalid, closed, or failed reads return err 1. |
Uses existing standard-runtime usage recording if present; no schema change. | Chunked reads, seek, buffering controls, binary IO, async IO, platform-specific error codes, stable handle ABI/layout. |
std.fs.close_result |
(i32) -> (result i32 i32) |
1.0.0-beta.2 |
examples/projects/std-layout-local-fs |
Closes an open resource handle; success returns ok 0, while invalid, closed, or failed close operations return err 1. |
Uses existing standard-runtime usage recording if present; no schema change. | Finalizers, destructors, affine ownership, automatic cleanup, stable handle ABI/layout. |
std.net.tcp_connect_loopback_result |
(i32) -> (result i32 i32) |
1.0.0-beta.6 |
examples/projects/std-layout-local-net |
Connects to a loopback TCP port; success returns ok handle where handle is a positive opaque process-local i32, and ordinary host failure returns err 1. |
Uses existing standard-runtime usage recording if present; no schema change. | DNS, TLS, UDP, non-loopback connect policy, async IO, timeouts, rich host errors, stable socket ABI/layout. |
std.net.tcp_listen_loopback_result |
(i32) -> (result i32 i32) |
1.0.0-beta.6 |
examples/projects/std-layout-local-net |
Opens a blocking loopback TCP listener; success returns ok handle, and ordinary bind/listen or handle-table failure returns err 1. |
Uses existing standard-runtime usage recording if present; no schema change. | Non-loopback binding, socket options, backlog policy beyond the implementation minimum, async IO, rich host errors, stable socket ABI/layout. |
std.net.tcp_bound_port_result |
(i32) -> (result i32 i32) |
1.0.0-beta.6 |
examples/projects/std-layout-local-net |
Returns the bound loopback TCP port for a listener handle as ok port; invalid handles or host lookup failure return err 1. |
Uses existing standard-runtime usage recording if present; no schema change. | Stable handle ABI/layout, address inspection, IPv6 policy, rich host errors. |
std.net.tcp_accept_result |
(i32) -> (result i32 i32) |
1.0.0-beta.6 |
examples/projects/std-layout-local-net |
Accepts one blocking connection from a listener handle; success returns ok handle, and invalid handles or host accept failure return err 1. |
Uses existing standard-runtime usage recording if present; no schema change. | Async accept, cancellation, readiness polling, peer address APIs, rich host errors, stable socket ABI/layout. |
std.net.tcp_read_all_result |
(i32) -> (result string i32) |
1.0.0-beta.6 |
examples/projects/std-layout-local-net |
Reads remaining text from a stream handle until EOF; success returns ok text, and invalid handles or host read failure return err 1. |
Uses existing standard-runtime usage recording if present; no schema change. | Chunked reads, binary IO, buffering policy, encodings, async IO, rich host errors, stable socket ABI/layout. |
std.net.tcp_write_text_result |
(i32, string) -> (result i32 i32) |
1.0.0-beta.6 |
examples/projects/std-layout-local-net |
Writes the complete text to a stream handle; success returns ok 0, and invalid handles or host write failure return err 1. |
Uses existing standard-runtime usage recording if present; no schema change. | Partial-write APIs, binary IO, buffering policy, async IO, rich host errors, stable socket ABI/layout. |
std.net.tcp_close_result |
(i32) -> (result i32 i32) |
1.0.0-beta.6 |
examples/projects/std-layout-local-net |
Closes a TCP stream or listener handle; success returns ok 0, while invalid, already closed, or failed close operations return err 1. |
Uses existing standard-runtime usage recording if present; no schema change. | Finalizers, destructors, affine ownership, automatic cleanup, stable socket ABI/layout. |
std.random.i32 |
() -> i32 |
exp-11 | examples/supported/random.slo |
Returns a non-negative implementation-owned random i32; unavailable randomness traps as slovo runtime error: random i32 unavailable. |
Uses existing standard-runtime usage recording if present; no randomness-specific schema field. | Seed APIs, crypto/security promises, ranges, bytes, floats, UUIDs, stable RNG ABI/layout. |
std.io.read_stdin_result |
() -> (result string i32) |
exp-12 | examples/supported/stdin-result.slo |
Reads remaining stdin as text; success returns ok text, ordinary EOF with no bytes returns ok "", ordinary host/input failure returns err 1. |
Uses existing standard-runtime usage recording if present; no stdin-specific schema field. | Trap stdin, line APIs, prompts, terminal mode, binary/streaming/async stdin. |
std.string.parse_i32_result |
(string) -> (result i32 i32) |
exp-13 | examples/supported/string-parse-i32-result.slo |
Parses an entire ASCII decimal signed i32; success returns ok value, ordinary parse failure returns err 1. |
Uses existing standard-runtime usage recording if present; no parse-specific schema field. | Trap parse, floats/bools/bytes, trimming, locale/radix/underscore/plus parsing, rich parse errors, Unicode digits, slicing/indexing. |
std.string.parse_i64_result |
(string) -> (result i64 i32) |
exp-25 | examples/supported/string-parse-i64-result.slo |
Parses an entire non-empty ASCII decimal signed i64 with optional leading -; success returns ok value, parse failure or out-of-range returns err 1 without trapping. |
Uses existing standard-runtime usage recording if present; no parse-specific schema field. | Generic parse, leading plus, trimming, locale/radix/base-prefix/underscore parsing, rich parse errors, Unicode digits, stable helper ABI/layout/ownership. |
std.string.parse_f64_result |
(string) -> (result f64 i32) |
exp-28 | examples/supported/string-parse-f64-result.slo |
Parses complete finite ASCII decimal f64 text in the narrow -?digits.digits shape; success returns ok value, ordinary parse failure, non-finite text, unsupported leading/trailing characters, or out-of-domain input returns err 1 without trapping. |
Uses existing standard-runtime usage recording if present; no parse-specific schema field. | Generic parse, trap-based f64 parse, leading +, exponent notation, .5, 5., bool parse beyond exp-34 exact lowercase true/false, string/bytes parse, locale parsing, Unicode digits, underscores, rich parse errors, stable helper ABI/layout/ownership, result genericity, f64 containers. |
std.string.parse_bool_result |
(string) -> (result bool i32) |
exp-34 | examples/supported/string-parse-bool-result.slo |
Parses exactly complete ASCII lowercase true or false; success returns ok true or ok false, and ordinary parse failure returns err 1 without trapping. |
Uses existing standard-runtime usage recording if present; no parse-specific schema field. | Generic parse, trap-based bool parse, bool parsing beyond exact lowercase true/false, string/bytes parse, trimming, case-insensitive parsing, locale/Unicode parsing, numeric boolean parsing, rich parse errors, stable helper ABI/layout/ownership. |
std.result.is_ok |
((result i32 i32)) -> bool; ((result i64 i32)) -> bool; ((result string i32)) -> bool; ((result f64 i32)) -> bool; ((result bool i32)) -> bool |
exp-15, extended exp-25, exp-28, and exp-34 | examples/supported/result-helpers.slo; examples/supported/string-parse-i64-result.slo; examples/supported/string-parse-f64-result.slo; examples/supported/string-parse-bool-result.slo |
Preferred source-level ok-tag observer for the supported concrete result families. | No result-helper-specific manifest field; schema version remains 1. |
Generic results, result payload families beyond the listed concrete families, option helpers, mapping/chaining, stable helper ABI/layout. |
std.result.is_err |
((result i32 i32)) -> bool; ((result i64 i32)) -> bool; ((result string i32)) -> bool; ((result f64 i32)) -> bool; ((result bool i32)) -> bool |
exp-15, extended exp-25, exp-28, and exp-34 | examples/supported/result-helpers.slo; examples/supported/string-parse-i64-result.slo; examples/supported/string-parse-f64-result.slo; examples/supported/string-parse-bool-result.slo |
Preferred source-level err-tag observer for the supported concrete result families. | No result-helper-specific manifest field; schema version remains 1. |
Generic results, result payload families beyond the listed concrete families, option helpers, mapping/chaining, stable helper ABI/layout. |
std.result.unwrap_ok |
((result i32 i32)) -> i32; ((result i64 i32)) -> i64; ((result string i32)) -> string; ((result f64 i32)) -> f64; ((result bool i32)) -> bool |
exp-15, extended exp-25, exp-28, and exp-34 | examples/supported/result-helpers.slo; examples/supported/string-parse-i64-result.slo; examples/supported/string-parse-f64-result.slo; examples/supported/string-parse-bool-result.slo |
Preferred source-level ok-payload extraction; traps with the existing unwrap_ok on err behavior when applied to err. |
No result-helper-specific manifest field; schema version remains 1. |
Generic results, result payload families beyond the listed concrete families, generic std.result.unwrap_or, mapping/chaining, stable helper ABI/layout. |
std.result.unwrap_err |
((result i32 i32)) -> i32; ((result i64 i32)) -> i32; ((result string i32)) -> i32; ((result f64 i32)) -> i32; ((result bool i32)) -> i32 |
exp-15, extended exp-25, exp-28, and exp-34 | examples/supported/result-helpers.slo; examples/supported/string-parse-i64-result.slo; examples/supported/string-parse-f64-result.slo; examples/supported/string-parse-bool-result.slo |
Preferred source-level err-payload extraction; traps with the existing unwrap_err on ok behavior when applied to ok. |
No result-helper-specific manifest field; schema version remains 1. |
Generic results, result payload families beyond the listed concrete families, generic std.result.unwrap_or, mapping/chaining, stable helper ABI/layout. |
Manifest Rule
The artifact manifest remains slovo.artifact-manifest schema version 1.
If the existing implementation records standard-runtime usage, it records the
names above through the same additive structure. If it does not, this catalog
does not introduce one-off metadata for any operation or release.
Deferrals
This catalog does not define broad standard-library modules, importable standard packages, stable runtime helper names, C ABI symbols, headers, libraries, semantic versioning, deprecation policy, or beta compatibility. Those remain future beta work unless a later explicit contract promotes them.
For the current exp-37 language baseline, it also does not define automatic
standard-library imports, compiler-loaded std/ source, source replacement of
cataloged compiler-known calls, f32, generic parse or format APIs,
f64 formatting beyond
std.num.f64_to_string : (f64) -> string finite decimal text, locale/base/
radix/grouping/padding/precision controls, generic format/display/
interpolation traits, implicit conversions, stable NaN/infinity text, mixed
numeric arithmetic/comparison, unchecked f64-to-i32, unchecked f64-to-i64,
unchecked casts, casts/cast syntax, generic cast_checked, narrowing or
checked numeric conversions beyond std.num.i64_to_i32_result,
std.num.f64_to_i32_result, and std.num.f64_to_i64_result, unsigned or
narrower integer families, broad math beyond the source-authored exp-32
std/math.slo helper slice, trigonometry, sqrt, pow,
generic result helpers beyond the source-authored exp-35 std/result.slo
concrete helper slice, source constructors or general source match support
for (result bool i32) beyond compiler-supported fixture flow,
generic std.result.unwrap_or, std.result.map,
std.result.and_then, generic option helpers beyond the source-authored
exp-36/exp-75/exp-95/exp-100 std/option.slo concrete helper slices, option
payload families beyond i32, i64, and string, broad time APIs beyond
the exp-37 std/time.slo wrappers,
wall-clock/calendar/timezone APIs, high-resolution timers, async timers,
cancellation, scheduling guarantees, new result payload families,
numeric parse/format APIs beyond the two exp-24
integer-to-string calls, the exp-26 f64-to-string call, and the released
std.string.parse_i32_result /
std.string.parse_i64_result /
std.string.parse_f64_result /
std.string.parse_bool_result result calls, bool parsing beyond exact
lowercase true/false, string/bytes parse,
underscores, rich parse errors, Unicode digit parsing, f64 containers,
writable resource handles, binary IO, directory handles, directory
enumeration, recursive filesystem operations, process handles, sockets, async
resource handling, platform-specific host error codes, rich host-error ADTs,
automatic cleanup/finalizers/destructors, stable standard-library APIs or
implementation replacement, stable ABI/layout/ownership, manifest schema
changes, or beta maturity.