Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Replace GHCJS Objectable with GHC Binarywip/js-binary | Josh Meredith | 2022-06-16 | 9 | -486/+404 |
| | |||||
* | Add primop | Sylvain Henry | 2022-06-15 | 1 | -0/+1 |
| | |||||
* | base: fix encoding for JS arch | Sylvain Henry | 2022-06-15 | 1 | -1/+5 |
| | |||||
* | Add primops | Sylvain Henry | 2022-06-15 | 1 | -0/+7 |
| | |||||
* | Temporarily wire-in base's shim | Sylvain Henry | 2022-06-15 | 3 | -23/+768 |
| | | | | | | Use JS_BASE_PATH env var to set base's shim directory (js_base for now) Also minor other changes | ||||
* | JS.Linker: remove dflags includePath workaround. | doyougnu | 2022-06-14 | 1 | -8/+3 |
| | | | | | | | | We implemented a workaround for shims that modified the dynflags includePaths so that the JS backend would find the rts.h file during CPP of shims. Since aebcca98 this is no longer required because we've removed the need for rts.h completely. Thus, this commit reverts that modification. | ||||
* | FFI: desugar every foreign import/export in JS with JS backend | Sylvain Henry | 2022-06-14 | 2 | -8/+11 |
| | | | | | | | It means we also desugar CApi calls into JS. It's probably wrong but instead of generating invalid JS we will only get the failure at runtime when we will use the function. | ||||
* | Add some missing primops (Word32,Int32) | Sylvain Henry | 2022-06-13 | 1 | -13/+53 |
| | | | | | Also fix the rendering of missing primops (they must be z-encoded to avoid having a "#" in their JS name) | ||||
* | Remove unused seqListSpine | Sylvain Henry | 2022-06-13 | 1 | -5/+0 |
| | | | | It isn't used in ghcjs either | ||||
* | Enhance and fix LinkerStats | Sylvain Henry | 2022-06-13 | 2 | -86/+115 |
| | | | | | | | | | | Document and refactor renderLinker Split collectDeps Fix collectDeps Fix linker stats rendering | ||||
* | Linker: add more types | Sylvain Henry | 2022-06-13 | 3 | -63/+85 |
| | | | | Some cleanup | ||||
* | CPP: disable line markers | Sylvain Henry | 2022-06-13 | 1 | -0/+1 |
| | | | | CPP: move option before input filename (to be squashed) | ||||
* | JS.Linker: add shims | Sylvain Henry | 2022-06-13 | 31 | -18/+8637 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GHCJS uses JS files for primitive things like the GC and RTS. We call these JS files "shims". This sequence of commits adds shims from JS and includes them for linking. In addition the shim directory is controlled via an evironment variable JS_RTS_PATH...at least for now. Linker: implement tryReadShimFile Linker: link with shims provided via an env variable Use JS_RTS_PATH to provide a directory into which .js and .js.pp files will be linked into rts.js JS.Linker: add js dir at root, fix js cpp includes JS.gc.pp: remove variadic macro JS.RTS: add rts JS shims files, remove shim CPP RTS: remove the need for rts.h and add rts JS files rts.h only contained a few constants duplicated in the codegen. Let's use the Haskell version as the single source of truth and pass defined values explicitly to cpp command line ("-DXYZ=abc" arguments). Also switch from "raw" (use_cpp_and_not_cc_dash_E = True) to the opposite: in both case we call "cc -E" (meh), but with False the preprocessor doesn't choke one varargs in macros. RTS: remove integer.js.pp We use the native ghc-bignum backend, so we don't need the GMP compatible JS code. In addition, this code was failing to run as it requires the JSBN (https://www.npmjs.com/package/jsbn) "Javascript big number" library, which we don't necessarily have installed. RTS: fix typo in field name RTS: generate CPP macros in Haskell RTS: share common CPP def into CAFs | ||||
* | JS Backend: remove misc. warnings | doyougnu | 2022-06-13 | 5 | -6/+4 |
| | |||||
* | JS Backend: ghcjs_HOST_OS --> js_HOST_ARCH | doyougnu | 2022-06-13 | 3 | -10/+10 |
| | |||||
* | JS: silence haddock warnings | doyougnu | 2022-06-13 | 6 | -11/+18 |
| | |||||
* | JS-Backend: rebased to master 468f919b | doyougnu | 2022-06-13 | 13 | -56/+69 |
| | | | | | | | | | | | | | | | First rebase of the JS-Backend. This rebase includes the JS backend combined with !7442 (new backend design). Unfortunately we have to short circuit the new backend design because the JS backend takes over after STG and not after StgToCmm. What's working: - hadrian builds JS backend - JS backend outputs .js files and "links" them What still has to be done: - JS backend is missing core js libraries as we add these we discover bugs in the linker and js rts. | ||||
* | Hadrian: QuickJS ways [] --> Set | doyougnu | 2022-06-13 | 1 | -3/+3 |
| | |||||
* | Linker: remove JS Shims,tiny GHC.Linker refactor | Sylvain Henry | 2022-06-13 | 1 | -10/+32 |
| | |||||
* | add GHCJS modules to base package | Luite Stegeman | 2022-06-13 | 4 | -0/+1871 |
| | |||||
* | Linker: force less efficient (but working) static encoding | Sylvain Henry | 2022-06-13 | 1 | -3/+8 |
| | |||||
* | ShortText: add singleton | Sylvain Henry | 2022-06-13 | 1 | -0/+5 |
| | |||||
* | Linker: reenable packStrings (not yet implemented though) | Sylvain Henry | 2022-06-13 | 1 | -6/+2 |
| | |||||
* | Linker: deduplication + fixes | Sylvain Henry | 2022-06-13 | 7 | -579/+124 |
| | | | | | | - deduplicate code that was copied from old GHC - explicitly add preloadUnits to the link - avoid calling getShims | ||||
* | Rename u_env into unit_env (more common) | Sylvain Henry | 2022-06-13 | 1 | -7/+8 |
| | |||||
* | Docs: JS.Syntax, JS.Make docs done | doyougnu | 2022-06-13 | 6 | -218/+536 |
| | | | | | | | | | | JS-backend: Add documentation headers Docs: JS.Syntax done Docs: JS.Make done Docs: JS.Make JS.Syntax refined a bit | ||||
* | Add outputable instance for Deps | Sylvain Henry | 2022-06-13 | 1 | -0/+6 |
| | |||||
* | Linker: remove wiring of ghcjs-prim and ghcjs-th | Sylvain Henry | 2022-06-13 | 2 | -95/+40 |
| | | | | They will be replaced by ghc-prim, base, template-haskell, etc. | ||||
* | ghci: Avoid unused-xyz warnings | Sylvain Henry | 2022-06-13 | 1 | -2/+4 |
| | |||||
* | Remove unused ghcjs unit related code | Sylvain Henry | 2022-06-13 | 1 | -30/+0 |
| | |||||
* | Linker: enhance debugging message | Sylvain Henry | 2022-06-13 | 2 | -1/+8 |
| | |||||
* | Outputable: add ShortText instance | Sylvain Henry | 2022-06-13 | 1 | -0/+7 |
| | |||||
* | Codegen: fix symbol names ppr | Sylvain Henry | 2022-06-13 | 1 | -1/+1 |
| | |||||
* | Remove temporary -fjavascript flag | Sylvain Henry | 2022-06-13 | 2 | -36/+0 |
| | |||||
* | RTS: fix build of native rts | Sylvain Henry | 2022-06-13 | 3 | -27/+694 |
| | |||||
* | GHCi.FFI: ignore ffi.h and friends for js-backend | doyougnu | 2022-06-13 | 1 | -4/+35 |
| | |||||
* | fix duplicate module name in symbols | Luite Stegeman | 2022-06-13 | 1 | -6/+4 |
| | |||||
* | fix package name in module name field of system dependencies | Luite Stegeman | 2022-06-13 | 1 | -3/+3 |
| | |||||
* | Configure: fix previous commit | Sylvain Henry | 2022-06-13 | 1 | -4/+4 |
| | |||||
* | Configure: fix echo on Mac, add ghcjs target OS | Sylvain Henry | 2022-06-13 | 1 | -0/+52 |
| | |||||
* | Driver.Main: minor refactor do_code_gen | doyougnu | 2022-06-13 | 1 | -35/+44 |
| | | | | To clearly separate the JS-Backend from any other backend | ||||
* | ghc-heap: Don't compile Cmm file for JS-Backend | doyougnu | 2022-06-13 | 1 | -1/+2 |
| | |||||
* | CodeGen: handle proxy# | Sylvain Henry | 2022-06-13 | 1 | -0/+6 |
| | |||||
* | CodeGen: restore assignAll (instead of assignAllEqual) | Sylvain Henry | 2022-06-13 | 1 | -1/+1 |
| | |||||
* | Stg: expose pprStgAlt | Sylvain Henry | 2022-06-13 | 1 | -1/+1 |
| | |||||
* | CodeGen: remove useless imports | Sylvain Henry | 2022-06-13 | 1 | -2/+0 |
| | |||||
* | Misc: enable HasDebugCallStack for zipWithEqual* | Sylvain Henry | 2022-06-13 | 2 | -6/+7 |
| | |||||
* | CodeGen: better debug message for assignCoerce1 | Sylvain Henry | 2022-06-13 | 1 | -1/+6 |
| | |||||
* | CodeGen: support StackSnapshot# in primTypeVt | Sylvain Henry | 2022-06-13 | 1 | -0/+1 |
| | |||||
* | base: disable forkOS and bound thread machinery | Sylvain Henry | 2022-06-13 | 1 | -2/+33 |
| |