Correct two stale TODO entries that had silently no-op'd
Array references in parameter lists were struck through in an edit that had no assertion on its replacement, so it matched nothing and left the entry reading as open. SOUND's frequency sweep was still listed as gapped after landing on akgl_audio_sweep. Both verified by running them before changing the text. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
15
TODO.md
15
TODO.md
@@ -633,7 +633,7 @@ Order by what unblocks the most, and by what does not need `libakgl` to grow fir
|
|||||||
| ~~G. Graphics~~ | ~~`GRAPHIC`, `DRAW`, `BOX`, `CIRCLE`, `PAINT`, `COLOR`, `SCALE`, `SSHAPE`, `GSHAPE`, `LOCATE`~~ | **done** — `src/runtime_graphics.c`, `tests/graphics_verbs.c` |
|
| ~~G. Graphics~~ | ~~`GRAPHIC`, `DRAW`, `BOX`, `CIRCLE`, `PAINT`, `COLOR`, `SCALE`, `SSHAPE`, `GSHAPE`, `LOCATE`~~ | **done** — `src/runtime_graphics.c`, `tests/graphics_verbs.c` |
|
||||||
| H. Sprites | `SPRITE`, `MOVSPR`, `SPRCOLOR`, `SPRDEF`, `SPRSAV`, `COLLISION` | `libakgl` sprite/actor API — check before filing |
|
| H. Sprites | `SPRITE`, `MOVSPR`, `SPRCOLOR`, `SPRDEF`, `SPRSAV`, `COLLISION` | `libakgl` sprite/actor API — check before filing |
|
||||||
| ~~I. Audio~~ | ~~`PLAY`, `SOUND`, `ENVELOPE`, `VOL`, `TEMPO`~~ | **done** — `src/runtime_audio.c`, `src/play.c`, `tests/audio_verbs.c` |
|
| ~~I. Audio~~ | ~~`PLAY`, `SOUND`, `ENVELOPE`, `VOL`, `TEMPO`~~ | **done** — `src/runtime_audio.c`, `src/play.c`, `tests/audio_verbs.c` |
|
||||||
| I′. Audio, still gapped | `FILTER`, `SOUND`'s sweep arguments | `libakgl` has neither; both refused with `AKBASIC_ERR_DEVICE`, both filed in §7 |
|
| I′. Audio, still gapped | `FILTER` | `libakgl` has no filter stage and SDL3 supplies no primitive; refused with `AKBASIC_ERR_DEVICE`. `SOUND`'s sweep arguments used to be here and landed with `akgl_audio_sweep` in libakgl 0.3.0 |
|
||||||
| ~~E′. Console input~~ | ~~`GET`, `GETKEY`, `SCNCLR`~~ | **done** — `src/runtime_input.c`, `tests/input_verbs.c` |
|
| ~~E′. Console input~~ | ~~`GET`, `GETKEY`, `SCNCLR`~~ | **done** — `src/runtime_input.c`, `tests/input_verbs.c` |
|
||||||
| J. Machine | `SYS`, `FETCH`, `STASH`, `POKE`/`PEEK` variants | nothing |
|
| J. Machine | `SYS`, `FETCH`, `STASH`, `POKE`/`PEEK` variants | nothing |
|
||||||
|
|
||||||
@@ -683,12 +683,13 @@ Also on the queue, from the reference's own defect list:
|
|||||||
it is waiting for, so a `NEXT` on the same line as its `FOR` is never reached. Fixing it means
|
it is waiting for, so a `NEXT` on the same line as its `FOR` is never reached. Fixing it means
|
||||||
restructuring control flow to work on statements rather than lines, which is a deliberate
|
restructuring control flow to work on statements rather than lines, which is a deliberate
|
||||||
piece of work and wants its own commit. Group A's `DO`/`LOOP` will meet the same wall.
|
piece of work and wants its own commit. Group A's `DO`/`LOOP` will meet the same wall.
|
||||||
- **Array references in parameter lists** (`READ A$(0), B#`) currently fail to parse. This is
|
- ~~**Array references in parameter lists**~~ **Done**, and it turned out to be §6 item 13 a
|
||||||
the *same collision* §6 item 13 was, one field along: an identifier keeps its subscript list
|
third time rather than a separate defect. An identifier's subscript list moved to `.expr`, and
|
||||||
on `.right`, which is also where an argument list chains its arguments. That item was fixed by
|
`akbasic_ASTLeaf` grew a `next` field so an argument list chains through a link of its own.
|
||||||
moving a unary leaf's operand to `.left`; the same move very likely works here, since an
|
That last part is the real fix: the reference chains arguments through each argument's own
|
||||||
identifier leaf has no other use for the field either. Fix in `akbasic_parser_primary` and
|
`.right`, and *every* leaf type that can be an argument already uses `.right` for something,
|
||||||
`akbasic_leaf_first_subscript`.
|
so moving one operand out of the way only shifted the collision along. Covered by
|
||||||
|
`tests/language/arrays_in_parameter_lists.bas` and `tests/runtime_evaluate.c`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user