Skip to content

refactor(compilers)!: rename frontend→compiler and backend→emitter - #5

Merged
OmarAlJarrah merged 2 commits into
mainfrom
refactor/compilers-emitters
Jul 20, 2026
Merged

refactor(compilers)!: rename frontend→compiler and backend→emitter#5
OmarAlJarrah merged 2 commits into
mainfrom
refactor/compilers-emitters

Conversation

@OmarAlJarrah

@OmarAlJarrah OmarAlJarrah commented Jul 20, 2026

Copy link
Copy Markdown
Member

Summary

Aligns the package layout with the pipeline vocabulary used throughout the design docs: compilers → passes → emitters. Previously the spec→IR layer was named frontend and the IR→artifact layer backend, which didn't match the terms the docs, architecture, and CLI describe.

  • Move frontend/compilers/; Frontend.Parse becomes Compiler.Compile (the verb is now "compile").
  • Rename the emitter-contract identifiers in the design docs (BackendInput/OutputEmitterInput/EmitterOutput). No emitter code exists yet — this is a docs-only rename that keeps the future contract's vocabulary consistent.
  • Rename the CLI subcommand parsecompile (see Breaking below).
  • Prose/docs sweep, including docs/backend-design.mddocs/emitter-design.md and the architecture layering tables.
  • Stop tracking the local session-development planning docs under docs/superpowers/ (added to .gitignore, removed from the index; files remain on disk).

The IR is untouched: golden IR payloads are byte-identical (IDs derive from source pointers, not package names), so no library or IR behavior changes. The one observable change is the CLI subcommand name.

Breaking

The CLI subcommand is renamed parsecompile. morphic parse <spec> now reports unknown command "parse"; invoke morphic compile <spec> instead. Flags and output are unchanged. No released binary exists yet, so no published interface is affected.

Test plan

  • gofmt -l clean on all first-party packages
  • go vet ./... clean
  • go test ./... — all packages pass
  • Architecture import-graph test still green under the new package names
  • Coverage unchanged (100% held on the branch)

🤖 Generated with Claude Code

OmarAlJarrah and others added 2 commits July 20, 2026 18:34
Rename the spec→IR pipeline layer from "frontend" to "compilers" (with
the verb "compile") and the IR→artifact layer from "backend" to
"emitters", so the package names match the pipeline vocabulary used in the
design docs (compilers → passes → emitters).

- Move frontend/ to compilers/; Frontend.Parse becomes Compiler.Compile.
- Rename the emitter contract identifiers (EmitterInput/EmitterOutput).
- Rename the CLI subcommand from "parse" to "compile".
- Sweep prose and docs, renaming docs/backend-design.md to
  docs/emitter-design.md and updating the architecture layering.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The planning documents under docs/superpowers/plans/ are local
session-development artifacts that should not live in version control.
Add docs/superpowers/ to .gitignore and remove the previously committed
plan files from the index (they remain on disk).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@OmarAlJarrah OmarAlJarrah changed the title refactor(compilers): rename frontend→compiler and backend→emitter refactor(compilers)!: rename frontend→compiler and backend→emitter Jul 20, 2026
@OmarAlJarrah
OmarAlJarrah merged commit ea3292c into main Jul 20, 2026
1 check passed
@OmarAlJarrah
OmarAlJarrah deleted the refactor/compilers-emitters branch July 20, 2026 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant