Skip to content

Rewire JSOO pipeline and add online playground#952

Closed
rprimet wants to merge 6 commits intomasterfrom
jsoo_revive
Closed

Rewire JSOO pipeline and add online playground#952
rprimet wants to merge 6 commits intomasterfrom
jsoo_revive

Conversation

@rprimet
Copy link
Contributor

@rprimet rprimet commented Jan 28, 2026

Adds

  • An updated JSOO pipeline
  • A web-based playground

The part that should be critiqued / reviewed most thoroughly is the first commit ( a54be1e ) that targets the ocaml side, since the playground will probably live in catala-book?

Can be tested at https://idyllic-kringle-f90220.netlify.app/learn.html or https://idyllic-kringle-f90220.netlify.app/learn.html?bookBase=https://book.catala-lang.org/fr for the French version

Revives and extends the js_of_ocaml support that previously existed in
a less complete form. Compiles the Catala compiler to JavaScript,
enabling browser-based interpretation of Catala code.

Features:
- Full Catala interpreter running in the browser
- Embedded stdlib (Date, Money, etc.) via ocaml-crunch
- Multi-file support with virtual filesystem for user modules
- Structured error reporting with source positions
- Support for English and French language variants

API exports:
- interpret(code, scope, lang, trace, filename) → result
- registerFile(name, content) / clearFiles() / listFiles()
Interactive browser-based IDE for learning and experimenting with Catala.
Uses the js_of_ocaml web interpreter.

Features:
- Monaco editor with Catala syntax highlighting
- Multi-file editing with module support
- localStorage persistence with checkpoint/reset system
- Internationalization (English/French)
- Side-by-side tutorial mode (learn.html) for the Catala book
- Integration tests with Playwright

Note: This playground is intended to eventually move to the catala-book
repository.
@rprimet
Copy link
Contributor Author

rprimet commented Feb 3, 2026

Splitting in two parts:

Closing this.

@rprimet rprimet closed this Feb 3, 2026
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