tcl: tick Phase 3 core checkboxes, update progress log
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 45s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 45s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -76,13 +76,13 @@ Core mapping:
|
|||||||
- [x] 60+ tests in `lib/tcl/tests/eval.sx`
|
- [x] 60+ tests in `lib/tcl/tests/eval.sx`
|
||||||
|
|
||||||
### Phase 3 — proc + uplevel + upvar (THE SHOWCASE)
|
### Phase 3 — proc + uplevel + upvar (THE SHOWCASE)
|
||||||
- [ ] `proc name args body` — register user-defined command; args supports defaults `{name default}` and rest `args`
|
- [x] `proc name args body` — register user-defined command; args supports defaults `{name default}` and rest `args`
|
||||||
- [ ] Frame stack: each proc call pushes a frame with locals dict; pop on return
|
- [x] Frame stack: each proc call pushes a frame with locals dict; pop on return
|
||||||
- [ ] `uplevel ?level? script` — evaluate `script` in level-N frame's env; default level is 1 (caller). `#0` is global, `#1` is relative-1
|
- [x] `uplevel ?level? script` — evaluate `script` in level-N frame's env; default level is 1 (caller). `#0` is global, `#1` is relative-1
|
||||||
- [ ] `upvar ?level? otherVar localVar ?…?` — alias localVar to a variable in level-N frame; reads/writes go through the alias
|
- [x] `upvar ?level? otherVar localVar ?…?` — alias localVar to a variable in level-N frame; reads/writes go through the alias
|
||||||
- [ ] `info level`, `info level N`, `info frame`, `info vars`, `info locals`, `info globals`, `info commands`, `info procs`, `info args`, `info body`
|
- [x] `info level`, `info level N`, `info frame`, `info vars`, `info locals`, `info globals`, `info commands`, `info procs`, `info args`, `info body`
|
||||||
- [ ] `global var ?…?` — alias to global frame (sugar for `upvar #0 var var`)
|
- [x] `global var ?…?` — alias to global frame (sugar for `upvar #0 var var`)
|
||||||
- [ ] `variable name ?value?` — namespace-scoped global
|
- [x] `variable name ?value?` — namespace-scoped global
|
||||||
- [ ] Classic programs in `lib/tcl/tests/programs/`:
|
- [ ] Classic programs in `lib/tcl/tests/programs/`:
|
||||||
- [ ] `for-each-line.tcl` — define your own loop construct using `uplevel`
|
- [ ] `for-each-line.tcl` — define your own loop construct using `uplevel`
|
||||||
- [ ] `assert.tcl` — assertion macro that reports caller's line
|
- [ ] `assert.tcl` — assertion macro that reports caller's line
|
||||||
@@ -120,6 +120,7 @@ Core mapping:
|
|||||||
|
|
||||||
_Newest first._
|
_Newest first._
|
||||||
|
|
||||||
|
- 2026-05-06: Phase 3 proc+uplevel+upvar+info+global — frame stack, isolated proc scope, alias-following var access, 225 tests green (67 parse + 158 eval)
|
||||||
- 2026-05-06: Phase 2 dict commands — 13 subcommands (create/get/set/unset/exists/keys/values/size/for/update/merge/incr/append), 206 tests green (67 parse + 139 eval)
|
- 2026-05-06: Phase 2 dict commands — 13 subcommands (create/get/set/unset/exists/keys/values/size/for/update/merge/incr/append), 206 tests green (67 parse + 139 eval)
|
||||||
- 2026-05-06: Phase 2 list commands — 12 commands (list/lindex/lrange/llength/lreverse/lsearch/lsort/lreplace/linsert/concat/split/join), 182 tests green (67 parse + 115 eval)
|
- 2026-05-06: Phase 2 list commands — 12 commands (list/lindex/lrange/llength/lreverse/lsearch/lsort/lreplace/linsert/concat/split/join), 182 tests green (67 parse + 115 eval)
|
||||||
- 2026-05-06: Phase 2 string commands — 16 subcommands (length/index/range/compare/match/toupper/tolower/trim/map/repeat/first/last/is/cat), 156 tests green (67 parse + 89 eval)
|
- 2026-05-06: Phase 2 string commands — 16 subcommands (length/index/range/compare/match/toupper/tolower/trim/map/repeat/first/last/is/cat), 156 tests green (67 parse + 89 eval)
|
||||||
|
|||||||
Reference in New Issue
Block a user