98 lines
3.9 KiB
Markdown
98 lines
3.9 KiB
Markdown
# 1.0.0-beta.17 Release Review
|
|
|
|
Scope: `1.0.0-beta.17 JSON Primitive Scalar Parsing Foundation`
|
|
|
|
## Verdict
|
|
|
|
Ready after controller follow-up. The source facade, runtime lowering,
|
|
test-runner behavior, examples, generated API catalog, focused gates, full
|
|
`cargo test`, and release diagnostics are coherent for the beta17 scope.
|
|
|
|
## Findings
|
|
|
|
### P2 - Resolved: unsupported standard-library diagnostics omitted the beta17 promoted JSON names
|
|
|
|
`compiler/src/std_runtime.rs:259` through `compiler/src/std_runtime.rs:299`
|
|
register the six promoted beta17 helpers:
|
|
|
|
- `std.json.parse_bool_value_result`
|
|
- `std.json.parse_i32_value_result`
|
|
- `std.json.parse_u32_value_result`
|
|
- `std.json.parse_i64_value_result`
|
|
- `std.json.parse_u64_value_result`
|
|
- `std.json.parse_f64_value_result`
|
|
|
|
`compiler/src/std_runtime.rs:875` hard-coded the
|
|
`UnsupportedStandardLibraryCall.expected` text with only
|
|
`std.json.quote_string` in the JSON family. A user who called an unsupported
|
|
`std.*` name would receive stale guidance that omitted the newly supported
|
|
beta17 helpers.
|
|
|
|
Controller resolution: the six beta17 `std.json.parse_*_value_result` names
|
|
are now present in the expected supported-call list, and
|
|
`compiler/tests/standard_json_scalar_parsing_beta17.rs` includes
|
|
`unsupported_json_diagnostics_list_beta17_promoted_scalar_parsers` to fail if
|
|
that user-facing guidance drifts again.
|
|
|
|
No P0/P1/P2 runtime, source-facade, grammar, lowering, diagnostics, or
|
|
release-gate wiring findings remain open.
|
|
|
|
## Verification
|
|
|
|
Inspected:
|
|
|
|
- `lib/std/json.slo` and both JSON example fixtures.
|
|
- `compiler/src/std_runtime.rs`, `compiler/src/llvm.rs`, and
|
|
`compiler/src/test_runner.rs`.
|
|
- `runtime/runtime.c`.
|
|
- `compiler/tests/standard_json_scalar_parsing_beta17.rs`,
|
|
`compiler/tests/standard_json_source_facade_alpha.rs`, and
|
|
`compiler/tests/promotion_gate.rs`.
|
|
- `scripts/release-gate.sh`, version bump, release notes, roadmaps, spec,
|
|
standard-runtime docs, and generated `docs/language/STDLIB_API.md`.
|
|
|
|
Ran:
|
|
|
|
- `git -C slovo diff --check` - passed.
|
|
- `cargo fmt --check` - passed.
|
|
- `cargo test --test standard_json_scalar_parsing_beta17` - passed, 5/5.
|
|
- `cargo test --test standard_json_source_facade_alpha` - passed, 2/2.
|
|
- `cargo test --test standard_json` - passed, 4/4.
|
|
- `cargo test --test diagnostics_contract` - passed, 1/1.
|
|
- `cargo test --test promotion_gate` - passed, 1/1 with 2 ignored.
|
|
- `cargo test --test promotion_gate -- --ignored` - passed, 2/2.
|
|
- `cargo test` - passed.
|
|
- Controller follow-up `cargo test --test standard_json_scalar_parsing_beta17`
|
|
- passed after the diagnostic inventory fix.
|
|
|
|
Not run:
|
|
|
|
- Full `./scripts/release-gate.sh`; run it after final controller cleanup. Its
|
|
core `cargo test`, fmt, promotion, and beta17-focused components were
|
|
covered above, but the full script also runs documentation/private-text
|
|
checks and ignored binary/LLVM smoke gates.
|
|
|
|
## Residual Risks And Non-Scope Confirmation
|
|
|
|
Confirmed in-scope behavior:
|
|
|
|
- `std.json.parse_bool_value_result`, numeric concrete
|
|
`parse_*_value_result` helpers, and source-only `parse_null_value_result`
|
|
are present in `lib/std/json.slo` and mirrored by the local JSON fixture.
|
|
- Promoted bool/numeric helpers lower to private runtime symbols and have
|
|
matching test-runner and hosted-runtime behavior.
|
|
- Primitive JSON token checks reject whitespace, leading `+`, leading-zero
|
|
forms such as `01`/`01.0`, negative unsigned integers, overflow, and
|
|
non-finite f64 results. Exponent f64 is accepted. `-0` is accepted
|
|
consistently as a JSON-valid number token, not treated as a leading-zero
|
|
form.
|
|
- `parse_null_value_result` remains source-only; no compiler-known null parser
|
|
was introduced.
|
|
|
|
Confirmed non-scope:
|
|
|
|
- No JSON string parser, object parser, array parser, recursive `JsonValue`,
|
|
tokenizer, schema validator, stream parser, Unicode escape parser, map/set
|
|
surface, stable ABI/layout claim, stable API freeze, or performance claim is
|
|
introduced by this candidate.
|