... | ... | @@ -18,28 +18,29 @@ A breakdown of build artifacts a JavaScript cross-compiling GHC produces can be |
|
|
* [ ] Template Haskell (in progress: !9779)
|
|
|
* [ ] FFI: support for "inlined" foreign imports as GHCJS did (JS syntax with named argument placeholders)
|
|
|
* [ ] FFI: support for foreign exports
|
|
|
* [ ] Performance and code size (inprogress, see [IRs](https://gitlab.haskell.org/ghc/ghc/-/wikis/javascript-backend/irs))
|
|
|
* [ ] Performance and code size (in progress, see [IRs](https://gitlab.haskell.org/ghc/ghc/-/wikis/javascript-backend/irs))
|
|
|
|
|
|
## Roadmap
|
|
|
|
|
|
Short term (GHC 9.8):
|
|
|
|
|
|
- Feature: support for Template Haskell (almost done, see !9779)
|
|
|
- Feature: support for Foreign exports
|
|
|
- Perf: optimize generated JS code for size and speed
|
|
|
- Perf: optimize JS backend (make compiler faster)
|
|
|
- Correctness: implement and use a typed JS EDSL in the JS backend itself (in progress, see [#22736](https://gitlab.haskell.org/ghc/ghc/-/issues/22736) for more details)
|
|
|
- Correctness: fix bugs found by the testsuite that have been disabled for now
|
|
|
* [ ] Feature: support for Template Haskell (almost done, see !9779)
|
|
|
* [x] Feature: support for ~~Foreign exports~~ Callbacks (done https://gitlab.haskell.org/ghc/ghc/-/issues/23126)
|
|
|
* [ ] Perf: optimize generated JS code for size and speed
|
|
|
* [ ] Perf: optimize JS backend (make compiler faster)
|
|
|
* [ ] Correctness: implement and use a typed JS EDSL in the JS backend itself (in progress, see [#22736](https://gitlab.haskell.org/ghc/ghc/-/issues/22736) for more details)
|
|
|
* [ ] Correctness: fix bugs found by the testsuite that have been disabled for now (in progress)
|
|
|
|
|
|
Medium term (GHC 9.10):
|
|
|
- FFI: "inlined" foreign imports (JS syntax with named argument placeholders)
|
|
|
- Feature: profiling (CC, eventlog, ticky-ticky, etc.)
|
|
|
- GHCi: GHCi support (including debugger)
|
|
|
- Milestone: ensure that [ghcjs-dom](https://hackage.haskell.org/package/ghcjs-dom) works with the JS backend (no missing feature)
|
|
|
* [ ] FFI: "inlined" foreign imports (JS syntax with named argument placeholders)
|
|
|
* [ ] Feature: profiling (CC, eventlog, ticky-ticky, etc.)
|
|
|
* [ ] GHCi: GHCi support (including debugger)
|
|
|
* [ ] Milestone: ensure that [ghcjs-dom](https://hackage.haskell.org/package/ghcjs-dom) works with the JS backend (no missing feature)
|
|
|
|
|
|
Long term:
|
|
|
- Support for C-sources: idea is to compile via Emscripten and to automatically generate glue code.
|
|
|
- GHCi.js: Haskell code interpreter in the browser
|
|
|
* [ ] Support for C-sources: idea is to compile via Emscripten and to automatically generate glue code.
|
|
|
* [ ] GHCi.js: Haskell code interpreter in the browser
|
|
|
* [ ] Feature: support for Foreign exports
|
|
|
|
|
|
|
|
|
## Further Reading and Demos
|
... | ... | |