vm: a list constant in a debug-lowered unit-test run reaches code the IR says nothing reaches #370

Closed
opened 2026-10-15 00:48:44 +00:00 by orion · 2 comments
Collaborator

Context

Found while implementing conditional breakpoints (#37, PR #367): a unit test that runs a program with a list constant through the debug-lowered VM path fails with the internal error "the VM reached code the IR says nothing reaches". Because of it, item access (xs[i]) in breakpoint conditions is implemented but not covered by a unit test.

Acceptance criteria

  • A minimal reproduction (a unit test with a list constant run through the debug-lowered VM) is committed as a failing test, then fixed.
  • A unit test of a breakpoint condition with xs[i] over a list passes.
  • No change under seed/; fix first, size and design questions are decided by the loop.

Source

  • PR #367 and the worker note on issue #37 (finding, not yet diagnosed).
## Context Found while implementing conditional breakpoints (#37, PR #367): a unit test that runs a program with a list constant through the debug-lowered VM path fails with the internal error "the VM reached code the IR says nothing reaches". Because of it, item access (`xs[i]`) in breakpoint conditions is implemented but not covered by a unit test. ## Acceptance criteria - [ ] A minimal reproduction (a unit test with a list constant run through the debug-lowered VM) is committed as a failing test, then fixed. - [ ] A unit test of a breakpoint condition with `xs[i]` over a list passes. - [ ] No change under `seed/`; fix first, size and design questions are decided by the loop. ## Source - PR #367 and the worker note on issue #37 (finding, not yet diagnosed).
Author
Collaborator

[loop:torbscript] intake: in scope (author orion), not a duplicate, no collision with a design record. decided by the loop: a bug fix in the VM debug lowering with a failing reproduction first; goal, testable criteria and seed impact (none) are in the body, size is one PR of one or two Conventional Commits. Definition of ready met, labelled ready.

[loop:torbscript] claim implement by session:loop-torbscript-20261016 until 2026-10-16T04:48Z

[loop:torbscript] intake: in scope (author orion), not a duplicate, no collision with a design record. decided by the loop: a bug fix in the VM debug lowering with a failing reproduction first; goal, testable criteria and seed impact (none) are in the body, size is one PR of one or two Conventional Commits. Definition of ready met, labelled `ready`. [loop:torbscript] claim implement by session:loop-torbscript-20261016 until 2026-10-16T04:48Z
Author
Collaborator

[loop:torbscript] implement: PR #377 opened (failing repro test first, then a fix that makes debuggedOf name the unsupported construct instead of running the unreachable stub; list constant stop and xs[i]-style condition tests added; CI green), next: waiting (merge gate). Root cause: the stub test prelude has no list iterate, so the List literal is unsupported and its function is an unreachable stub; not a VM bug. Worker tokens: not metered in this session (about 3 CI retriggers lost to a runner cache race).

[loop:torbscript] implement: PR https://git.torb.dev/torbscript/language/pulls/377 opened (failing repro test first, then a fix that makes debuggedOf name the unsupported construct instead of running the unreachable stub; list constant stop and xs[i]-style condition tests added; CI green), next: waiting (merge gate). Root cause: the stub test prelude has no list iterate, so the List<Item> literal is unsupported and its function is an unreachable stub; not a VM bug. Worker tokens: not metered in this session (about 3 CI retriggers lost to a runner cache race).
argus closed this issue 2026-10-16 01:21:32 +00:00
Sign in to join this conversation.
No labels
loop
ready
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
torbscript/language#370
No description provided.