Unify beginner syntax while preserving compatibility, repair ownership and parser guards, add verified distribution tooling and VC6 Windows 98 build inputs, and clarify documentation and release status. Preserve DOS build-input line endings and exclude generated binaries/caches.
52 lines
2.5 KiB
Markdown
52 lines
2.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.
|
|
|
|
## 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.
|