purefunctor / purefunctor/purescript-iris
[backend] Productise code generation
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 102
- Forks
- 11
- Avg merge
- 3h 30m
- Merged PRs (30d)
- 138
Description
Architecture
This is a fresh implementation from origin/main; the earlier NbE and SSA experiments are scoping evidence only.
flowchart LR
checked[Checked tree] --> nbe[NbE tree]
nbe --> nbePasses[NbE passes]
nbePasses --> javascriptTree[JavaScript tree]
nbePasses --> ssa[SSA tree]
ssa --> ssaPasses[SSA passes]
ssaPasses --> javascriptTree
javascriptTree --> javascript[JavaScript]
The shared JavaScript crate owns a backend-neutral JavaScript tree and renderer. It does not depend on the NbE or SSA IR crates.
Scope
Add CLI/build integration, output layout, linker/module discovery, and source mapping after both paths execute the corpus. Crate-level build queries are prerequisites and are not deferred to this issue. Decide whether both paths remain user-facing or the direct path becomes an oracle/reference backend.
Acceptance criteria
- A clean checkout can compile and execute a multi-module fixture without test-only host state.
- Output and foreign-module discovery have a documented layout.
- Source maps cover representative generated forms.
- All backend categories pass unfiltered with no pending snapshots.
Dependencies
- #338
- #341
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading dependencies #338 and #341, then trace the checked-tree to JavaScript flow and the shared JavaScript crate described in the architecture. Define the CLI/build, output layout, linker and module-discovery boundaries before implementation. Done means a clean checkout runs the multi-module fixture, documents output and foreign-module discovery, produces representative source maps, and passes all backend categories without pending snapshots.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, rust
- Domain
- build-system, cli, compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100