Skip to content

Reintroduce JavaScript transpiled backend with Tongues 0.2.4#413

Merged
ldayton merged 10 commits intomainfrom
lily/ci-tongues-direct-install
Mar 25, 2026
Merged

Reintroduce JavaScript transpiled backend with Tongues 0.2.4#413
ldayton merged 10 commits intomainfrom
lily/ci-tongues-direct-install

Conversation

@ldayton
Copy link
Copy Markdown
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.4
  • JS test harness: catch MatchedPairError as parse error

JavaScript passes all 4574 tests end-to-end via Tongues 0.2.4. The other backends (Perl, Ruby, Java) have remaining Tongues codegen issues tracked in ldayton/Tongues.

Closes #414

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
This was referenced Mar 22, 2026
@ldayton ldayton changed the title Reintroduce multi-language transpilation with Tongues Reintroduce JavaScript transpiled backend with Tongues 0.2.4 Mar 25, 2026
ldayton added 2 commits March 25, 2026 13:10
Includes fixes for JS backend: constructor defaults (#321), startswith
pos arg (#324), operator precedence (#333), regex escaping (#322),
template literal backticks (#323), destructuring discard (#326),
isinstance primitives (#325, #327), backtick-heredoc (#352), and
UTF-8 encoding (#334).
@ldayton ldayton merged commit 7f1ef70 into main Mar 25, 2026
1 check passed
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.

JS/Ruby test harnesses should catch MatchedPairError as a parse error

1 participant