66 lines
4.1 KiB
Markdown
66 lines
4.1 KiB
Markdown
# Nested source defaults: admission evidence, 2026-09-13
|
||
|
||
**Branch-specific existing-compatibility result, not a compact writer fix.**
|
||
Ten Windows tests pass against unchanged production code. They exercise both OA
|
||
and SA source 7 through `compile_bundle`, with fixed authored identities,
|
||
handwritten omitted/explicit syntax, complete literal `Project` expectations and
|
||
exact unchanged `SourceBundle` checks.
|
||
|
||
Independent review counted **44 accepted authored evaluations and 14 refusals**
|
||
(12 missing-field and two unknown-field checks). It found no blocking test or
|
||
clarification findings. The proposed clarification now records that passing
|
||
evidence while retaining its pending-integration status.
|
||
|
||
| Selected constructor/record | Confirmed omission | Confirmed retained requirement/distinction |
|
||
| --- | --- | --- |
|
||
| Integer / Real | Either bound individually or both together means `none` | The supplied other bound stays exact; Integer maximum 0 differs from no maximum |
|
||
| String | Maximum length absent means `none` | Minimum length is required even when 0; a nonzero minimum remains 4 |
|
||
| Record | Supertype absent means `none`; `{}` is admitted | Unknown `fields` rejects |
|
||
| Enumeration | No omission permission established | `literals` is required, including for an admitted empty list |
|
||
| Legacy port record | Interface absent means `none` | Direction remains required and explicit Out is retained |
|
||
| Port declaration | No contract omission | A supplied legacy record does not replace the required explicit contract |
|
||
|
||
The checked-in language reference's section 4.5 labels all DataTypeDefinition
|
||
payloads under “Required fields,” although the parser admits the omitted fields
|
||
above. The section 4 Legacy example also fails to state that its interface may
|
||
be omitted. The tests establish existing source-7 behavior without expanding
|
||
admission or inferring universal omission from nullable types. A proposed precise
|
||
replacement table and Legacy paragraph are retained in the evidence archive;
|
||
they are **not yet applied to the normative reference**. Integrate that narrow
|
||
clarification with the coordinated formatter/specification work. No broader
|
||
source8 or old-version compatibility claim follows from these cases.
|
||
|
||
The [preservation baseline](text-default-omission-baseline-20260913.md) remains
|
||
unchanged: its three desired-source regressions still fail. Passing admission
|
||
tests means the proposed omissions parse correctly, not that generated text is
|
||
already compact or that edits preserve all authored defaults.
|
||
|
||
## Execution and reproduction
|
||
|
||
```text
|
||
cargo test --locked --offline -p oa-core --test default_omission_admission --message-format=json -- --nocapture
|
||
```
|
||
|
||
Gate `admission-1`, 2026-09-13 10:00:54–10:00:58 UTC: **10 passed, 0 failed,
|
||
0 ignored**, exit 0. Windows `stable-x86_64-pc-windows-gnullvm`, Rust/Cargo 1.98.1,
|
||
LLVM-MinGW, one build job, incremental compilation disabled, locked offline
|
||
dependencies. HEAD at execution was `595cad479045898a5ba521b0cb0e80132726873a`
|
||
plus the newly authored admission test. All **606 captured inputs** remained
|
||
unchanged. Production sources and the prior preservation test are unchanged.
|
||
|
||
The [portable archive](experiments/default-admission-20260913/README.md) retains
|
||
exact source inputs, raw logs, receipts, original runner, independent review and
|
||
the proposed clarification. Its read-only `verify.py` checks file/ZIP membership,
|
||
hashes, receipt consistency and recorded outcomes. Parent also checked staged
|
||
Git blobs against the captured source and archive. The executable hash is a
|
||
historical runner receipt; the test binary is not distributed.
|
||
|
||
This is a focused core result. It does not establish GUI usability, canonical
|
||
format/parse round trips, performance, all constructors, all required-field
|
||
refusals, a full-suite pass, Linux support or release completion.
|
||
Whole-definition absence and Legacy without its legacy record were inspected
|
||
in the implementation rather than exercised by these tests. The latter is a
|
||
model-validation requirement. Duplicate-field rejection, Boolean payloads,
|
||
nonempty supertype/interface references and numeric boundary cases are also
|
||
outside this new test set.
|