2.7 KiB
2.7 KiB
1.0.0-beta.21 JSON Document Scalar Parsing Foundation
Scope
1.0.0-beta.21 is a standard-library and compiler-gate slice. It adds
source-authored std.json helpers for scalar JSON documents while keeping
source-language syntax, runtime C, compiler-known runtime names, and ABI/layout
policy unchanged.
The release adds:
parse_string_document_result ((document string)) -> (result string i32)parse_bool_document_result ((document string)) -> (result bool i32)parse_i32_document_result ((document string)) -> (result i32 i32)parse_u32_document_result ((document string)) -> (result u32 i32)parse_i64_document_result ((document string)) -> (result i64 i32)parse_u64_document_result ((document string)) -> (result u64 i32)parse_f64_document_result ((document string)) -> (result f64 i32)parse_null_document_result ((document string)) -> (result bool i32)
Contract
Each helper trims ASCII whitespace around the whole input document with
std.string.trim_ascii, then delegates to the already released exact
value-token parser for that scalar family.
Leading and trailing ASCII whitespace around one scalar document is accepted.
Trailing non-whitespace remains an ordinary parse failure and returns err 1
through the underlying exact parser.
Non-Scope
This scope does not add:
- compiler-known
std.json.*_document_resultruntime names - private
__glagol_json_*document*runtime symbols - runtime C helper implementations
- source-language syntax
- object or array parsing
- recursive
JsonValue - tokenizer/parser objects
- maps, sets, executable generics, or generic collections
- streaming parsers or encoders
- Unicode escape decoding beyond the existing string-token helper
- embedded NUL policy
- stable JSON APIs
- stable ABI/layout
- stable standard-library compatibility
- performance claims
Acceptance Criteria
lib/std/json.sloexports all eight document scalar helpers.- Explicit
std.jsonimport examples exercise trimmed whitespace success, no-whitespace success, and trailing non-whitespace failure. - Local
std-layout-local-jsonexamples mirror the public helper surface with an explicit localstringdependency fortrim_ascii. - Focused compiler coverage verifies the helpers are source-authored and that direct compiler-known runtime calls for the new names remain unsupported.
scripts/release-gate.shruns the focused beta21 test.- Generated standard-library API documentation includes the new signatures.
Gates
cargo fmt --check
cargo test --test standard_json_document_scalar_parsing_beta21
cargo test --test standard_json_source_facade_alpha
cargo test --test promotion_gate
cargo test
./scripts/release-gate.sh