68 lines
2.9 KiB
Markdown
68 lines
2.9 KiB
Markdown
# Beta 18 Release Review: JSON String Token Parsing Foundation
|
|
|
|
Reviewer: beta18 release reviewer
|
|
Date: 2026-05-23
|
|
Repo: Slovo monorepo
|
|
|
|
## Findings
|
|
|
|
### Blocking: unrelated test-runner stack wrapper drift is present in the beta18 worktree
|
|
|
|
- `compiler/src/main.rs:27`
|
|
- `compiler/src/main.rs:30`
|
|
- `compiler/src/main.rs:57`
|
|
|
|
The dirty worktree includes a broad `Mode::RunTests` execution change that imports
|
|
`std::thread`, defines a 16 MiB test-runner stack size, and runs every `glagol test`
|
|
invocation inside a spawned thread. That is not part of the documented beta18 JSON
|
|
string-token parsing scope and is not covered by the beta18 release notes, runtime
|
|
contract, `.llm/BETA_18_JSON_STRING_TOKEN_PARSING_FOUNDATION.md`, or a targeted test
|
|
that justifies changing CLI execution behavior.
|
|
|
|
This is release-blocking for beta18 as scoped. Either remove this drift from the
|
|
beta18 release, or promote it into an explicit separate scope with release notes,
|
|
docs, tests for panic/reporting behavior, and a clear reason for changing the
|
|
test-runner resource model.
|
|
|
|
## Non-Blocking Observations
|
|
|
|
- The JSON string-token parser surface is coherent across `lib/std/json.slo`,
|
|
`examples/projects/std-layout-local-json/src/json.slo`, compiler runtime
|
|
registration, LLVM lowering, test-runner emulation, hosted C runtime, generated
|
|
standard-library API docs, and source-facade examples.
|
|
- The promoted signature is consistently `(string) -> (result string i32)`.
|
|
- The documented contract is narrow and explicit: one isolated ASCII JSON string
|
|
token, exact quotes, simple JSON escapes, `err 1` for ordinary parse failure,
|
|
and deferred Unicode/full JSON parsing.
|
|
- `docs/compiler/RELEASE_NOTES.md:81` still says beta17 did not implement JSON
|
|
string parsing. That appears historical and scoped to the beta17 section, not a
|
|
stale beta18 claim.
|
|
|
|
## Verification Run
|
|
|
|
Passed:
|
|
|
|
- `cargo fmt --check`
|
|
- `cargo test --test standard_json_string_parsing_beta18`
|
|
- `cargo test --test standard_json_scalar_parsing_beta17`
|
|
- `cargo test --test standard_json_source_facade_alpha`
|
|
- `cargo test --test promotion_gate`
|
|
- `cargo test --test diagnostics_contract`
|
|
- `cargo test`
|
|
- `git diff --check`
|
|
- `git grep -nE '(/home/[[:alnum:]_.-]+|sanjin[0-9]+|[0-9]{1,3}\.64\.0\.1|git\.hermeticum\.io)' -- README.md CONTRIBUTING.md docs scripts compiler lib examples benchmarks tests .llm`
|
|
|
|
Not run:
|
|
|
|
- `./scripts/release-gate.sh`; the controller should run the full release gate
|
|
after resolving the blocking drift and committing generated docs/source changes,
|
|
because the gate intentionally checks generated `docs/language/STDLIB_API.md`,
|
|
ignored promotion gates, binary smoke, and LLVM smoke.
|
|
|
|
## Verdict
|
|
|
|
Not release-ready yet because of the unrelated `compiler/src/main.rs` test-runner
|
|
stack wrapper drift. The beta18 JSON string-token parsing implementation itself did
|
|
not show blocking defects in this review, and the focused plus full Rust test stack
|
|
passed.
|