fix: stabilize learning path, reliability and legacy Windows builds
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.
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user