Skip to content

Reintroduce multi-language transpilation with Tongues#413

Open
ldayton wants to merge 5 commits intomainfrom
lily/ci-tongues-direct-install
Open

Reintroduce multi-language transpilation with Tongues#413
ldayton wants to merge 5 commits intomainfrom
lily/ci-tongues-direct-install

Conversation

@ldayton
Copy link
Owner

@ldayton ldayton commented Mar 16, 2026

Summary

  • Replace Homebrew-based Tongues install in CI (~2 min) with direct curl from GitHub release (~2-3 sec)
  • Add test harnesses for JavaScript, Python, Java, Perl, and Ruby under tests/transpiled/
  • Add just lang <target> recipe with source-hash caching to transpile and test
  • Bump required Tongues version to 0.2.3

This reintroduces multi-language transpiled backend testing after the major refactor that moved from the in-tree transpiler to Tongues. Currently only Python passes end-to-end; the other backends have Tongues codegen issues to work through.

ldayton added 4 commits March 16, 2026 16:40
Homebrew setup + install was taking ~2 minutes in CI. Replace with two
curl calls to fetch the pre-built JS from the v0.2.3 GitHub release.
GitHub Actions runner doesn't have write access to /usr/local.
Reintroduce transpiled backend testing after the move from the in-tree
transpiler to Tongues. Adds test harnesses for JavaScript, Python, Java,
Perl, and Ruby under tests/transpiled/, with a `just lang <target>`
recipe that transpiles via Tongues with source-hash caching.
@ldayton ldayton changed the title CI: install Tongues from GitHub release instead of Homebrew Reintroduce multi-language transpilation with Tongues Mar 16, 2026
- Add lang-dev target that transpiles using local Tongues source
- Extract _run-lang-tests to share test runner between lang and lang-dev
- Fix toSexp -> to_sexp in JS test harness (Tongues preserves snake_case)
- Set VIRTUAL_ENV="" to suppress uv warning
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