|
|
This page is a working document about adding a JavaScript backend to GHC.
|
|
|
|
|
|
This feature has been implemented in [GHCJS](https://github.com/ghcjs/ghcjs) and already has users. GHCJS relies on a GHC fork and our proposal is to integrate GHCJS into GHC.
|
|
|
|
|
|
- tracking ticket: <https://gitlab.haskell.org/ghc/ghc/-/issues/21078>
|
|
|
- target release: 9.6
|
|
|
- process: development happens in [js-staging](https://gitlab.haskell.org/ghc/ghc/-/tree/wip/js-staging) branch (regularly rebased on `master`). We hope to get it merged when the following conditions are met:
|
|
|
1. it can produce a working HelloWorld example: DONE
|
|
|
2. the branch is clean enough (documentation, etc.): WIP
|
|
|
3. it passes the testsuite: WIP
|
|
|
4. it passes reviews
|
|
|
This page is a working document about the JavaScript backend in GHC and is regularly updated. The JavaScript backend has been implemented (cc25d52e0f65d54c052908c7d91d5946342ab88a) as of GHC 9.6.
|
|
|
|
|
|
## Current status and supported features
|
|
|
- [ ] (cc25d52e0f65d54c052908c7d91d5946342ab88a) Boot libraries build
|
|
|
- [ ] (394b91ce859653231813fb9af77c26664063c1b6) gitlab CI tests the backend
|
|
|
- [ ] (In progress: !9779) Template Haskell
|
|
|
- [ ] FFI: foreign imports
|
|
|
- [ ] FFI: foreign exports
|
|
|
- [ ] Dom integration
|
|
|
- [ ] Perf: compactor is implemented
|
|
|
- [ ] Perf: optimizer is implemented
|
|
|
|
|
|
## Roadmap
|
|
|
TODO
|
|
|
|
|
|
## Build Requirements
|
|
|
The following have to be on your `$PATH`.
|
... | ... | |