[Git][ghc/ghc][wip/js-staging] 497 commits: Remove source location information from interface files

Sylvain Henry (@hsyl20) gitlab at gitlab.haskell.org
Fri Oct 28 07:59:25 UTC 2022



Sylvain Henry pushed to branch wip/js-staging at Glasgow Haskell Compiler / GHC


Commits:
223e159d by Owen Shepherd at 2022-10-27T13:54:33-04:00
Remove source location information from interface files

This change aims to minimize source location information leaking
into interface files, which makes ABI hashes dependent on the
build location.

The `Binary (Located a)` instance has been removed completely.

It seems that the HIE interface still needs the ability to
serialize SrcSpans, but by wrapping the instances, it should
be a lot more difficult to inadvertently add source location
information.

- - - - -
22e3deb9 by Simon Peyton Jones at 2022-10-27T13:55:37-04:00
Add missing dict binds to specialiser

I had forgotten to add the auxiliary dict bindings to the
/unfolding/ of a specialised function.  This caused #22358,
which reports failures when compiling Hackage packages
     fixed-vector
     indexed-traversable

Regression test T22357 is snarfed from indexed-traversable

- - - - -
a8ed36f9 by Evan Relf at 2022-10-27T13:56:36-04:00
Fix broken link to `async` package

- - - - -
750846cd by Zubin Duggal at 2022-10-28T00:49:22-04:00
Pass correct package db when testing stage1.

It used to pick the db for stage-2 which obviously didn't work.

- - - - -
ad612f55 by Krzysztof Gogolewski at 2022-10-28T00:50:00-04:00
Minor SDoc-related cleanup

* Rename pprCLabel to pprCLabelStyle, and use the name pprCLabel
  for a function using CStyle (analogous to pprAsmLabel)
* Move LabelStyle to the CLabel module, it no longer needs to be in Outputable.
* Move calls to 'text' right next to literals, to make sure the text/str
  rule is triggered.
* Remove FastString/String roundtrip in Tc.Deriv.Generate
* Introduce showSDocForUser', which abstracts over a pattern in
  GHCi.UI

- - - - -
34dcd651 by Josh Meredith at 2022-10-28T09:20:58+02:00
Add ghcjs changes to deriveConstants:

- change String targetOS option in deriveConstants to an enum
- separate out getWantedGHSJS, removing generated c file in this path

- - - - -
a9a7029d by doyougnu at 2022-10-28T09:20:58+02:00
Add JavaScript code generator

Adapt code generator of GHCJS to GHC head. Currently it is only enabled
with the hidden -fjavascript flag. It produces .o files that can't be
used yet except by GHCJS's linker.

Codegen: doc

Codegen: correctly return linkable object

Now we can build a static library (-staticlib)

Codegen: doc genLit

Codegen: use assignAll

Codegen: introduce TypedExpr

Refactor assignAll et al, add documentation

Codegen: minor changes

Doc

- - - - -
599d3fc3 by doyougnu at 2022-10-28T09:20:58+02:00
Add JS.Rts

JS.Rts: compiles

reword: progress on RtsTypes

StgToJS.Config: add SDoc Context

JSRts: move ppr, workaround def type

JSRts.Types: compiles

JS.Rts: closer to compiling

JS.Rts: move jsIdIdent' to StgToJS.Monad

JS.Rts: remove unused predicates

JS: cleanup, comment sections, math funcs to Make

JS.Rts.Types: compiles

StgToJS.Expr: fix compilation errors

StgToJS.DataCon: move initClosure

JS.Rts: remove Alloc module

JS.Rts: initalize Rts module, remove redundant fs

JS: init Rts.Alloc move initClosure

JS.Apply: unwinding combinators in progress

JS: add helpers and fixmes

JS.Rts.Apply: no more e's, add closure, reg helper

StgToJS: add ToStat instance ClosureInfo

JS.Rts.Apply: closer to compiling

JS.Rts.Apply: more removal of #

JS.Rts.Apply: (#) removed

JS.Rts.Apply: compiles

JS.Rts.Rts: just pretty printing left

JS.Rts: Add Notes

JS.Rts: add file headers and notes

JS.Rts.Rts: fixing stringy issues

JS.Rts.Rts: compiles

JS.Rts.Rts: fix non-exhaustive patterns warnings

- - - - -
60464a64 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Doc has been moved into GHC.StgToJs top-level module

- - - - -
edd3fdf6 by Sylvain Henry at 2022-10-28T09:20:58+02:00
JS.Rts; refactoring and move to StgToJS

* add closure manipulation helpers and use them in Apply
* add cache (Array) for pre-generated PAP names
* reduce line length:
  * use BlockArguments instead of parens
  * remove implicit mconcat in jVar's body

Rts: more refactorings

Rts: move into StgToJS hierarchy

- - - - -
0c0c7663 by Sylvain Henry at 2022-10-28T09:20:58+02:00
JS: cleanup, renaming, better module layout

Various degrees of cleanup adapting GHCJS to GHC. We move several
functions to CoreUtils, remove duplication between the JS.Rts.Apply and
Apply module and factor out closure related code into a Closure module
for cohesion.

Deduplicate code between Rts.Apply and Apply

Move might_be_a_function into CoreUtils

Factorize closure stuff into Closure module

Rename closureExtra into closureField

Minor renamings, comments...

- - - - -
8a68172b by Sylvain Henry at 2022-10-28T09:20:58+02:00
JS.Backend: add FFI code but don't implement yet

FFI: don't crash on JavaScript foreign imports

Note that they are still not desugared properly!!

But the following cmd doesn't crash anymore:

  ghc -fjavascript Test.hs -fforce-recomp -ddump-tc -fno-code -ddump-ds

FFI: adapt GHCJS desugarer

FFI: support direct application

The following example:

  foo :: Int# -> Int#
  foo = add 50000#

  foreign import javascript
    "(function(x,y) { return (x + y) })"
    add :: Int# -> Int# -> Int#

is compiled into an application like this:

  var h$mainZCMzifoozur2_e;
  h$mainZCMzifoozur2_e = (function()
                            {
                            var h$mainZCMziaddzur1;
                            h$mainZCMziaddzur1 = h$r1.d1;
                            var h$$mainZCMzietazuB0_8KXnScrCjF5;
                            h$$mainZCMzietazuB0_8KXnScrCjF5 = h$r2;
                            h$r3 = h$$mainZCMzietazuB0_8KXnScrCjF5;
                            h$r2 = 50000;
                            h$r1 = h$mainZCMziaddzur1;
                            return h$ap_2_2_fast();
                            return h$rs();
                          });
  var h$mainZCMziaddzur1_e;
  h$mainZCMziaddzur1_e = (function()
                            {
                            var h$$mainZCMzidszusAk_236l8r0P8S9;
                            h$$mainZCMzidszusAk_236l8r0P8S9 = h$r2;
                            var h$$mainZCMzids1zusAl_336l8r0P8S9;
                            h$$mainZCMzids1zusAl_336l8r0P8S9 = h$r3;
                            var h$$mainZCM_2;
                            var h$$mainZCMziwildzusAn_536l8r0P8S9;
                            try
                              {
                              h$$mainZCMziwildzusAn_536l8r0P8S9 = (function(x,y) { return (x + y) })(h$$mainZCMzidszusAk_236l8r0P8S9, h$$mainZCMzids1zusAl_336l8r0P8S9)
                            }
                            catch(except)
                              {
                              return h$throwJSException(except)
                            };
                            var h$$mainZCMzids3zusAp_736l8r0P8S9;
                            h$$mainZCMzids3zusAp_736l8r0P8S9 = h$$mainZCMziwildzusAn_536l8r0P8S9;
                            h$r1 = h$$mainZCMzids3zusAp_736l8r0P8S9;
                            return h$rs();
                          });

FFI: correctly dispatch for foreign exports too

FFI: move C FFI desugaring into its own module

FFI: avoid DynFlags in toJsName (copy of toCName)

- - - - -
ead9c5d7 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Configure: preliminary support for triple js-unknown-ghcjs

- - - - -
eb6b16b6 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Driver: enable JS backend by default for JS arch

- - - - -
8ad12b64 by doyougnu at 2022-10-28T09:20:58+02:00
JS.Backend: Add JS specific Linker

JS: initialize Linker, DynamicLinking

JS.Printer: adapted to GHC Head

JS.Printer: some cleanup and init Printer

StgToJS.Printer: Compiles

JS.Linker: Add types, expose JS keywords

JS.Syntax: add Binary instance on Ident's

JS.Linker: Migrate more Types to Data.Binary

JS.Linker.Types: compiles and adapted to GHC Head

JS.Linker.Types: compiles

JS.Linker.Types: add UseBase type

JS.Linker: Comments and Cleanup

JS.Linker.Types: add TH types, Env type, DepsLoc

JS.Linker: more FIXMEs numerous Linker fixes

JS.Linker: removed Text references

JS.UnitUtils: add package related helper functions

JS.Linker: more DynFlags removal

JS.Linker: Time for semantic errors

JS.Linker: DynFlags finally removed

JS.Linker: 107 compile errors to go

JS.Linker.Utils: initialized, adapted to GHC Head

JS.Linker.Utils: initialize Utils module

JS.Linker.Utils: more utils

JS.Rts: move rtsText to Rts

JS.Linker: linkerStats implemented

JS.Compactor: compiles, adapted to GHC Head

JS.Compactor: have to retrofit compact for linker

JS.Linker.Compactor: unwinding lenses

JS.Linker.Compactor: comments over addItem

JS.Linker.Compactor: Lenses removed

JS.Linker.Compactor: SHA256 removed

JS.Linker.Compactor: only missing instances left

JS.Linker.Compactor: compiles

JS.Linker: compiles, adapted to ghc Head

JS.Linker: More progress

JS.Linker: link in memory compiles

JS.Linker: just shims left

JS.Linker.DynamicLinking compiles: adapted to head

JS.Linker.DynamicLinking: initialization

JS.Linker.DynamicLinking: compiles up to Variants

JS.Variants: initialize

JS.Linker: numerous and various fixes

JS.Linker.DynamicLinking: only small errors left

JS.Linker.Archive: compiles, adapted to GHC Head

JS.Linker: initialize Archive compat module

JS.Linker.Archive: minor fixes

JS.Linker.DynamicLinking: compiles

JS.Linker: cleanup, remove Variants, add comments

fixup: more cleanup

JS.Linker: more cleanup and comments

- - - - -
013247d5 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Minor panic fix

- - - - -
3eb01bae by Sylvain Henry at 2022-10-28T09:20:58+02:00
Linker: fix stage2 build

- - - - -
48dff54f by Sylvain Henry at 2022-10-28T09:20:58+02:00
Configure: Add support fo JS as unregistered ABI

Configure: detect emscripten tools

e.g. on ArchLinux:

  EMSDK=/usr/lib/emscripten EMSDK_LLVM=/opt/emscripten-llvm ./configure --target=js-unknown-ghcjs

Configure: detect nm tool too, required by Hadrian

Configure: make StgToJS use non-unregisterised ABI

It should probably be a third kind of ABI...

- - - - -
804b56b5 by doyougnu at 2022-10-28T09:20:58+02:00
JS.Linker: Hook up to GHC.Driver.Pipeline

JS.Linker.Types: Add newGhcjsEnv function

JS.UnitUtils: fix encodeModule api

JS.Linker: more removal of HscEnv

JS.Linker: hooked into GHC.Driver.Pipeline

- - - - -
9f59732c by Sylvain Henry at 2022-10-28T09:20:58+02:00
VERY WIP Hadrian/rts fixes

export EMSDK_LLVM=/opt/emscripten-llvm
export EMSDK=/usr/lib/emscripten
export PATH=./inplace/ghcjs_toolchain/bin:$PATH

./configure --target=js-unknown-ghcjs
./hadrian/build --flavour=quick-js -j --bignum=native --docs=none -V

- - - - -
e6d78ca3 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Force creation of rts library with dummy file

- - - - -
b87a3c26 by Sylvain Henry at 2022-10-28T09:20:58+02:00
ghc-prim: avoid building C files

- - - - -
3f9bccab by Sylvain Henry at 2022-10-28T09:20:58+02:00
Hadrian: disable -fllvm

- - - - -
82c0965c by Sylvain Henry at 2022-10-28T09:20:58+02:00
JS: fix caches

Note that the fact that we need index 0 may hide another issue...

- - - - -
98de4516 by Sylvain Henry at 2022-10-28T09:20:58+02:00
codegen: enhance genCon debug message

- - - - -
90b0c34c by Sylvain Henry at 2022-10-28T09:20:58+02:00
RTS: fix stupid comment

- - - - -
2d7c014e by Sylvain Henry at 2022-10-28T09:20:58+02:00
RTS: embed headers

- - - - -
291487e4 by Sylvain Henry at 2022-10-28T09:20:58+02:00
JS.StgToJS: add documentation header for JS Types

- - - - -
5b931055 by Sylvain Henry at 2022-10-28T09:20:58+02:00
CodeGen: refactor ExprCtx code

- - - - -
f77fa3cb by Sylvain Henry at 2022-10-28T09:20:58+02:00
CodeGen: cache LNE frame size

- - - - -
6f883f4a by doyougnu at 2022-10-28T09:20:58+02:00
JS.Types: Add Outputable for TypedExpr

- - - - -
9411098b by doyougnu at 2022-10-28T09:20:58+02:00
JS.CoreUtils: handle IOPort case

- - - - -
2cce58fe by doyougnu at 2022-10-28T09:20:58+02:00
JS.Expr: Fix unhandled datacon for RuntimeRep

- - - - -
38a17579 by doyougnu at 2022-10-28T09:20:58+02:00
JS.Literals: Adapt genLit to new Literal domain

- - - - -
d2f1162a by Sylvain Henry at 2022-10-28T09:20:58+02:00
RTS: expose more headers (required to build base)

- - - - -
01211eb1 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Base: don't build C and Cmm sources with ghcjs

- - - - -
0293a69c by Sylvain Henry at 2022-10-28T09:20:58+02:00
Tentatively set NO_REGS for JS platforms

- - - - -
c99dc53c by Sylvain Henry at 2022-10-28T09:20:58+02:00
CodeGen: output LitRubbish as null JS values

- - - - -
08fa3559 by Sylvain Henry at 2022-10-28T09:20:58+02:00
base: disable forkOS and bound thread machinery

- - - - -
b85a92d0 by Sylvain Henry at 2022-10-28T09:20:58+02:00
CodeGen: support StackSnapshot# in primTypeVt

- - - - -
388ddfee by Sylvain Henry at 2022-10-28T09:20:58+02:00
CodeGen: better debug message for assignCoerce1

- - - - -
8f18b96e by Sylvain Henry at 2022-10-28T09:20:58+02:00
Misc: enable HasDebugCallStack for zipWithEqual*

- - - - -
6e4549a9 by Sylvain Henry at 2022-10-28T09:20:58+02:00
CodeGen: remove useless imports

- - - - -
514ca58a by Sylvain Henry at 2022-10-28T09:20:58+02:00
Stg: expose pprStgAlt

- - - - -
9b9d587c by Sylvain Henry at 2022-10-28T09:20:58+02:00
CodeGen: restore assignAll (instead of assignAllEqual)

- - - - -
0b9f2171 by Sylvain Henry at 2022-10-28T09:20:58+02:00
CodeGen: handle proxy#

- - - - -
0395052c by doyougnu at 2022-10-28T09:20:58+02:00
ghc-heap: Don't compile Cmm file for JS-Backend

- - - - -
b015dd1a by doyougnu at 2022-10-28T09:20:58+02:00
Driver.Main: minor refactor do_code_gen

To clearly separate the JS-Backend from any other backend

- - - - -
ea9e18a0 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Configure: fix echo on Mac, add ghcjs target OS

- - - - -
7612d730 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Configure: fix previous commit

- - - - -
ed0821ef by Luite Stegeman at 2022-10-28T09:20:58+02:00
fix package name in module name field of system dependencies

- - - - -
1721429b by Luite Stegeman at 2022-10-28T09:20:58+02:00
fix duplicate module name in symbols

- - - - -
f521e90b by doyougnu at 2022-10-28T09:20:58+02:00
GHCi.FFI: ignore ffi.h and friends for js-backend

- - - - -
74430706 by Sylvain Henry at 2022-10-28T09:20:58+02:00
RTS: fix build of native rts

- - - - -
eefc06c9 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Remove temporary -fjavascript flag

- - - - -
d790fd2e by Sylvain Henry at 2022-10-28T09:20:58+02:00
Codegen: fix symbol names ppr

- - - - -
269d11b4 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Outputable: add ShortText instance

- - - - -
af46e610 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Linker: enhance debugging message

- - - - -
3b033355 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Remove unused ghcjs unit related code

- - - - -
ebad8d35 by Sylvain Henry at 2022-10-28T09:20:58+02:00
ghci: Avoid unused-xyz warnings

- - - - -
a2ad6871 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Linker: remove wiring of ghcjs-prim and ghcjs-th

They will be replaced by ghc-prim, base, template-haskell, etc.

- - - - -
493ef0d0 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Add outputable instance for Deps

- - - - -
c903eef9 by doyougnu at 2022-10-28T09:20:58+02:00
Docs: JS.Syntax, JS.Make docs done

JS-backend: Add documentation headers

Docs: JS.Syntax done

Docs: JS.Make done

Docs: JS.Make JS.Syntax refined a bit

- - - - -
3dac6005 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Rename u_env into unit_env (more common)

- - - - -
0af062e2 by Sylvain Henry at 2022-10-28T09:20:58+02:00
Linker: deduplication + fixes

- deduplicate code that was copied from old GHC
- explicitly add preloadUnits to the link
- avoid calling getShims

- - - - -
edcd7ede by Sylvain Henry at 2022-10-28T09:20:59+02:00
Linker: reenable packStrings (not yet implemented though)

- - - - -
b91063a4 by Sylvain Henry at 2022-10-28T09:20:59+02:00
ShortText: add singleton

- - - - -
763fa395 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Linker: force less efficient (but working) static encoding

- - - - -
2bcac11a by Luite Stegeman at 2022-10-28T09:20:59+02:00
add GHCJS modules to base package

- - - - -
1bc78194 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Linker: remove JS Shims,tiny GHC.Linker refactor

- - - - -
54676e47 by doyougnu at 2022-10-28T09:20:59+02:00
Hadrian: QuickJS ways [] --> Set

- - - - -
cb772beb by doyougnu at 2022-10-28T09:20:59+02:00
JS-Backend: rebased to master 468f919b

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.

- - - - -
1867b328 by doyougnu at 2022-10-28T09:20:59+02:00
JS: silence haddock warnings

JS Backend: remove misc. warnings

- - - - -
be13528f by doyougnu at 2022-10-28T09:20:59+02:00
JS Backend: ghcjs_HOST_OS --> js_HOST_ARCH

- - - - -
4db6ed09 by Sylvain Henry at 2022-10-28T09:20:59+02:00
JS.Linker: add shims

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

- - - - -
cba59ecd by Sylvain Henry at 2022-10-28T09:20:59+02:00
Linker: add more types

Some cleanup

Enhance and fix LinkerStats

Document and refactor renderLinker

Split collectDeps

Fix collectDeps

Fix linker stats rendering

Remove unused seqListSpine

It isn't used in ghcjs either

- - - - -
8aea5629 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Add some missing primops (Word32,Int32)

Also fix the rendering of missing primops (they must be z-encoded to
avoid having a "#" in their JS name)

- - - - -
c276a565 by Sylvain Henry at 2022-10-28T09:20:59+02:00
FFI: desugar every foreign import/export in JS with JS backend

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.

fixup

- - - - -
fd090fe7 by doyougnu at 2022-10-28T09:20:59+02:00
JS.Linker: remove dflags includePath workaround.

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.

- - - - -
d62c086c by Sylvain Henry at 2022-10-28T09:20:59+02:00
Temporarily wire-in base's shim

Use JS_BASE_PATH env var to set base's shim directory (js_base for now)

Also minor other changes

base: fix encoding for JS arch

- - - - -
2ff33840 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Add primops

Add primop

- - - - -
c1d46c64 by doyougnu at 2022-10-28T09:20:59+02:00
Make Shims type, refactor JS Linker

This commit:
 - Adds a proper Shim type and associated utilities. These utitlies are
 purposefully limited to ensure the ShimLbl tag is preserved thus
 guarenteeing shim ordering at link time.
 - Refactors the JS backend linker to use this ordering and Shim API.
 The ordering is not correct (yet!) but with this API its much easier to
 triage, experiment and diagnose link time issues.

Refactor linker to compile time shim ordering

- - - - -
c2a1ee75 by doyougnu at 2022-10-28T09:20:59+02:00
Base: Adapt primitives to JS backend, add base.js

- - - - -
91b4b4f1 by doyougnu at 2022-10-28T09:20:59+02:00
Base: Remove binding forms in JS ffi

- - - - -
b583cd84 by Josh Meredith at 2022-10-28T09:20:59+02:00
Replace GHCJS Objectable with GHC Binary

- - - - -
099cf446 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Binary: remove unused Map instance

- - - - -
f5fd55cd by Sylvain Henry at 2022-10-28T09:20:59+02:00
CodeGen: Add export list

- - - - -
fa34fe38 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Primops: add some Int64/Word64 primops

- - - - -
e43ae339 by Sylvain Henry at 2022-10-28T09:20:59+02:00
base: fix one ffi import

- - - - -
e8b42612 by doyougnu at 2022-10-28T09:20:59+02:00
base: CPP for JS-backend, adapt write in base shim

This commit ports over each CPP directive from GHCJS to base. In
addition, it adds struct.js.pp to Base shim directory and modifies
h$base_write to always take 6 arguments. Thereby avoiding errors such as
"c(bytesWritten) is not a function". The missing parameter was the file
descriptor object, fdo, which was looked up in the function itself and
is now passed through to comport with the FFI expectations.

- - - - -
464d43f5 by doyougnu at 2022-10-28T09:20:59+02:00
fixup: remove redundant struct.js.pp in js_base

- - - - -
2f4cb660 by doyougnu at 2022-10-28T09:20:59+02:00
JS.Linker: enable linker RTS symbols

- - - - -
545f3e83 by doyougnu at 2022-10-28T09:20:59+02:00
base.GHCJS: adapt Prim to direct call FFI format

- - - - -
b57bf314 by doyougnu at 2022-10-28T09:20:59+02:00
Linker: Load JSVal from base not ghc-prim

- - - - -
6f4dd59f by doyougnu at 2022-10-28T09:20:59+02:00
fixup: caught one more reference to JSVal in prim

- - - - -
50d856fd by Sylvain Henry at 2022-10-28T09:20:59+02:00
base: match on js arch , not ghcjs os

- - - - -
707ed56d by Sylvain Henry at 2022-10-28T09:20:59+02:00
Fix MK_JSVAL

- - - - -
1eb8d906 by doyougnu at 2022-10-28T09:20:59+02:00
Prim: cleanup comments

- - - - -
c84a0923 by doyougnu at 2022-10-28T09:20:59+02:00
JS.Prim: add Int64 PrimOps

- - - - -
845bc4cf by Sylvain Henry at 2022-10-28T09:20:59+02:00
Vendor MD5 lib

- - - - -
6c5933f1 by Sylvain Henry at 2022-10-28T09:20:59+02:00
More 64-bit primops

- - - - -
6869eb59 by Sylvain Henry at 2022-10-28T09:20:59+02:00
CodeGen: use if10 helper

- - - - -
cfa51610 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Ppr: fix selector to avoid adding a newline

- - - - -
15a5f69a by doyougnu at 2022-10-28T09:20:59+02:00
base: GHCJS.Prim make ffi imports use anon funcs

- - - - -
f74fcb15 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Linker: disable invalid constructors again

- - - - -
a326a38b by Sylvain Henry at 2022-10-28T09:20:59+02:00
More 64-bits primops

- - - - -
3b241703 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Fix base_write function

- - - - -
bdd4bd77 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Fix base_write for 32-bit size_t

- - - - -
001b51f3 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Configure: fix detection of the target toolchain

- - - - -
55b14469 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Remove js_base directory

- - - - -
6409d390 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Kill Node when the main loop reports an unhandled exception

- - - - -
59d73242 by Sylvain Henry at 2022-10-28T09:20:59+02:00
CodeGen: preparation to make match on primops complete

- - - - -
093a0e72 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Primops: fix Compact primops

- - - - -
eaa6c81f by Sylvain Henry at 2022-10-28T09:20:59+02:00
Ignore result arity for some exception primops

- - - - -
fc15bfb4 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Fix more primops. Bump array submodule!

- - - - -
85e7dd2f by Sylvain Henry at 2022-10-28T09:20:59+02:00
Compact: fix return of 3 values

- - - - -
1263f3f3 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Configure: switch to absolute path

- - - - -
2e9412b3 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Add a few primops

- - - - -
86e82703 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Primop: implement WordAdd2

- - - - -
029f940b by Luite Stegeman at 2022-10-28T09:20:59+02:00
quick fix for uTypeVt and typePrimRep panics

this may cause other panics, a full fix will require a bit
more rework and probably removal of VarType

- - - - -
231ccf80 by Josh Meredith at 2022-10-28T09:20:59+02:00
Replace ShortText with (Lexical)FastString in GHCJS backend

- - - - -
3dfb3270 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Primops: add arithmetic ops

Primops: add decodeDoubleInt64 back

Primop: added timesInt2#

Primop: add mulWord32 and mul2Word32

- - - - -
5ffde949 by Sylvain Henry at 2022-10-28T09:20:59+02:00
Reduce dependency on goog

- - - - -
ab423f7e by Sylvain Henry at 2022-10-28T09:20:59+02:00
Primop: implement quotWord32, remWord32, and quotRemWord32

- - - - -
96b15fad by Sylvain Henry at 2022-10-28T09:20:59+02:00
Primop: Implement quotRem2Word32, misc fixes

Primop: implement quotRem2Word32

Primop: fix timesInt2#

Primop: fix some shifting primops

- - - - -
2ff7df3b by Sylvain Henry at 2022-10-28T09:20:59+02:00
Fix bug in upd_frame

I've introduced this bug when I've refactored the code to use helpers to
assign closures.

- - - - -
8d353400 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Primop: throw an exception for unimplemented primops

- - - - -
acbde901 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Primop: fix remWord32

- - - - -
8d84acca by Josh Meredith at 2022-10-28T09:21:00+02:00
Configure: add EMSDK_BIN, match emsdk expectations

Change EMSDK vars to match emscripten/emsdk_env.sh definitions

Add EMSDK_BIN environment variable to configure

- - - - -
81dfe278 by Sylvain Henry at 2022-10-28T09:21:00+02:00
resultSize: correctly handle Void#

- - - - -
4f02b476 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Primop: fix Sized test, more shifting fixes

Primop: ensure that we return u32 values for word primops

Also a refactoring from i3 to i32 for clarity.

Primop: add/fix more shifting primops

Primops: fix Sized test!

- - - - -
67f7e8f7 by Sylvain Henry at 2022-10-28T09:21:00+02:00
StgToJS.Apply: Docs

Doc

Doc

- - - - -
802e44f7 by Josh Meredith at 2022-10-28T09:21:00+02:00
Fix EMSDK configure condition

- - - - -
8d9ef792 by doyougnu at 2022-10-28T09:21:00+02:00
StgToJS.Arg: Unboxable Literal Optimization note

- - - - -
febfc6b3 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Fix Outputable instances for JExpr/JVal

- Put orphan instances in JS.Ppr
- Also fix some redundant imports

- - - - -
268d2b75 by doyougnu at 2022-10-28T09:21:00+02:00
configure: avoid CXX stdlib check for js backend

and some cleanup for a previously mis-applied commit during rebasing

- - - - -
430133d2 by doyougnu at 2022-10-28T09:21:00+02:00
fixup: misc. fixes post rebase

- - - - -
9027db23 by Sylvain Henry at 2022-10-28T09:21:00+02:00
PrimOps: add more 64-bit primops

PrimOp: implement more 64-bit primops + PM fix

Ensure that we cover every primop explicitly

- - - - -
16951697 by Sylvain Henry at 2022-10-28T09:21:00+02:00
PrimOp: correclty (un)handle new thread related primops

- - - - -
9e78f92a by Sylvain Henry at 2022-10-28T09:21:00+02:00
PrimOp: disable LabelThreadOp for now

- - - - -
557d5f06 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Minor doc/cleanup

Fix more redundant imports

- - - - -
d9388cd2 by doyougnu at 2022-10-28T09:21:00+02:00
base: GHCJS.Prim directory --> GHC.JS.Prim

- - - - -
580b2baa by Luite Stegeman at 2022-10-28T09:21:00+02:00
implement KeepAlive primop

- - - - -
aba4ec7a by Sylvain Henry at 2022-10-28T09:21:00+02:00
Remove orphan instance for StaticArg

- - - - -
9acbeee8 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Remove redundant jsIdIdent' function

- - - - -
8417e6bf by Sylvain Henry at 2022-10-28T09:21:00+02:00
Split StgToJS.Monad into StgToJS.{Monad,Ids,Stack}

- - - - -
aa637989 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Apply: remove commented case (wasn't optimized either in latest ghcjs)

- - - - -
af31631d by Sylvain Henry at 2022-10-28T09:21:00+02:00
Doc: Apply

Apply: doc and refactoring

- use new types instead of Bool/Int
- factorize some code

- - - - -
5436b3f5 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Primop: arith fixes

Primop: fix 64-bit shifting primops + add some traces

Primop: fix quotRem2Word32

Primop: fix timesInt2. Progress towards passing arith003

PrimOp: fix timesInt32

PrimOp: use mulWord32 when appropriate

- - - - -
899c924b by doyougnu at 2022-10-28T09:21:00+02:00
Configure: remove EMSDK hacks and wrapper scripts

configure JS: remove wrapper scripts

Configure: remove EMSDK hacks. Use emconfigure instead

emconfigure ./configure --target=js-unknown-ghcjs

- - - - -
9e3509eb by Sylvain Henry at 2022-10-28T09:21:00+02:00
GHCJS.Prim leftovers

- - - - -
5f1d36c8 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Linker: fix linking issue for tuples

- - - - -
6f1442c9 by Sylvain Henry at 2022-10-28T09:21:00+02:00
FFI: remove narrowing

Fix tests such as cgrun015 (Core lint error)

- - - - -
9832141a by Sylvain Henry at 2022-10-28T09:21:00+02:00
Linker: disable logs with default verbosity

- - - - -
7522d06c by Sylvain Henry at 2022-10-28T09:21:00+02:00
Append program name in top-level exception handler

- - - - -
911febd5 by doyougnu at 2022-10-28T09:21:00+02:00
GHC.JS: Remove FIXMEs

JS.Syntax: Remove FIXMEs

JS.Make: remove FIXMEs

JS.Ppr/Transform: Remove FIXMEs

- - - - -
1525eb31 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Primop: fix timesInt2#

Pass arith003 test

- - - - -
82555283 by doyougnu at 2022-10-28T09:21:00+02:00
JS.Linker.Linker: remove FIXMEs, clean dead code

- - - - -
1226167a by Sylvain Henry at 2022-10-28T09:21:00+02:00
Linker: link platform shim before the others

- - - - -
08ef52ab by Sylvain Henry at 2022-10-28T09:21:00+02:00
Primops: rework 64-bit and Word32 primops

- Use BigInt instead of complex and buggy bit twiddling. We'll assess
  performance later. Let's use a correct and simple implementation for
  now.

- Implement previously missing 64-bit quot and rem

- Refactor logical operators and Prim module more generally

- - - - -
cef0ec78 by Sylvain Henry at 2022-10-28T09:21:00+02:00
PrimOp: fixup previous commit...

- - - - -
37b72cd7 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Primop: fixup previous commit

- - - - -
fba25ab4 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Doc: minor changes

- - - - -
7f87367b by Sylvain Henry at 2022-10-28T09:21:00+02:00
Add debug option to watch for insertion of undefined/null in the stack

- - - - -
88031640 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Apply: fix tag generation

- - - - -
7a643522 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Remove redundant import

- - - - -
1805f1a8 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Testsuite: disable Cmm tests with the JS backend

- - - - -
3b6aab85 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Base: fix c_interruptible_open

- - - - -
b9a02076 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Base: fix typo in long_from_number

- - - - -
0910876f by Sylvain Henry at 2022-10-28T09:21:00+02:00
Env: only add program name to errors, not to traces

- - - - -
713d01f8 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Testsuite: disable more Cmm tests

- - - - -
4a8c9737 by doyougnu at 2022-10-28T09:21:00+02:00
JS.Linker: removes FIXMEs

JS.Linker.Linker: remove FIXMEs, clean dead code

StgToJS.Linker.Utils: remove FIXMEs

Compactor: Remove FIXMEs

StgToJS.Linker.Types: Remove FIXMEs

JS.Linker.Archive/Dynamic: remove FIXMEs

StgToJS.Linker.Shims: remove FIXMEs

- - - - -
f50f5eb8 by doyougnu at 2022-10-28T09:21:00+02:00
JS RTS: remove FIXMEs

StgToJS.Rts.Types: Remove FIXMEs

- - - - -
eb278d00 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Primop: fix bswap32/64 (cf cgrun072)

- - - - -
c53e6f20 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Testsuite: normalise ghc program name

- - - - -
32e790d8 by doyougnu at 2022-10-28T09:21:00+02:00
JS Backend: Remove FIXMEs

StgToJS.Apply: Remove FIXMEs

StgToJS.FFI: remove FIXMEs

StgToJS.Expr: remove FIXMEs

StgToJS: Remove FIXMEs

- - - - -
e8207206 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Enable RTS args filtering (cf cgrun025)

- - - - -
1688b6ed by Sylvain Henry at 2022-10-28T09:21:00+02:00
Remove trailing whitespaces (whitespace test)

- - - - -
4b704914 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Testsuite: remove platform prefix for unlit tool

- - - - -
87269d21 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Primop: fix Int64 conversion/negate (integerConversions test)

- - - - -
98bcc76c by Sylvain Henry at 2022-10-28T09:21:00+02:00
Linker: remove message with default verbosity

- - - - -
9a96f433 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Testsuite: normalise .jsexe suffix

- - - - -
7be83f90 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Remove warning about orphan instance

- - - - -
a8efc030 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Compactor: disable dead code

- - - - -
dca3185a by Sylvain Henry at 2022-10-28T09:21:00+02:00
Exception: implement raiseUnderflow etc. as primops

- - - - -
18003f8c by Sylvain Henry at 2022-10-28T09:21:00+02:00
Primop: fix Int8/18 quot/rem

- - - - -
784055b6 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Linker: refactor wired-in deps

- - - - -
0ae83dd3 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Ppr: remove useless left padding for functions in JS dumps

- - - - -
58b7791d by Josh Meredith at 2022-10-28T09:21:00+02:00
Disable llvm ways and ghci for JS backend testsuite

- - - - -
472e11be by Sylvain Henry at 2022-10-28T09:21:00+02:00
StaticPtr: don't generate CStubs for the JS backend

- - - - -
a17b61b1 by Sylvain Henry at 2022-10-28T09:21:00+02:00
StaticPtr: fix hs_spt_lookup after upstream change

- - - - -
f58489d4 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Testsuite: fix normalisation for unlit

T8430 shows:
  `js-unknown-ghcjs-unlit' failed in phase `Literate pre-processor'. (Exit code: 1)

Notice the quote around the program name. So I've made the regex match
more cases (i.e. not only lines starting with the program name).

- - - - -
5d71bd96 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Codegen: fix codegen of string literals

Due to FastString change:
 Before: Text.pack . BSC.unpack
 After:  mkFastString . BSC.unpack

It seems that Text handles buggy multi-byte codepoints split into
several String Chars.

- - - - -
8f799683 by Sylvain Henry at 2022-10-28T09:21:00+02:00
CPP: fix LINE markers. Only disable them for JS

- - - - -
86f394ec by Luite Stegeman at 2022-10-28T09:21:00+02:00
add JavaScript files listed in js-sources to package archives

- - - - -
ab29435c by Luite Stegeman at 2022-10-28T09:21:00+02:00
update rts js files to include recent fixes

- - - - -
ff92ebf0 by Luite Stegeman at 2022-10-28T09:21:00+02:00
fix definitions in js/rts.h

- - - - -
9436676f by Josh Meredith at 2022-10-28T09:21:00+02:00
stopgap fix for missing ghc-pkg in cross-compiler tests

- - - - -
0e5fec99 by Sylvain Henry at 2022-10-28T09:21:00+02:00
Testsuite: better fix for finding prefixed tools

- - - - -
f431fddd by Sylvain Henry at 2022-10-28T09:21:01+02:00
Ppr: add hangBrace helper

- - - - -
231654e2 by Sylvain Henry at 2022-10-28T09:21:01+02:00
Only declare ccs var in profiling mode

- - - - -
b1007be5 by Sylvain Henry at 2022-10-28T09:21:01+02:00
Don't consider recursive bindings as inline nor as evaluated

Fix mdo001

- - - - -
ec960955 by Sylvain Henry at 2022-10-28T09:21:01+02:00
Hadrian: disable shared libs for JS target

- - - - -
3c494ea5 by Sylvain Henry at 2022-10-28T09:21:01+02:00
Support -ddump-stg-final with the JS backend

- - - - -
75d85cd8 by Sylvain Henry at 2022-10-28T09:21:01+02:00
Add ticky_ghc0 flavour transformer to ticky stage1

- - - - -
c3becc0f by Sylvain Henry at 2022-10-28T09:21:01+02:00
Don't read object file when -ddump-js isn't passed

- - - - -
4291b55d by Sylvain Henry at 2022-10-28T09:21:01+02:00
Object: remove dead code + renaming

- - - - -
03f789c4 by Sylvain Henry at 2022-10-28T09:21:01+02:00
Object: replace SymbolTableR with Dictionary

- - - - -
1db15847 by Sylvain Henry at 2022-10-28T09:21:01+02:00
Object: refactoring

- - - - -
0f05814c by Sylvain Henry at 2022-10-28T09:21:01+02:00
RTS: link platform.js before the others!

- - - - -
aa251c71 by Sylvain Henry at 2022-10-28T09:21:01+02:00
Hadrian: treat JS objects similarly to other objects

- - - - -
a45f7b0e by Luite Stegeman at 2022-10-28T09:21:01+02:00
fix javascript FFI calls for read and write

- - - - -
4ed80097 by doyougnu at 2022-10-28T09:21:01+02:00
propagate ppr code changes to JS backend

- - - - -
7f357bc9 by Sylvain Henry at 2022-10-28T09:21:48+02:00
Switch from Data.Binary and ByteString to BinHandle

- - - - -
1a1ac592 by Sylvain Henry at 2022-10-28T09:21:50+02:00
Perf: use Ppr's LeftMode to output JS

- - - - -
b78237da by doyougnu at 2022-10-28T09:21:50+02:00
Primops: Add {Index,Write,Read}ByteArrayAs ops

Still need to check for correctness based on T4442.

minor doc fixes

fixup: add some Index..As primops

fixup missed type signature

Primops: Add WriteByteArrayOp_Word8AsFoo ops

Primops: {Index,Read,Write}FooAsBar done except Addr's

Primops: add {Index,Read,Write}ByteArrayAsAddr ops

These will need to be tested for correctness with T4442.hs

- - - - -
6d0a93f0 by Sylvain Henry at 2022-10-28T09:21:50+02:00
Move platform.js to base (it must be linked first)

- - - - -
2aedac34 by Sylvain Henry at 2022-10-28T09:21:50+02:00
Remove old shim directory

- - - - -
8a0bd332 by doyougnu at 2022-10-28T09:21:50+02:00
JS.Prim: more PrimOps {IndexByteArrayAs, CAS}

Primop: WriteByteArrayOp_Word8AsChar use setInt8

Primops: remove dv_s_u8

This function is non-sensical. Due to the infelicities of JS as a
platform we must use Int8 and friends to write, then coerce to a word,
thus dv_s_iN are the only legal calls for a write, and dv_s_uN legal for
Index and Reads.

Primops: set dv_u8 to correct method call

should be getUint8, not getUInt8, of course the naming convention
changes ever so slightly for Words.

Primops: T4442 finishes ByteArrayAs still fails

JS.Prim: More IndexByteAAs primops

JS.Prim: Prefetch PrimOps are noOps

JS.Primops: Doc explaining lack of vector support

JS.Prim: add CAS and Fetch Ops

- - - - -
c8efb68a by doyougnu at 2022-10-28T09:22:24+02:00
GHC.Utils.Binary: BinDictionary -> FSTable

Rename to avoid naming conflict with haddock.

- - - - -
917df8ac by Josh Meredith at 2022-10-28T09:22:27+02:00
Adjust derefnull test exit code for ghcjs

- - - - -
0dd250d0 by doyougnu at 2022-10-28T09:22:27+02:00
Fix Driver missing type signature warnings

- - - - -
243664d2 by doyougnu at 2022-10-28T09:22:27+02:00
PipeLine.Execute: silence warnings on JS backend

- - - - -
686aaf69 by doyougnu at 2022-10-28T09:22:27+02:00
JS.Primops: Add Bit reverse ops

- - - - -
a07b368f by doyougnu at 2022-10-28T09:22:27+02:00
SysTools.Tasks: quiet non-totality warnings

- - - - -
64ce5353 by doyougnu at 2022-10-28T09:22:27+02:00
JS.Primops: Add InterlockedExchange Addr Word

- - - - -
3dad5cf8 by Sylvain Henry at 2022-10-28T09:22:27+02:00
base: conditional js-sources

- - - - -
97484e20 by Sylvain Henry at 2022-10-28T09:22:27+02:00
TH: add support for JS files

- - - - -
f3e96f11 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Linker: fix creation of directories in output paths

- - - - -
c995bc50 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Backpack: fix empty stubs

- - - - -
1d91979c by Sylvain Henry at 2022-10-28T09:22:27+02:00
Add encodeDouble/Float RTS functions

- - - - -
38aa72e0 by Sylvain Henry at 2022-10-28T09:22:27+02:00
encodeDouble: correctly handle 0 base

- - - - -
8f72b84e by doyougnu at 2022-10-28T09:22:27+02:00
JS.Primops: Add listThreads op

- - - - -
34864f89 by doyougnu at 2022-10-28T09:22:27+02:00
JS.Primops: Add Read/WriteAddrOp ops

- - - - -
a15a23e8 by doyougnu at 2022-10-28T09:22:27+02:00
JS: Linker and Compactor: cleanup and docs

Compactor: Cleanup: Remove dead comments

JS.Linker.Types: cleanup and document module

- - - - -
a0079d09 by doyougnu at 2022-10-28T09:22:27+02:00
StgToJS.Linker: Add docs to utility modules

StgToJS.Linker.Utils: more docs

StgToJS.Linker.Archive: more docs

- - - - -
f1d5c4ce by doyougnu at 2022-10-28T09:22:27+02:00
StgToJS.Object: Add documentation

- - - - -
36270669 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Refactor Expr

- - - - -
0ffa2482 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Object: reduce pinned allocation. And don't forget to hClose invalid objects

- - - - -
c3131505 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Fix pdep (cgrun075)

- - - - -
07f90664 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Fix error message (don't mention emscripten)

- - - - -
1afb84e7 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Add Float/Word casts

- - - - -
8bfdbc6f by Sylvain Henry at 2022-10-28T09:22:27+02:00
Disable HPC tests with JS backend

- - - - -
0351f958 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Fix encodeDouble/Float

- - - - -
ae12219b by Sylvain Henry at 2022-10-28T09:22:27+02:00
Implement putchar (fix cgrun015)

- - - - -
b1703470 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Fix decoding of denormalized floats

- - - - -
761f79cb by Sylvain Henry at 2022-10-28T09:22:27+02:00
Fix isFloatDenormalized function

- - - - -
ad413a07 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Reuse convert buffer

- - - - -
4f48473a by Sylvain Henry at 2022-10-28T09:22:27+02:00
Reuse convert buffer bis

- - - - -
b3d94748 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Skip some tests that require the dynamic linker

- - - - -
a3513c65 by Josh Meredith at 2022-10-28T09:22:27+02:00
JavaScript ShrinkSmallMutableArrayOp_Char & GetSizeofSmallMutableArrayOp

- - - - -
e08b0567 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Disable more linker tests

- - - - -
5dba31b2 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Testsuite: better normalisation for ghc and ghc-pkg

Allow normalisation for ghc and ghc-pkg anywhere in the output, not just
at the beginning of the line.

Fix T1750 and ghcpkg05 for example

- - - - -
88e5eed3 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Skip T14373 because it requires Cmm

- - - - -
ff11f2d8 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Disable cg010 with JS backend

- - - - -
6c3a5415 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Testsuite: better normalisation of .jsexe extension

- - - - -
43fd6530 by doyougnu at 2022-10-28T09:22:27+02:00
JS: Linker,Rts docs and cleanup

JS.Linker: Cleanup: remove unused functions/types

JS.Rts.Types: remove dead code, docs

StgToJS.RTS: cleanup and more docs

- - - - -
170bb310 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Disable recomp015

- - - - -
f0b04e9d by Sylvain Henry at 2022-10-28T09:22:27+02:00
Minor refactoring

- - - - -
a67485b2 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Temporary fix the testsuite bug

- - - - -
049ae85e by doyougnu at 2022-10-28T09:22:27+02:00
JS.StgToJS.Types: Docs and cleanup

- - - - -
88653e0a by Josh Meredith at 2022-10-28T09:22:27+02:00
change JS.Transform.Idents* to use UniqDSet from Set

- - - - -
688ac995 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Minor Linker cleanup

Minor cleanup

- - - - -
ae591b79 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Linker: load all the dependent units transitively

- - - - -
f5838889 by doyougnu at 2022-10-28T09:22:27+02:00
JS: Add Docs and cleanup StgToJS.{Arg,Ids}

JS.Arg: docs and cleanup

StgToJS.Arg: add minimal docs

StgToJS.Ids: Add header

- - - - -
27702c8d by Sylvain Henry at 2022-10-28T09:22:27+02:00
Implement h$sleep (T5611)

- - - - -
24109d64 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Linker: don't link the same unit twice

- - - - -
80f8ea8d by doyougnu at 2022-10-28T09:22:27+02:00
JS:  docs, cleanup, StgToJS.{Expr,DataCon,Stack}

StgToJS.Deps/Expr: add docs

StgToJS.DataCon: add minor docs

StgToJS.Stack: Docs and cleanup

In particular:

-- Removing some single use functions
-- Some minor refactors related to these removals

StgToJS: comments on static args and optimizeFree

- - - - -
a0983671 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Disable compact tests

- - - - -
29d52721 by Sylvain Henry at 2022-10-28T09:22:27+02:00
Add support for JS files passed on the command line

- - - - -
dfbd1652 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Minor cleanup in compactor

- - - - -
7b1659f2 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Fix encoding of unboxed strings (don't pass through FastString/h$str)

- - - - -
21effc8a by doyougnu at 2022-10-28T09:22:28+02:00
JS: Misc fixes post Del-Cont rebase

- - - - -
ec1b6e1d by Sylvain Henry at 2022-10-28T09:22:28+02:00
Minor cleanup

- - - - -
d84beef6 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Add log1p and expm1 (fix cgrun078)

- - - - -
814d41be by Sylvain Henry at 2022-10-28T09:22:28+02:00
Assume existence of Math.fround and use it in Float's primops

- - - - -
a12d0ca8 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Disable "debug" test

- - - - -
8d57dff7 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Implement copyMutableArray with overlap support

- - - - -
7655ae89 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Skip CmmSwitchTests

- - - - -
54b4f871 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Fix WordToDouble/WordToFloat (Word2Float32 test)

- - - - -
92324e54 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Skip one more test

- - - - -
39f59bd9 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Fix after GHC.Tuple to GHC.Tuple.Prim

- - - - -
48fe3ec8 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Fix InterlockedExchange primops (cgrun080)

- - - - -
36dd46e5 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Disable T12059

- - - - -
c4aabc42 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Implement sqrt/sqrtf (fix T14619)

- - - - -
6a20161c by Sylvain Henry at 2022-10-28T09:22:28+02:00
Skip more tests

- - - - -
4fe2ab9d by Sylvain Henry at 2022-10-28T09:22:28+02:00
Disable conc012

- - - - -
31eb40ba by Sylvain Henry at 2022-10-28T09:22:28+02:00
Disable more Cmm tests

- - - - -
51b2df5b by Sylvain Henry at 2022-10-28T09:22:28+02:00
Fix AtomicPrimops test. Some refactoring in Prim too

- - - - -
5f918697 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Use GHCJS's signExtend/narrow

- - - - -
1231c2c0 by Josh Meredith at 2022-10-28T09:22:28+02:00
Implement get/set thread label prims

- - - - -
fd0be631 by doyougnu at 2022-10-28T09:22:28+02:00
JS: remove Linker.Archive module

- - - - -
9e18997d by Sylvain Henry at 2022-10-28T09:22:28+02:00
Start disabling tests that use TH/interpreter

- - - - -
a43523f1 by Josh Meredith at 2022-10-28T09:22:28+02:00
Add flagged bounds checking to JS primops

- - - - -
542c1f3f by Sylvain Henry at 2022-10-28T09:22:28+02:00
Disable more tests

- - - - -
486f6e4a by Sylvain Henry at 2022-10-28T09:22:28+02:00
Disable T1791

- - - - -
6b198868 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Raise NonTermination as an async exception

- - - - -
cbd1e061 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Expect IOPort test to be broken

- - - - -
69c25406 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Implement rts_isThreaded (fix jules_xref2)

- - - - -
768d8709 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Disable outofmem2 test

- - - - -
52bb017d by Sylvain Henry at 2022-10-28T09:22:28+02:00
Disable delimited continuation tests

- - - - -
3b72ab38 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Disable native RTS flag tests

- - - - -
8113552e by Sylvain Henry at 2022-10-28T09:22:28+02:00
Disable more tests

- - - - -
2ee220b7 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Disable more tests

- - - - -
cbd51a13 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Skip more tests

- - - - -
80274770 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Disable try_putmvar tests that use C files

- - - - -
f2eb019e by Sylvain Henry at 2022-10-28T09:22:28+02:00
Disable even more tests

- - - - -
6395ab27 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Linker: remove dead code (base, compactor)

- - - - -
f547934f by Sylvain Henry at 2022-10-28T09:22:28+02:00
Better shims linking

- - - - -
e30ac170 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Make isJsFile a bit faster by only reading the header

- - - - -
67397531 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Linker: write directly into output file

- - - - -
bcaa1f53 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Linker: more refactoring

- - - - -
a5b3753a by Sylvain Henry at 2022-10-28T09:22:28+02:00
Lazy loading of JStat in object code

- - - - -
398ce496 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Use Ppr hack to render directly into a file

- - - - -
28da17e9 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Fix backpack dependencies

- - - - -
72f0e775 by doyougnu at 2022-10-28T09:22:28+02:00
testsuite: add js_skip_csources function

Used to indicate a test that fails in the JS backend because the JS
Backend does not yet support c-sources in cabal files.

- - - - -
333ceb46 by doyougnu at 2022-10-28T09:22:28+02:00
testsuite: JS: skip tests which use c-sources

Skip because these tests use c-sources and the JS backend does not yet
support including c-sources

testsuite: JS backend: skip backpack tests

testsuite: JS: skip c-sources ffi tests

testsuite: JS: skip multipleHomeUnits_odir

testsuite: JS: disable more backpack tests

testsuite: JS: disable c-sources rts tests

testsuite: JS: skip c-sources codeGen tests

testsuite: JS: skip c-sources generics test

- - - - -
06d41314 by Josh Meredith at 2022-10-28T09:22:28+02:00
use exit code 134 for JS prim bounds checks

- - - - -
804b8599 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Remove panic in getObject

- - - - -
f216fe84 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Add debug and Outputable instances

- - - - -
d22b04bc by Sylvain Henry at 2022-10-28T09:22:28+02:00
Remove backup file

- - - - -
4020f52d by Sylvain Henry at 2022-10-28T09:22:28+02:00
Skip overflow tests

- - - - -
e071f465 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Fix RTS includes for native build

- - - - -
bd93ef22 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Doc

- - - - -
60631d56 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Add perf-js Hadrian flavour

- - - - -
e60dc17f by doyougnu at 2022-10-28T09:22:28+02:00
JS.Syntax: fix doc wording

- - - - -
c7a532cc by doyougnu at 2022-10-28T09:22:28+02:00
Driver: JS: tweak error message

- - - - -
95adf701 by Josh Meredith at 2022-10-28T09:22:28+02:00
Factor JS platform constants and h$programArgs/h$rtsArgs into functions with init

- - - - -
78b76718 by Josh Meredith at 2022-10-28T09:22:28+02:00
Fix function name from h$shrinkMutableArray to h$shrinkMutableCharArray

- - - - -
4f40d247 by Luite Stegeman at 2022-10-28T09:22:28+02:00
allow async exceptions to be thrown from outside a haskell thread

- - - - -
75590e16 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Remove shims and refactor Cpp

I've removed the use of js/rts.h and js/constants.h again. We generate
their contents at cpp time. Instead of wiring z-encoded strings into
these macros, we should derive them from wired-in Names so that they
stay correct in the future. Using wired-in Names as single source of
truth.

- - - - -
657de4cd by Sylvain Henry at 2022-10-28T09:22:28+02:00
Support RTS globals (used by GHC) and EISDIR

Did this while trying to fix CallArity1 (still failing)

- - - - -
d8d09eb6 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Remove JS keywords

1. The list is incomplete
2. We prefix locals with "h$$" so there is no risk of conflict with JS
   keywords

- - - - -
2786a158 by Sylvain Henry at 2022-10-28T09:22:28+02:00
Remove dead code

- - - - -
7d79efce by Sylvain Henry at 2022-10-28T09:22:28+02:00
Make ident supply strict (no need to make it lazy, list already is)

- - - - -
7777d5bf by Sylvain Henry at 2022-10-28T09:22:28+02:00
Add optional assign to DeclStat and remove dead code

- - - - -
fee164ab by doyougnu at 2022-10-28T09:22:28+02:00
JS: Note on JS .o file order, fix .o files

To be specific:

1. add Note [JS Backend .o file procedure]
2. ensure that .o files are touch'd in JS backend postHsc phase. This
  fixes "missing object file" errors produced by
  'GHC.Driver.Main.checkObjects'.

- - - - -
93d94db8 by Luite Stegeman at 2022-10-28T09:22:28+02:00
start a subtransaction in a catchStm block

- - - - -
ba5b87c9 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Use FastMutInt in G for uniques

- - - - -
11c7963a by Sylvain Henry at 2022-10-28T09:22:29+02:00
Compactor: remove dead code

- - - - -
d8f723dd by Sylvain Henry at 2022-10-28T09:22:29+02:00
Compactor: remove more dead code

- - - - -
22eca6db by Sylvain Henry at 2022-10-28T09:22:29+02:00
Compactor: remove unused debug code

- - - - -
c8c6e10c by Sylvain Henry at 2022-10-28T09:22:29+02:00
Compactor: remove unimplemented packStrings

- - - - -
f0fe4ae0 by Sylvain Henry at 2022-10-28T09:22:29+02:00
RTS: fix query/replace error

- - - - -
aedd64b8 by Luite Stegeman at 2022-10-28T09:22:29+02:00
remove unused STM check invariants

- - - - -
12e95d17 by Josh Meredith at 2022-10-28T09:22:29+02:00
Refactor renaming functions from Compactor module into the Linker

- - - - -
f8e0fab8 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Linker: refactor and cleanup after compactor removal

- - - - -
e749bbd8 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Filter empty exports to avoid printing a lot of useless newlines

- - - - -
9070d030 by Sylvain Henry at 2022-10-28T09:22:29+02:00
RTS: remove dangling semicolons

- - - - -
c4b1e764 by Sylvain Henry at 2022-10-28T09:22:29+02:00
RTS: remove more dangling semicolons

- - - - -
c735dbb7 by Sylvain Henry at 2022-10-28T09:22:29+02:00
RTS: less semicolons

- - - - -
27736e33 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Only initialize statics once!

- - - - -
6ce39685 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Minor refactoring: avoid unpacking ShortText too soon

- - - - -
16df0b2a by Sylvain Henry at 2022-10-28T09:22:29+02:00
Remove unused derived instances

- - - - -
48beacc5 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Use Ident in ClosureInfo instead of FastString

- - - - -
9deeb91e by Sylvain Henry at 2022-10-28T09:22:29+02:00
Add identFS helper

- - - - -
113c06e7 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Fix liftToGlobal

identsS wasn't correctly ported: it has to return all the Ident
occurences, not only one. Fixed this and simplified liftToGlobal
implementation.

Used UniqFM instead of Map forn the global ident cache.

- - - - -
31396e5f by Sylvain Henry at 2022-10-28T09:22:29+02:00
Refactor symbol generation.

Avoid concatenating Strings or FastStrings. Concatenate ByteString
instead.

- - - - -
6635d316 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Enhance Label symbol generation

- - - - -
adbdb966 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Rename fresh idents with their FastString unique

Reduce by 2x the size of the generated file (on Cabal's Setup).

- - - - -
4dfa72dd by Sylvain Henry at 2022-10-28T09:22:29+02:00
Disable more tests

- - - - -
dac90fa5 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Disable more tests

- - - - -
e727e4cf by Sylvain Henry at 2022-10-28T09:22:29+02:00
Disable ghc-heap tests

- - - - -
e2eb538b by Sylvain Henry at 2022-10-28T09:22:29+02:00
Mark flaky test as fragile

- - - - -
f6d87253 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Fix bound checking

- - - - -
c41fd17e by Sylvain Henry at 2022-10-28T09:22:29+02:00
Fix note

- - - - -
712d2ac7 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Disable more tests

- - - - -
4363e9fb by Sylvain Henry at 2022-10-28T09:22:29+02:00
Disable more tests

- - - - -
cbf1c2f2 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Disable more tests

- - - - -
39154b55 by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: force ghc-pkg to use stage1

- - - - -
6ff90457 by doyougnu at 2022-10-28T09:22:29+02:00
fix linker errors post rebase

Re-add InitFini.c to the rts, it was introduced in
78ab7afe244a7617d600a6180d81d9dec657114d but was somehow removed after a
rebase.

- - - - -
df379045 by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: rts disable rtsflags001 for JS backend

- - - - -
fa97fba2 by Josh Meredith at 2022-10-28T09:22:29+02:00
Disable runInteractiveProcess tests for ghcjs

- - - - -
f5329eee by Josh Meredith at 2022-10-28T09:22:29+02:00
Disable fed001 test for javascript backend

- - - - -
935b75d6 by Josh Meredith at 2022-10-28T09:22:29+02:00
Disable driver tests for JS backend that use foreign exports

- - - - -
c491e581 by Josh Meredith at 2022-10-28T09:22:29+02:00
Disable ImpSafeOnly01..10 for JavaScript backend

- - - - -
19a9bad2 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Add missing GHC globals

- - - - -
c87c979d by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: disable ffi for JS backend

More Specically disable:

ffi006
ffi008
ffi011
ffi013
ffi018
ffi019
ffi020
ffi021
ffi023

- - - - -
3522454d by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: disable ghci linking tests for JS

Specifically:

ghcilink001
ghcilink003
ghcilink005
ghcilink006

- - - - -
e82e66b1 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Fix comment

- - - - -
424745ed by Sylvain Henry at 2022-10-28T09:22:29+02:00
More bound checking

- - - - -
3d1e8237 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Fix some Word reading in Prim

- - - - -
c24883c0 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Implement openDir

Seems to work (with tracing) but tests still fail with getInt16 index
error :'(

- - - - -
cc7f7246 by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: disable cabal tests for JS backend

- - - - -
341e0c79 by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: disable bkpcabal[01-07] for JS backend

- - - - -
5f443940 by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: disable tests that cause OOM on JS

These tests require the JS Backend to implement GHCJS's compactor, until
that happens nodejs throws an exception that variable names are too
long, hence we disable them.

- - - - -
3313ca4e by Sylvain Henry at 2022-10-28T09:22:29+02:00
Disable HPC tests

Bump hpc submodule

- - - - -
17f0d7ba by Sylvain Henry at 2022-10-28T09:22:29+02:00
Avoid useless space change

- - - - -
a2b04984 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Remove duplicated comment

- - - - -
3af086b5 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Readd useless space

- - - - -
dc086783 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Fix some rts.cabal.in rebase glitches

- - - - -
67272eb2 by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: disable T12233 tests for JS backend

- - - - -
23f562f6 by Sylvain Henry at 2022-10-28T09:22:29+02:00
Fix rts.cabal.in again

- - - - -
4803fcf7 by Luite Stegeman at 2022-10-28T09:22:29+02:00
fix typo in dumpStackTop function

- - - - -
0db5a0f4 by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: remove js_skip_csources, use c_src

- - - - -
7505467a by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: skip recomp4,8 on JS backend

- - - - -
b773cbbf by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: skip alloccounter1 and T19156 for JS

These tests fail due to missing primops

- - - - -
3f9c8b03 by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: skip T7773 and topHandler01 for JS

- - - - -
0588cc3b by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: skip rdynamic and T2615 for JS Backend

- - - - -
f46f7bcf by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: skip T4012 for JS backend

- - - - -
8b50ead6 by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: skip T15427 for JS backend

- - - - -
ee75239c by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: skip T19481, T19381, T3474 for JS

- - - - -
fd515a70 by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: skip stack004 for JS backend

- - - - -
82802d09 by doyougnu at 2022-10-28T09:22:29+02:00
testsuite: JS skip ThreadDelay001 and encoding004

- - - - -
5c9de590 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip openFile003 for JS backend

- - - - -
ca0810b8 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: disable T1959 and capi tests for JS

- - - - -
f96f5103 by Sylvain Henry at 2022-10-28T09:22:30+02:00
Replace c_src with req_c

- - - - -
95c76673 by Sylvain Henry at 2022-10-28T09:22:30+02:00
Fix testsuite

- - - - -
a1e8bdd0 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: disable CallArity, LintEtaExpand etc

These cause a illegal op on directory error. Disable for now:

CallArity1
LintEtaExpand
T9595
T10942
T18522-dbg-ppr

- - - - -
036a4672 by Luite Stegeman at 2022-10-28T09:22:30+02:00
fix isJsCore predicates for base package

- - - - -
b289608a by Sylvain Henry at 2022-10-28T09:22:30+02:00
CI: add CI script for the JS backend

- - - - -
7d7ea690 by Sylvain Henry at 2022-10-28T09:22:30+02:00
Fix rts.cabal again

- - - - -
44616707 by Sylvain Henry at 2022-10-28T09:22:30+02:00
Fix invalid use of predStage

- - - - -
f9b8b956 by Sylvain Henry at 2022-10-28T09:22:30+02:00
Fix hlint errors on CI

- - - - -
a8027ba5 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: disable that throw out of bounds on JS

Specifically:

T12733
T1372
T15594
T16219
T18567
T20509
T3007
different-db
mhu-closure
package-imports-20779
t19518

- - - - -
b28130af by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip EventlogOutput{1,2} for JS backend

- - - - -
b9640b1a by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T1679, T2469, T4038 for JS

and also skip UnliftedTVar2

- - - - -
a71abe82 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T4891 for JS backend

This one throws illegal op on directory similar to T10942 and CallArity1

- - - - -
fdd23ae8 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T8308 for JS

JS backend does not have any ticky capability yet, so skip for now

- - - - -
f24028c9 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T9405 for JS

JS backend does not yet support ticky

- - - - -
e9d701d7 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T14624, T20199 for JS backend

- - - - -
0cf0d7ec by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T5594 and T5402 for JS

- - - - -
1c8eaef6 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip openFile00{5,7} readFile001 for JS

- - - - -
79b5d98a by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T11004 and T12504 for JS

- - - - -
9a5dfa9e by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip hGetBuf001, hReady00{1,2} for JS

- - - - -
010f5651 by doyougnu at 2022-10-28T09:22:30+02:00
fixup: missed readwrite002

- - - - -
57c27253 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T18642 for JS

- - - - -
61e3246e by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip TargetContents for JS

- - - - -
a0f704bc by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T18481a T10678 and friends

- - - - -
74d89138 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip RepPolyUnliftedDatatype2 for JS

- - - - -
8c173a84 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip ghci some tests

these throw not built for interactive use errors

- - - - -
be24ae97 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip DocsInHiFileTH for JS

- - - - -
f1a51ef1 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T7037, T7702, safePkg01 for JS

- - - - -
b4d5fb62 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip tests that throw gmake error

Specifically:

T15261a
T15261b
T16318
T17648
T20214
T21336c
rtsopts002
withRtsOpts

- - - - -
a9f18008 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T3837, hsc2hs003 typecheck.testeq1

- - - - -
e8e16941 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip fat005 for JS

- - - - -
ac6a695e by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip topHandler02,03 for JS

- - - - -
f90bb090 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip tests that unexpected pass/fail

- - - - -
eb96e429 by Sylvain Henry at 2022-10-28T09:22:30+02:00
Try to fix Hadrian for native

- - - - -
7bfc7138 by Luite Stegeman at 2022-10-28T09:22:30+02:00
fix index.html template newlines and use all.js for now (at least it works)

- - - - -
4c6bead4 by Sylvain Henry at 2022-10-28T09:22:30+02:00
Fix testsuite typo

- - - - -
66ebdfee by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip golden failure tests

Specifically:

GcStaticPointers
T13167
T14452
T16707
T17481
T7160
bkp32
fptr01

- - - - -
029f466d by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T13525 for JS

Fails for missing h$base_mkfifo

- - - - -
a88184c7 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip tests which timeout on JS

Specifically:

Timeout001
listThreads
mask002

- - - - -
90b55a40 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip failing IO tests for JS

Specifically:

hClose002
hFileSize002
hSetBuffering003
sum_mod

- - - - -
08de6d1e by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip countReaders001 for JS

- - - - -
05e25a75 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T10414 for JS backend

- - - - -
6aa102dd by Luite Stegeman at 2022-10-28T09:22:30+02:00
correct stack offset when restarting an STM transaction

- - - - -
2d9755ec by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T11155 T21336a T21869 for JS

- - - - -
7dba02ef by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip failing linker and hp2ps tests

- - - - -
7029012f by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip out of memory tests for JS

- - - - -
4e5e8447 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip remaining failing tests for JS

- - - - -
ef55ef09 by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: fix typo

- - - - -
7d8ecd88 by doyougnu at 2022-10-28T09:22:30+02:00
hadrian: fix js and native testing

- - - - -
927a6bf8 by Sylvain Henry at 2022-10-28T09:22:30+02:00
Skip one test

- - - - -
6edd2dc6 by Sylvain Henry at 2022-10-28T09:22:30+02:00
Skip one more test

- - - - -
051f67a9 by Sylvain Henry at 2022-10-28T09:22:30+02:00
Add missing comma

- - - - -
30f13384 by Sylvain Henry at 2022-10-28T09:22:30+02:00
Only change the test environment for cross

- - - - -
d99d9816 by Sylvain Henry at 2022-10-28T09:22:30+02:00
Force creation of hpc/haddock/runghc programs for cross

- - - - -
51b26253 by doyougnu at 2022-10-28T09:22:30+02:00
process: skip process tests for JS backend

- - - - -
df5405ff by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip remaining failing tests for JS

- - - - -
81704ede by doyougnu at 2022-10-28T09:22:30+02:00
process: skip T1780, T8343, T4889 for JS

- - - - -
d685d8ed by doyougnu at 2022-10-28T09:22:30+02:00
testsuite: skip T12852 for JS backend

- - - - -
bbef4a9b by doyougnu at 2022-10-28T09:22:30+02:00
stm: skip failing tests for JS backend

- - - - -
f6f0da7a by Sylvain Henry at 2022-10-28T09:22:30+02:00
Some changes to Binary after reviews

- - - - -
a753ca01 by Sylvain Henry at 2022-10-28T09:22:30+02:00
Rename back defaultUserData into noUserData

- - - - -
8f74380d by Sylvain Henry at 2022-10-28T09:22:31+02:00
Revert backpack change

- - - - -
444a94e3 by Sylvain Henry at 2022-10-28T09:22:31+02:00
Don't create directory in copyWithHeader

- - - - -
21054808 by Sylvain Henry at 2022-10-28T09:22:31+02:00
Remove now useless changes to Ppr

- - - - -
cc74dbab by Josh Meredith at 2022-10-28T09:22:31+02:00
Change js_skip to js_broken(22350) for ImpSafeOnly01..10 tests

- - - - -
65e7bd4a by Josh Meredith at 2022-10-28T09:22:31+02:00
Change js_broken(22350) to js_skip for safePkg01 test

- - - - -
956b19df by doyougnu at 2022-10-28T09:22:31+02:00
testsuite: Cabal js_skip -> js_broken(22351)

Issue: https://gitlab.haskell.org/ghc/ghc/-/issues/22351

- - - - -
9f64e745 by doyougnu at 2022-10-28T09:22:31+02:00
add req_js_compactor, update impacted tests

Issue: https://gitlab.haskell.org/ghc/ghc/-/issues/22352

- - - - -
2b48e737 by doyougnu at 2022-10-28T09:22:31+02:00
testsuite: mark more tests with req_js_compactor

- - - - -
d00356c9 by doyougnu at 2022-10-28T09:22:31+02:00
testsuite: js_skip -> js_broken(22355) more tests

Specifically:
T11004
T12504
T3837
hsc2hs003
T15758
exec_signals
hsc2hs001
hsc2hs002
typecheck.testeq1

See tracking ticket: https://gitlab.haskell.org/ghc/ghc/-/issues/22355

- - - - -
eeca2c6f by doyougnu at 2022-10-28T09:22:31+02:00
testsuite: mark #22356 tests as js_broken

Specifically:

T12733
T1372
T15594
T16219
T18567
T20509
T3007
different-db
mhu-closure
package-imports-20779
t19518

- - - - -
e01fcc29 by Josh Meredith at 2022-10-28T09:22:31+02:00
Use js_broken(22349) for releavant base tests

- - - - -
cc6df1b6 by Josh Meredith at 2022-10-28T09:22:31+02:00
Use js_broken(22359) for relevant tests

- - - - -
26cec3d8 by Josh Meredith at 2022-10-28T09:22:31+02:00
Use js_broken(22360) for releavant tests

- - - - -
ce581a52 by Josh Meredith at 2022-10-28T09:22:31+02:00
Use req_ffi_exports for JS-skipped driver* tests

- - - - -
2d91e3f1 by Josh Meredith at 2022-10-28T09:22:31+02:00
Use req_c for some JS-skipped tests

- - - - -
27b1d81d by Josh Meredith at 2022-10-28T09:22:31+02:00
Use js_broken(22362) for package.conf.d errored tests

- - - - -
d9d9de09 by Josh Meredith at 2022-10-28T09:22:31+02:00
Use req_interp for JS-skipped ghcilink001/3/5/6

- - - - -
4c468d8d by Josh Meredith at 2022-10-28T09:22:31+02:00
Use js_broken(22363) for affected ffi000 tests

- - - - -
e1af1f82 by Josh Meredith at 2022-10-28T09:22:31+02:00
Use js_broken(22364) for affected tests

- - - - -
a6ce1d11 by doyougnu at 2022-10-28T09:22:31+02:00
testsuite: mark tests as js_broken(22370)

Specifically:

rtsopts002
T15261a
T15261b
T16318
T17648
T20214
T21336c
withRtsOpts

Tracking ticket: #22370

- - - - -
954607cf by Josh Meredith at 2022-10-28T09:22:31+02:00
Use js_broken(22351) for T10955dyn

- - - - -
b5fa0c75 by Sylvain Henry at 2022-10-28T09:22:31+02:00
Remove trailing semicolons

- - - - -
2320fa97 by Sylvain Henry at 2022-10-28T09:22:31+02:00
Minor fixes after rebase

- - - - -
95d74c9a by doyougnu at 2022-10-28T09:22:31+02:00
test: T23674{w} recomp004 load_short_name -> req_c

- - - - -
abd738f3 by Josh Meredith at 2022-10-28T09:22:31+02:00
Upgrade miscellaneous tests from js_skip to js_broken(22261)

- - - - -
8a380765 by doyougnu at 2022-10-28T09:22:31+02:00
testsuite mark compactor tests as js_broken(22352)

- - - - -
e9275a97 by doyougnu at 2022-10-28T09:22:31+02:00
testsuite: mark tests js_skip -> js_broken(22374)

Specifically:

hGetBuf001
T12852
T12903
rdynamic
T2615
T4012
T15427
T18642
T19381
T19481
T3474
stack004
encoding004
ThreadDelay001
TargetContents
openFile003
T13525

Tracking Ticket: https://gitlab.haskell.org/ghc/ghc/-/issues/22374

- - - - -
bf186080 by doyougnu at 2022-10-28T09:22:31+02:00
stm: mark tests for JS backend as broken

- - - - -
4bd7a592 by doyougnu at 2022-10-28T09:22:31+02:00
testsuite: mark js_skip -> js_broken(22261)

Specifically:

DocsInHiFileTH
alloccounter1
T19156
rtsflags002
T7773
topHandler01
T1959
T1679
T2469
T4038
UnliftedTVar2
T15136
T8308
T9405
openFile005
openFile007
readFile001
countReaders001
RepPolyUnliftedDatatype2
fat005
topHandler02
topHandler03
T10414
T11760
T12035j
T13191
T14075
T16473
T17499
T17720a
T17720b
T17720c
T20030_test1j
T3924
T8766
T9839_01
T9848
fptr01
GcStaticPointers
T13167
T14452
T17481
T7160
listThreads
mask002
Timeout001
hClose002
hFileSize002
hSetBuffering003
sum_mod
T11155
T21336a
T21869
T15904
MergeObjsMode
recomp011
T13914
executablePath
rn.prog006
T16916
recomp008

- - - - -
5cd41fed by Sylvain Henry at 2022-10-28T09:22:31+02:00
Remove added configure comment

- - - - -
97c9490a by Sylvain Henry at 2022-10-28T09:30:13+02:00
Fix res_js_compactor leftover

- - - - -


30 changed files:

- .gitlab-ci.yml
- .gitlab/ci.sh
- .gitlab/gen_ci.hs
- .gitlab/jobs.yaml
- compiler/GHC/Builtin/PrimOps.hs
- compiler/GHC/Cmm/CLabel.hs
- compiler/GHC/Cmm/CLabel.hs-boot
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/CmmToAsm/Dwarf/Types.hs
- compiler/GHC/CmmToC.hs
- compiler/GHC/CmmToLlvm/Base.hs
- compiler/GHC/Core/Opt/SetLevels.hs
- compiler/GHC/Core/Opt/Specialise.hs
- compiler/GHC/Core/Unfold/Make.hs
- compiler/GHC/Data/BooleanFormula.hs
- compiler/GHC/Data/Graph/Directed.hs
- compiler/GHC/Driver/Backend.hs
- compiler/GHC/Driver/Backend/Internal.hs
- compiler/GHC/Driver/CodeOutput.hs
- compiler/GHC/Driver/Config/StgToCmm.hs
- + compiler/GHC/Driver/Config/StgToJS.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Driver/Main.hs
- compiler/GHC/Driver/Phases.hs
- compiler/GHC/Driver/Pipeline.hs
- compiler/GHC/Driver/Pipeline/Execute.hs
- compiler/GHC/Driver/Pipeline/Phases.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/Hs/Doc.hs
- compiler/GHC/Hs/DocString.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/52f2c6c6d226a13a4e4eb22a50fc62fe4d52fb2d...97c9490a7005f186993d1ceac54a316c0d8f1706

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/52f2c6c6d226a13a4e4eb22a50fc62fe4d52fb2d...97c9490a7005f186993d1ceac54a316c0d8f1706
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20221028/f13d319d/attachment-0001.html>


More information about the ghc-commits mailing list