This file is the current actionable backlog. Completed historical refactor steps were intentionally removed so this list stays readable and trustworthy.
- decompose
src/core/assembler.jsinto smaller helper modules- extract validation helpers
- extract operand parsing helpers
- extract serialization / object-output helpers
- extract instruction/directive dispatch helpers
- decompose
src/core/interpreter.jsinto smaller helper modules- extract executable loading helpers
- extract runtime / loop-detection helpers
- extract opcode / trap dispatch helpers
- continue replacing filesystem-heavy tests with pure seam tests where wrapper behavior is not under test
- update local progress notes after major refactor milestones land
- rewrite
docs/assembler.mdto match the current pure-API plus wrapper architecture - rewrite
docs/interpreter.mdto match the current pure-API plus wrapper architecture - rewrite
docs/lcc.mdto match the current orchestration-only role oflcc.js - rewrite
docs/linker.mdto document the new typedLinkerErrorseam and current wrapper-oriented linker flow - expand
src/utils/utils.mdto document:-
errors.js -
fileArtifacts.js -
reportArtifacts.js
-
- label
progress-report.md,progress-report-2.md, andprogress-report-3.mdas historical snapshots
- finish deriving the exact oracle
sextsemantics- explain the transform from the observed oracle outputs in
experiments/sext_sweep.a - explain the transform from the observed oracle outputs in
experiments/sext_boundaries.a - update implementation and tests to match the oracle
- explain the transform from the observed oracle outputs in
- finish
.orgparity work- decide whether to support
.origas a synonym - decide whether to match oracle’s 1-byte
oartifact on.orgassembly failure - add / finalize parity tests for forward-gap, backward-address, and invalid-operand
.org
- decide whether to support
- continue
bp/ debugger parity research- determine whether non-interactive oracle runs always auto-continue after
bp - decide how closely LCC.js should match oracle breakpoint stdout before full debugger parity work
- determine whether non-interactive oracle runs always auto-continue after
- research the original 300-character line-length rule more precisely
- whether comments count
- whether there is a separate true label-length limit
- implement operand type checking more systematically across mnemonics and directives
- decide and document linker output-location behavior for:
- default
link.e - custom
-ooutput
- default
- complete LCC / interpreter flag behavior cleanup and documentation
- verify
-d - verify
-m - verify
-r - verify
-t - verify
-f - verify
-x - verify
-l<loadpt>
- verify
- continue symbolic debugger work
- implement more debugger commands
- decide the intended breakpoint/watchpoint scope for LCC.js
- decide final infinite-loop-to-debugger behavior for CLI mode
- finish linker modernization
- decide whether to add more pure seams beyond
parseObjectModuleBuffer(...) - decide whether linker should remain mostly wrapper-oriented in the short term
- decide whether to add more pure seams beyond
- add more direct edge-case tests for assembler numeric and operand forms
- malformed sign forms
- trailing commas / empty operands
- more malformed offset syntax variants
- add more LCC/linker routing edge-case coverage
- mixed extension link scenarios
-
-oedge cases - custom-named output report behavior
- keep research-marked tests current with oracle findings
- refactor mnemonic / machine-word constants into clearer shared definitions where it improves readability
- add a lightweight benchmark script for large assembly / interpretation runs
- add optional observability hooks for parse/runtime counters if they can stay low-noise