Preserve source locations, validate malformed JSON, and add opt-in resource limits. Include executable error-guide coverage, learner pilot materials, native Windows acceptance helpers, and updated CI/documentation.
69 lines
3.5 KiB
Markdown
69 lines
3.5 KiB
Markdown
# Reliability checkpoint
|
|
|
|
Use [release status](RELEASE_STATUS.md) for artifact-specific evidence and
|
|
publication state. This page describes tested boundaries, not a universal pass.
|
|
|
|
The known OBJECT cleanup investigation is resolved for the maintained regression
|
|
cases. Historical notes in `HARDENING.md` describe earlier failures, not the current
|
|
status of those tested boundaries.
|
|
|
|
## Repairs and coverage
|
|
|
|
- Borrowed type/class metadata no longer creates abandoned deep copies.
|
|
- Checked assignments, object copies, construction, and OBJECT result temporaries
|
|
release owned values after storage has copied them.
|
|
- Function declaration and typechecker parameter arrays, per-file type metadata,
|
|
text transforms, sorting, and REPL teardown have explicit cleanup.
|
|
- A lone `!` no longer leaves the tokenizer at the same input position until memory
|
|
is exhausted. It produces a `NOT` repair hint; `!=` remains supported.
|
|
- Missing quotes/parentheses/operands and trailing expression tokens are diagnosed.
|
|
- Expression recursion and nested control blocks have bounded guardrails. Deep
|
|
block input no longer writes beyond the checker's fixed array.
|
|
- Existing function recursion, HTTP response-size, and trusted-command boundaries
|
|
retain their focused checks.
|
|
|
|
## Reproduce verification
|
|
|
|
```bash
|
|
make -s all
|
|
python3 tools/validate_reliability.py
|
|
python3 tools/validate_v1_17.py
|
|
```
|
|
|
|
The current reliability runner executes 35 maintained checks and records each exit
|
|
status and log in a scratch result directory. It includes the full introductory
|
|
learning-path checker and First Hour under ASan/UBSan/LeakSanitizer, with leak
|
|
detection enabled. Full release validation invokes this runner; CI has explicit
|
|
reliability, single-file C89, and learning-path checks.
|
|
|
|
The OBJECT regression verifies class name, field count and field content, not a
|
|
fictional printed list representation. Five isolated ownership tests separate
|
|
metadata, field storage and object construction so one leak cannot hide another.
|
|
Malformed-expression and nesting tests check failure diagnostics and valid inputs.
|
|
|
|
## Diagnostics, JSON and opt-in budgets
|
|
|
|
Expression errors keep source origins across calls, imports and TRY/CATCH.
|
|
The error guide is executable-verified. Malformed JSON now fails instead of
|
|
hanging, nesting is bounded, control-character round trips are checked, and
|
|
Unicode escapes/surrogate pairs are covered. JSON temporaries, serialization
|
|
copies and popped import-stack entries have focused leak-enabled regressions.
|
|
The optional step budget counts empty loop entries; READ FILE can enforce a
|
|
per-read byte cap. These are not process isolation or wall-clock bounds.
|
|
|
|
`validate_error_locations.py`, `validate_error_guide.py`, `validate_learner_pilot.py`
|
|
and `validate_resource_guards.py` run in the full gate and inside the existing
|
|
learning-ownership sanitizer check. The reliability runner still counts 35
|
|
maintained top-level checks; subcase coverage has expanded, not been relabeled
|
|
as 35 new independent platform tests. Human feedback and native Windows tests
|
|
remain separate, blocked acceptance tracks.
|
|
|
|
## Scope
|
|
|
|
A passing run establishes the exercised boundaries, not universal leak freedom,
|
|
security or correctness for arbitrary programs. POSIX sanitizer coverage does not
|
|
establish native Windows behavior. See [runtime limits](RUNTIME_LIMITS.md) for
|
|
implemented guards and [portability](PORTABILITY.md) for distribution evidence.
|
|
Intentional infinite loops and untrusted-script execution are not made safe by
|
|
these checks. Historical beta environment-limit claims are not current guarantees.
|