45 KiB
Slovo Standard Runtime Catalog
Status: standard-runtime catalog through exp-104 plus the post-beta
1.0.0-beta.18 JSON string token parsing foundation over the released exp-14
conformance baseline. The latest Slovo experimental alpha release is
exp-104, Standard Vec Bool Baseline 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;
exp-99 adds exactly four concrete (vec string) vector names; exp-100 and
exp-101 add no new compiler-known std.* names; exp-103 adds exactly four
concrete (vec f64) vector names; and exp-104 adds exactly four concrete
(vec bool) vector 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 1.0.0-beta.7 serialization/data-interchange foundation release adds
std.json.quote_string behind the std.json source facade. It provides
deterministic compact JSON string quoting before later byte-oriented string
scanning helpers, maps, or recursive JSON values are available.
The 1.0.0-beta.16 string scanning and token-boundary foundation release adds
byte-oriented std.string runtime helpers behind the source facade. The helpers
operate over bytes before the trailing NUL in the current runtime string
representation, return err 1 for ordinary invalid indexes or ranges, and do
not define Unicode scalar, grapheme, display-width, locale, full JSON parser,
object/array parser, language slice/view, or stable API semantics.
The 1.0.0-beta.17 JSON primitive scalar parsing foundation release adds
promoted bool and numeric std.json.parse_*_value_result runtime helpers
behind the source facade. The helpers consume a whole isolated JSON primitive
token and return err 1 for ordinary parse failure. The exact null helper
is source-only and is not cataloged as a promoted runtime operation.
The 1.0.0-beta.18 JSON string token parsing foundation release adds promoted
std.json.parse_string_value_result for one isolated ASCII JSON string token.
It decodes simple escapes, rejects Unicode escapes for this slice, and leaves
recursive JSON values, tokenizers, streaming, schema validation, and stable
JSON parse errors deferred.
The exp-era catalog is closed to names promoted through exp-104. 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; exp-103 adds std.vec.f64.empty, std.vec.f64.append,
std.vec.f64.len, and std.vec.f64.index; and exp-104 adds
std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, and
std.vec.bool.index.
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.string.byte_at_result |
(string, i32) -> (result i32 i32) |
1.0.0-beta.16 |
examples/projects/std-layout-local-string |
Returns ok byte for a valid zero-based byte index before the trailing NUL, or err 1 for an invalid index. |
Uses existing standard-runtime usage recording if present; no schema change. | Character/grapheme indexing, unchecked indexing, Unicode scalar values, stable string ABI/layout. |
std.string.slice_result |
(string, i32, i32) -> (result string i32) |
1.0.0-beta.16 |
examples/projects/std-layout-local-string |
Returns ok text for a valid byte range before the trailing NUL, or err 1 for an invalid range; allocation failure may trap with the existing string allocation policy. |
Uses existing standard-runtime usage recording if present; no schema change. | Borrowed substring views, language slice/view syntax, Unicode/grapheme slicing, stable string ABI/layout/ownership. |
std.string.starts_with |
(string, string) -> bool |
1.0.0-beta.16 |
examples/projects/std-layout-local-string |
Returns whether the first string starts with the prefix bytes; the empty prefix matches. | Uses existing standard-runtime usage recording if present; no schema change. | Locale-sensitive matching, case folding, Unicode normalization, tokenizer/parser APIs, stable string ABI/layout. |
std.string.ends_with |
(string, string) -> bool |
1.0.0-beta.16 |
examples/projects/std-layout-local-string |
Returns whether the first string ends with the suffix bytes; the empty suffix matches. | Uses existing standard-runtime usage recording if present; no schema change. | Locale-sensitive matching, case folding, Unicode normalization, tokenizer/parser APIs, stable string ABI/layout. |
std.json.quote_string |
(string) -> string |
1.0.0-beta.7 |
examples/projects/std-layout-local-json |
Returns a compact JSON string literal for the input text, including surrounding quotes; it escapes quote, backslash, newline, tab, carriage return, backspace, form feed, and other control bytes as JSON escapes. Allocation failure traps as slovo runtime error: string allocation failed. |
Uses existing standard-runtime usage recording if present; no schema change. | Full JSON parsing, recursive JSON values, maps/sets, streaming encoders, schema validation, Unicode normalization, embedded NUL support in the current null-terminated string ABI, stable helper ABI/layout/ownership. |
std.json.parse_string_value_result |
(string) -> (result string i32) |
1.0.0-beta.18 |
examples/projects/std-layout-local-json |
Returns ok decoded for one exact ASCII JSON string token with surrounding quotes and simple escapes, or err 1 for ordinary parse failure; rejects leading/trailing whitespace, raw control bytes, raw non-ASCII bytes, raw quote/backslash, trailing bytes, and all \uXXXX escapes. Allocation failure may trap with the existing string allocation policy. |
Uses existing standard-runtime usage recording if present; no schema change. | Full JSON parsing, object/array/value parsing, Unicode escape decoding, Unicode normalization, embedded NUL support in the current null-terminated string ABI, stable parse error taxonomy, stable helper ABI/layout/ownership. |
std.json.parse_bool_value_result |
(string) -> (result bool i32) |
1.0.0-beta.17 |
examples/projects/std-layout-local-json |
Returns ok true for exact true, ok false for exact false, or err 1 otherwise. |
Uses existing standard-runtime usage recording if present; no schema change. | Full JSON parsing, whitespace-tolerant document parsing, stable parse error taxonomy, stable helper ABI/layout. |
std.json.parse_i32_value_result |
(string) -> (result i32 i32) |
1.0.0-beta.17 |
examples/projects/std-layout-local-json |
Returns ok value for a whole JSON integer token in signed i32 range, or err 1; rejects leading/trailing whitespace, leading +, and leading-zero integer forms except 0. |
Uses existing standard-runtime usage recording if present; no schema change. | Full JSON parsing, generic numeric parsing, stable parse error taxonomy, stable helper ABI/layout. |
std.json.parse_u32_value_result |
(string) -> (result u32 i32) |
1.0.0-beta.17 |
examples/projects/std-layout-local-json |
Returns ok value for a whole non-negative JSON integer token in u32 range, or err 1; rejects leading/trailing whitespace, leading +, negative tokens, and leading-zero integer forms except 0. |
Uses existing standard-runtime usage recording if present; no schema change. | Full JSON parsing, generic numeric parsing, stable parse error taxonomy, stable helper ABI/layout. |
std.json.parse_i64_value_result |
(string) -> (result i64 i32) |
1.0.0-beta.17 |
examples/projects/std-layout-local-json |
Returns ok value for a whole JSON integer token in signed i64 range, or err 1; rejects leading/trailing whitespace, leading +, and leading-zero integer forms except 0. |
Uses existing standard-runtime usage recording if present; no schema change. | Full JSON parsing, generic numeric parsing, stable parse error taxonomy, stable helper ABI/layout. |
std.json.parse_u64_value_result |
(string) -> (result u64 i32) |
1.0.0-beta.17 |
examples/projects/std-layout-local-json |
Returns ok value for a whole non-negative JSON integer token in u64 range, or err 1; rejects leading/trailing whitespace, leading +, negative tokens, and leading-zero integer forms except 0. |
Uses existing standard-runtime usage recording if present; no schema change. | Full JSON parsing, generic numeric parsing, stable parse error taxonomy, stable helper ABI/layout. |
std.json.parse_f64_value_result |
(string) -> (result f64 i32) |
1.0.0-beta.17 |
examples/projects/std-layout-local-json |
Returns ok value for a whole finite JSON number token, including exponent form, or err 1; rejects leading/trailing whitespace, leading +, leading-zero whole-number forms except 0, and non-finite results. |
Uses existing standard-runtime usage recording if present; no schema change. | Full JSON parsing, generic numeric parsing, stable parse error taxonomy, stable helper 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 current concrete vector families, 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 current concrete vector families, 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.f64.empty |
() -> (vec f64) |
exp-103 | examples/supported/vec-f64.slo |
Returns an empty immutable runtime-owned (vec f64). |
Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond current concrete vector families, vector mutation, stable vector ABI/layout. |
std.vec.f64.append |
((vec f64), f64) -> (vec f64) |
exp-103 | examples/supported/vec-f64.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.f64.len |
((vec f64)) -> i32 |
exp-103 | examples/supported/vec-f64.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.f64.index |
((vec f64), i32) -> f64 |
exp-103 | examples/supported/vec-f64.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.bool.empty |
() -> (vec bool) |
exp-104 | examples/supported/vec-bool.slo |
Returns an empty immutable runtime-owned (vec bool). |
Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond current concrete vector families, vector mutation, stable vector ABI/layout. |
std.vec.bool.append |
((vec bool), bool) -> (vec bool) |
exp-104 | examples/supported/vec-bool.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.bool.len |
((vec bool)) -> i32 |
exp-104 | examples/supported/vec-bool.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.bool.index |
((vec bool), i32) -> bool |
exp-104 | examples/supported/vec-bool.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 current concrete vector families, 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 scanning/tokenizing APIs beyond
1.0.0-beta.16 byte access, substring, and prefix/suffix helpers,
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.