Skip to content

feat(ir): add deterministic AST-to-IR lowering - #18

Merged
ofabiodev merged 8 commits into
mainfrom
add-ir-lowering
Aug 8, 2026
Merged

feat(ir): add deterministic AST-to-IR lowering#18
ofabiodev merged 8 commits into
mainfrom
add-ir-lowering

Conversation

@ofabiodev

Copy link
Copy Markdown
Contributor

Summary

Adds the v0.1 intermediate representation and deterministic lowering from validated Puff programs into compiler-oriented IR.

Changes

  • Add IR models for modules, namespaces, globals, functions, tags, commands, values, references, and structured text.
  • Lower the v0.1 target program, including load/tick handlers, core.send, interpolation, parameters, and global identities.
  • Add AST/IR goldens, boundary tests, deterministic ordering checks, and lowering regression coverage.

Testing

cd src
go test ./...
go test ./internal/lower -shuffle=on -count=50
go vet ./...
cd ..
make test
make check

@ofabiodev ofabiodev added kind/feature New behavior or capability. kind/test Tests, fixtures, golden files, or test infrastructure. area/ast AST structure, nodes, and source mapping. area/ir Intermediate representation and lowering. puff/interpolation String interpolation, escapes, and string tokenization. labels Aug 8, 2026
@ofabiodev
ofabiodev merged commit 2dfbd4e into main Aug 8, 2026
2 checks passed
@ofabiodev
ofabiodev deleted the add-ir-lowering branch August 8, 2026 13:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ast AST structure, nodes, and source mapping. area/ir Intermediate representation and lowering. kind/feature New behavior or capability. kind/test Tests, fixtures, golden files, or test infrastructure. puff/interpolation String interpolation, escapes, and string tokenization.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant