docs(ffi-linkage): checkpoint — PHASE 9 COMPLETE, FFI-linkage stream DONE (9.4 gate passes)
This commit is contained in:
@@ -5,7 +5,30 @@ Companion to `current/PLAN-EXTERN-EXPORT.md` — one merged plan: **Part A** add
|
||||
every commit, one step at a time per the cadence rule.
|
||||
|
||||
## Last completed step
|
||||
**Phase 9.3 — text/comment purge (src + docs + example comments)** (commits
|
||||
**Phase 9 COMPLETE — total `foreign` purge; 9.4 GATE PASSES.** **THE ENTIRE
|
||||
FFI-LINKAGE STREAM (Parts A + B, Phases 0–9) IS DONE.** Final commits: 9.0 token
|
||||
delete (`dfae690`), 9.3 src/docs/example/library comment purge (`811a280`, `e99383f`,
|
||||
`dc51c4b`, + the capital-Foreign sweep), 9.3 example filename renames + dedup
|
||||
(`b52d424`), 9.3/9.4 issues/*.md purge + GATE (`b9cfe25`).
|
||||
- **9.0:** deleted the `hash_foreign` token entirely (token/lexer/parser/lsp + the lex
|
||||
test); `#foreign` now → a generic "expected ';'" parse error (accepted UX cost);
|
||||
deleted the obsolete 1176 rejection test.
|
||||
- **9.1/9.2:** all internal identifiers renamed (linkage→`extern`/`is_extern`,
|
||||
runtime-class→`Runtime*`/`runtime_*` per Decision 5, `foreign_path`→`runtime_path`
|
||||
across the build-hook boundary); `foreign_expr` node eliminated.
|
||||
- **9.3:** purged every `foreign` COMMENT (src caps + lowercase, examples, docs incl.
|
||||
the obsolete inline-asm Deviation 6, editors/vscode grammar) + renamed all 10
|
||||
`*-foreign*` example files (+ companions/expected/refs) to extern/runtime names
|
||||
(dedup'd 1218↔1229, removed orphan 1620 dir) + rewrote 20 issues/*.md writeups +
|
||||
renamed issues/0043.
|
||||
- **9.4 GATE:** `grep -rniIE 'foreign' src/ library/ examples/ issues/ docs/ editors/
|
||||
specs.md readme.md CLAUDE.md` → **0**, excluding only the legitimate keeps:
|
||||
`SQLITE_CONSTRAINT_FOREIGNKEY` (SQLite API const) + vendored `library/vendors/sqlite/
|
||||
c/*` (upstream third-party C). No `foreign`-named files in the tree (node_modules +
|
||||
.sx-tmp are gitignored third-party/scratch). Suite green (644 corpus / 443 unit, 0
|
||||
failed).
|
||||
|
||||
### Prior: Phase 9.3 — text/comment purge (src + docs + example comments) (commits
|
||||
`e99383f` docs, `dc51c4b` src, + examples purge STAGED pending a classifier outage —
|
||||
commit message ready; `git commit` the staged `examples/` changes when Bash is back).
|
||||
`foreign` is now purged from: **all `src/` comments** (reworded to extern/runtime-class;
|
||||
@@ -328,6 +351,17 @@ AOT), 1227 (export fn rename, AOT), 1348 (objc extern class), 1349 (objc export
|
||||
(jni extern class), 1174/1175 (interplay diagnostics).
|
||||
|
||||
## Next step
|
||||
**NONE — the FFI-linkage stream is COMPLETE.** `extern`/`export` fully replace
|
||||
`#foreign`; the keyword is rejected; zero `foreign` remains in the gated tree (Parts
|
||||
A + B, Phases 0–9 all done; the 9.4 gate passes). This stream can be archived.
|
||||
|
||||
Possible follow-ups (NOT required, NOT this stream):
|
||||
- Optionally add `extern`/`export` to the editors/vscode tmLanguage keyword list (the
|
||||
`#foreign` directive was removed; the new keywords aren't specially highlighted yet).
|
||||
- The `RuntimeClassPrefix.is_extern` field + `parseRuntimeClassDecl`'s `is_extern`
|
||||
param are now vestigial (always false post-token-deletion) — a cosmetic cleanup.
|
||||
|
||||
--- (historical: the finish-Phase-9 plan, now done) ---
|
||||
**PART B — finish Phase 9: example FILENAME renames + `issues/*.md` + 9.0/9.4.**
|
||||
(All `src/` identifiers + AST node + all comments/docs/example-comments are DONE.)
|
||||
|
||||
@@ -571,6 +605,13 @@ Part A ratified (bare / postfix / `⇒ callconv(.c)` / lib-separate). Part B:
|
||||
deleted at cutover). Affects only diagnostic wording — IR/behavior identical either way.
|
||||
|
||||
## Log
|
||||
- (9.0 + 9.3 + 9.4) **PHASE 9 COMPLETE — STREAM DONE; 9.4 GATE PASSES.** Deleted the
|
||||
hash_foreign token (9.0, `dfae690`); purged all `foreign` comments incl. capital-F
|
||||
(src/examples/docs/editors); renamed 10 `*-foreign*` example files + dedup'd 1218
|
||||
(`b52d424`); rewrote 20 issues/*.md + renamed 0043 (`b9cfe25`). Gate: zero `foreign`
|
||||
in the gated tree except `SQLITE_CONSTRAINT_FOREIGNKEY` + vendored sqlite c/. Suite
|
||||
green (644/443). User flagged several leftover areas mid-purge (docs/, editors/,
|
||||
capital-Foreign comments, the token) — all addressed.
|
||||
- (9.3 src capital-Foreign) Fixed the case-sensitivity gap — my earlier src verify grep
|
||||
was case-sensitive, missing ~21 capital `Foreign`/`FOREIGN` comments (Foreign-class→
|
||||
Runtime-class, Foreign path→Runtime path, Foreign decls→Extern decls, FOREIGN function→
|
||||
|
||||
Reference in New Issue
Block a user