|
@@ -101,6 +101,29 @@ statement is still `233` (`t_bad_funstmt`). Corpus **+6**:
|
|
|
`varient` (`except5` now stops on ISO exceptions). Regression
|
|
`varient` (`except5` now stops on ISO exceptions). Regression
|
|
|
`t_libc2`.
|
|
`t_libc2`.
|
|
|
|
|
|
|
|
|
|
+## Commits
|
|
|
|
|
+
|
|
|
|
|
+Three tagged states, each green on all gates:
|
|
|
|
|
+
|
|
|
|
|
+| commit | tag | scope |
|
|
|
|
|
+| --- | --- | --- |
|
|
|
|
|
+| `aa4f49b` | `v3-corpus-triage` | multi-index arrays, typed subranges, ordinal `FOR` (+12) |
|
|
|
|
|
+| `f87bcc9` | `v3-empty-string` | ISO empty string as `CHAR` (+6) |
|
|
|
|
|
+| `c02fd41` | `v3-libc-prototypes` | typed libc prototypes, `printf` varargs (+6) |
|
|
|
|
|
+
|
|
|
|
|
+## Lessons
|
|
|
|
|
+
|
|
|
|
|
+- A corpus "bucket" can be misleading until each file's **first**
|
|
|
|
|
+ diagnostic is read: 48 files import `libc`, but most stop earlier on
|
|
|
|
|
+ declaration order, exceptions or sized types. Only 6 were blocked by
|
|
|
|
|
+ the missing prototypes.
|
|
|
|
|
+- The `printf` decision was a policy choice, not a technical one: the
|
|
|
|
|
+ permissive external already made statement calls work. Option 3
|
|
|
|
|
+ (function + allow discarding the result only for foreign C varargs)
|
|
|
|
|
+ keeps `t_bad_funstmt` and unlocks all 59 `printf` files.
|
|
|
|
|
+- `docs/gaps/README.md` is still the place to record *why* a case is
|
|
|
|
|
+ rejected; the new entries state the fix and the remaining carve-out.
|
|
|
|
|
+
|
|
|
## Remaining (for a next session)
|
|
## Remaining (for a next session)
|
|
|
|
|
|
|
|
1. **A real `libc.def`** — the built-in prototype table covers the
|
|
1. **A real `libc.def`** — the built-in prototype table covers the
|