Skip to content

feat(cli): Phase D — compile-eph / compile-affine aliases (closes #36)#78

Merged
hyperpolymath merged 1 commit into
mainfrom
salvage/phase-d-compile-aliases
May 16, 2026
Merged

feat(cli): Phase D — compile-eph / compile-affine aliases (closes #36)#78
hyperpolymath merged 1 commit into
mainfrom
salvage/phase-d-compile-aliases

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Closes #36

clap visible aliases so the CLI runs as compile-eph / compile-affine,
both routing to compile. Probed by hypatia's build-gossamer-gui.yml.

Provenance

Salvaged from the diverged local v2-grammar branch (was ahead 10 / behind 2
on main). That branch's extern/v2-grammar phases (A/B/C/E/F–H/I/J) are
deliberately not included: main already shipped a more complete extern
implementation with a different API (Extern { abi, items, span } + full
desugar + cross-module registry), so replaying them would be a re-port, not
a merge. Only the genuinely-net-new, upstream-compatible Phase D is taken.

Contents

  • src/ephapax-cli/src/main.rsvisible_alias for compile-eph / compile-affine
  • src/ephapax-cli/Cargo.tomlwasmparser dev-dep (test asserts wasm magic)
  • tests/v2-grammar/fixtures/extern-callsite.eph — carried from the dropped
    Phase B commit (6f7f316) so the acceptance test is self-contained

Verification

  • cargo build -p ephapax-cli — clean on current main
  • cargo test -p ephapax-cli --test v2_grammar_phase_d_aliases2/2 pass
  • extern-callsite.eph compiles to valid wasm (\0asm, 702 bytes) via both aliases

The full local v2-grammar branch is retained locally (not lost); re-porting
the remaining phases onto main's extern API is a separate author-led effort.

🤖 Generated with Claude Code

clap visible aliases so the CLI can be invoked as `compile-eph` and
`compile-affine`, both routing to the `compile` subcommand. Probed by
hypatia's build-gossamer-gui.yml workflow.

Salvaged from the diverged ephapax v2-grammar branch onto current main.
The superseded v2 extern/grammar phases (A/B/C/E/F-H/I/J) are NOT included
— upstream main already ships a more complete extern implementation with a
different API. The single test fixture `tests/v2-grammar/fixtures/
extern-callsite.eph` is carried from the dropped Phase B commit (6f7f316)
so the Phase D acceptance test is self-contained; verified to compile to
valid wasm on current main via the new aliases.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath hyperpolymath merged commit b145c02 into main May 16, 2026
11 checks passed
@hyperpolymath hyperpolymath deleted the salvage/phase-d-compile-aliases branch May 16, 2026 16:33
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.

Expose a stage-1 .eph -> .wasm CLI subcommand

1 participant