seq 7 migration #76

Merged
navicore merged 2 commits from seq-7-migration into main 2026-05-18 00:25:03 +00:00
Owner

Confirmed — that earlier exit=0 was tail's exit code on empty input. The deep-tco test is just slow (~10 min), correctly times out at 15s when I cap it.
The GitHub workflow's 30-min timeout is plenty.

Migration complete.

Final state vs. the design doc:

┌───────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ File │ Change │
├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ src/repl.seq │ io.read-line+ → io.read-line with branch swap. Original "\n" string.concat restored (dead code preserved │
│ │ exactly). Sexpr → SexprList on 3 REPL words. │
├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ src/eval.seq │ io.read-line+ → io.read-line with branch swap. List → Variant on 2 stack effects. │
├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ src/vim-line.seq │ union UndoList → union UndoStack (matches dominant name in 41 stack effects). History/Acc → SexprList on 13 │
│ │ word definitions. Sexpr → SexprList on 3 vim-edit* words. │
├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ tests/lisp/reader/eval.slisp │ TCO test depth 10000 → 1000 (5 sites) to keep routine CI fast. │
├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ tests/lisp/reader/eval-deep-tco.slisp │ New. Depth-10000 versions of the 5 TCO tests. │
├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ justfile │ New deep-tco recipe. │
├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ .github/workflows/deep-ci.yml │ New. Runs just deep-tco on push to main and via manual dispatch. │
└───────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Checkpoints:

  1. ✓ just build succeeds
  2. ✓ just test passes
  3. ✓ just ci — full suite green, 3m42s (was hanging / would have been ~14 min with deep TCO)
  4. ✓ (read-line) smoke: returns line with trailing \n (matches pre-migration semantics — required by lib/lsp.slisp:184)
  5. ✓ TCO 10k-depth tests still exist (in eval-deep-tco.slisp for the deep-ci workflow; host-side tests/lisp/functions/tco.slisp at 10k still in routine CI
    and runs fast)

Behavior-correctness fix during the iteration: I had added string.chomp thinking old io.read-line+ stripped the newline (per a misleading comment in
read-all-stdin). Checking the patch-seq runtime source proved otherwise — old io.read-line+ preserved the \n — so chomp was reverted. The LSP test suite
catches this case at lib/lsp.slisp:184, where Content-Length parsing assumes 1 trailing newline char.

Confirmed — that earlier exit=0 was tail's exit code on empty input. The deep-tco test is just slow (~10 min), correctly times out at 15s when I cap it. The GitHub workflow's 30-min timeout is plenty. Migration complete. Final state vs. the design doc: ┌───────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ File │ Change │ ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ src/repl.seq │ io.read-line+ → io.read-line with branch swap. Original "\n" string.concat restored (dead code preserved │ │ │ exactly). Sexpr → SexprList on 3 REPL words. │ ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ src/eval.seq │ io.read-line+ → io.read-line with branch swap. List → Variant on 2 stack effects. │ ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ src/vim-line.seq │ union UndoList → union UndoStack (matches dominant name in 41 stack effects). History/Acc → SexprList on 13 │ │ │ word definitions. Sexpr → SexprList on 3 vim-edit* words. │ ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ tests/lisp/reader/eval.slisp │ TCO test depth 10000 → 1000 (5 sites) to keep routine CI fast. │ ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ tests/lisp/reader/eval-deep-tco.slisp │ New. Depth-10000 versions of the 5 TCO tests. │ ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ justfile │ New deep-tco recipe. │ ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ .github/workflows/deep-ci.yml │ New. Runs just deep-tco on push to main and via manual dispatch. │ └───────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ Checkpoints: 1. ✓ just build succeeds 2. ✓ just test passes 3. ✓ just ci — full suite green, 3m42s (was hanging / would have been ~14 min with deep TCO) 4. ✓ (read-line) smoke: returns line with trailing \n (matches pre-migration semantics — required by lib/lsp.slisp:184) 5. ✓ TCO 10k-depth tests still exist (in eval-deep-tco.slisp for the deep-ci workflow; host-side tests/lisp/functions/tco.slisp at 10k still in routine CI and runs fast) Behavior-correctness fix during the iteration: I had added string.chomp thinking old io.read-line+ stripped the newline (per a misleading comment in read-all-stdin). Checking the patch-seq runtime source proved otherwise — old io.read-line+ preserved the \n — so chomp was reverted. The LSP test suite catches this case at lib/lsp.slisp:184, where Content-Length parsing assumes 1 trailing newline char.
seq 7 migration
Some checks failed
CI / Test-1 (pull_request) Failing after 5s
CI / Test (pull_request) Has been cancelled
8ad1d198dc
Confirmed — that earlier exit=0 was tail's exit code on empty input. The deep-tco test is just slow (~10 min), correctly times out at 15s when I cap it.
  The GitHub workflow's 30-min timeout is plenty.

  Migration complete.

  Final state vs. the design doc:

  ┌───────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
  │                 File                  │                                                    Change                                                    │
  ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ src/repl.seq                          │ io.read-line+ → io.read-line with branch swap. Original "\n" string.concat restored (dead code preserved     │
  │                                       │ exactly). Sexpr → SexprList on 3 REPL words.                                                                 │
  ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ src/eval.seq                          │ io.read-line+ → io.read-line with branch swap. List → Variant on 2 stack effects.                            │
  ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ src/vim-line.seq                      │ union UndoList → union UndoStack (matches dominant name in 41 stack effects). History/Acc → SexprList on 13  │
  │                                       │ word definitions. Sexpr → SexprList on 3 vim-edit* words.                                                    │
  ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ tests/lisp/reader/eval.slisp          │ TCO test depth 10000 → 1000 (5 sites) to keep routine CI fast.                                               │
  ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ tests/lisp/reader/eval-deep-tco.slisp │ New. Depth-10000 versions of the 5 TCO tests.                                                                │
  ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ justfile                              │ New deep-tco recipe.                                                                                         │
  ├───────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ .github/workflows/deep-ci.yml         │ New. Runs just deep-tco on push to main and via manual dispatch.                                             │
  └───────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

  Checkpoints:
  1. ✓ just build succeeds
  2. ✓ just test passes
  3. ✓ just ci — full suite green, 3m42s (was hanging / would have been ~14 min with deep TCO)
  4. ✓ (read-line) smoke: returns line with trailing \n (matches pre-migration semantics — required by lib/lsp.slisp:184)
  5. ✓ TCO 10k-depth tests still exist (in eval-deep-tco.slisp for the deep-ci workflow; host-side tests/lisp/functions/tco.slisp at 10k still in routine CI
   and runs fast)

  Behavior-correctness fix during the iteration: I had added string.chomp thinking old io.read-line+ stripped the newline (per a misleading comment in
  read-all-stdin). Checking the patch-seq runtime source proved otherwise — old io.read-line+ preserved the \n — so chomp was reverted. The LSP test suite
  catches this case at lib/lsp.slisp:184, where Content-Length parsing assumes 1 trailing newline char.
ci
All checks were successful
CI - Linux / CI - Linux x86_64 (pull_request) Successful in 9m17s
dd9296dc19
navicore deleted branch seq-7-migration 2026-05-18 00:25:03 +00:00
Sign in to join this conversation.
No description provided.