[Git][ghc/ghc][wip/js-staging] 496 commits: CI: Don't run lint-submods on nightly

Sylvain Henry (@hsyl20) gitlab at gitlab.haskell.org
Tue Nov 1 08:25:01 UTC 2022



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


Commits:
c2872f3f by Bryan Richter at 2022-10-28T11:36:34+03:00
CI: Don't run lint-submods on nightly

Fixes #22325

- - - - -
270037fa by Hécate Moonlight at 2022-10-28T19:46:12-04:00
Start the deprecation process for GHC.Pack

- - - - -
7f613755 by Josh Meredith at 2022-11-01T09:28:16+01: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

- - - - -
94058dc9 by doyougnu at 2022-11-01T09:28:16+01: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

- - - - -
f80be809 by doyougnu at 2022-11-01T09:28:16+01: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

- - - - -
6842ce3f by Sylvain Henry at 2022-11-01T09:28:16+01:00
Doc has been moved into GHC.StgToJs top-level module

- - - - -
9dd06a22 by Sylvain Henry at 2022-11-01T09:28:16+01: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

- - - - -
41084c20 by Sylvain Henry at 2022-11-01T09:28:16+01: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...

- - - - -
1ff824fc by Sylvain Henry at 2022-11-01T09:28:16+01: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)

- - - - -
0b09bc78 by Sylvain Henry at 2022-11-01T09:28:16+01:00
Configure: preliminary support for triple js-unknown-ghcjs

- - - - -
7e43de12 by Sylvain Henry at 2022-11-01T09:28:16+01:00
Driver: enable JS backend by default for JS arch

- - - - -
6c2636fb by doyougnu at 2022-11-01T09:28:16+01: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

- - - - -
d750a80b by Sylvain Henry at 2022-11-01T09:28:16+01:00
Minor panic fix

- - - - -
8dc11e2a by Sylvain Henry at 2022-11-01T09:28:16+01:00
Linker: fix stage2 build

- - - - -
7be5e174 by Sylvain Henry at 2022-11-01T09:28:16+01: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...

- - - - -
99860e97 by doyougnu at 2022-11-01T09:28:16+01: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

- - - - -
b96ffdcc by Sylvain Henry at 2022-11-01T09:28:16+01: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

- - - - -
1cdaf0d2 by Sylvain Henry at 2022-11-01T09:28:16+01:00
Force creation of rts library with dummy file

- - - - -
8b7850d2 by Sylvain Henry at 2022-11-01T09:28:16+01:00
ghc-prim: avoid building C files

- - - - -
411e6a09 by Sylvain Henry at 2022-11-01T09:28:16+01:00
Hadrian: disable -fllvm

- - - - -
c23615d2 by Sylvain Henry at 2022-11-01T09:28:16+01:00
JS: fix caches

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

- - - - -
c5779ebd by Sylvain Henry at 2022-11-01T09:28:16+01:00
codegen: enhance genCon debug message

- - - - -
e83669ad by Sylvain Henry at 2022-11-01T09:28:16+01:00
RTS: fix stupid comment

- - - - -
b1e75caa by Sylvain Henry at 2022-11-01T09:28:16+01:00
RTS: embed headers

- - - - -
329e88a0 by Sylvain Henry at 2022-11-01T09:28:16+01:00
JS.StgToJS: add documentation header for JS Types

- - - - -
52d9647f by Sylvain Henry at 2022-11-01T09:28:16+01:00
CodeGen: refactor ExprCtx code

- - - - -
e4105a3c by Sylvain Henry at 2022-11-01T09:28:16+01:00
CodeGen: cache LNE frame size

- - - - -
f9df64e9 by doyougnu at 2022-11-01T09:28:16+01:00
JS.Types: Add Outputable for TypedExpr

- - - - -
3f3e09e0 by doyougnu at 2022-11-01T09:28:16+01:00
JS.CoreUtils: handle IOPort case

- - - - -
4159901b by doyougnu at 2022-11-01T09:28:16+01:00
JS.Expr: Fix unhandled datacon for RuntimeRep

- - - - -
b808520c by doyougnu at 2022-11-01T09:28:16+01:00
JS.Literals: Adapt genLit to new Literal domain

- - - - -
380dee1f by Sylvain Henry at 2022-11-01T09:28:16+01:00
RTS: expose more headers (required to build base)

- - - - -
87950e1e by Sylvain Henry at 2022-11-01T09:28:16+01:00
Base: don't build C and Cmm sources with ghcjs

- - - - -
93d711f6 by Sylvain Henry at 2022-11-01T09:28:16+01:00
Tentatively set NO_REGS for JS platforms

- - - - -
0bea1ff2 by Sylvain Henry at 2022-11-01T09:28:16+01:00
CodeGen: output LitRubbish as null JS values

- - - - -
002f3486 by Sylvain Henry at 2022-11-01T09:28:16+01:00
base: disable forkOS and bound thread machinery

- - - - -
b5315add by Sylvain Henry at 2022-11-01T09:28:16+01:00
CodeGen: support StackSnapshot# in primTypeVt

- - - - -
0795b72e by Sylvain Henry at 2022-11-01T09:28:16+01:00
CodeGen: better debug message for assignCoerce1

- - - - -
3de503ee by Sylvain Henry at 2022-11-01T09:28:16+01:00
Misc: enable HasDebugCallStack for zipWithEqual*

- - - - -
4338231e by Sylvain Henry at 2022-11-01T09:28:17+01:00
CodeGen: remove useless imports

- - - - -
a9675027 by Sylvain Henry at 2022-11-01T09:28:17+01:00
Stg: expose pprStgAlt

- - - - -
9eeb8114 by Sylvain Henry at 2022-11-01T09:28:17+01:00
CodeGen: restore assignAll (instead of assignAllEqual)

- - - - -
225cd755 by Sylvain Henry at 2022-11-01T09:28:17+01:00
CodeGen: handle proxy#

- - - - -
4bbb9b5d by doyougnu at 2022-11-01T09:28:17+01:00
ghc-heap: Don't compile Cmm file for JS-Backend

- - - - -
44ef79b5 by doyougnu at 2022-11-01T09:28:17+01:00
Driver.Main: minor refactor do_code_gen

To clearly separate the JS-Backend from any other backend

- - - - -
46011cbc by Sylvain Henry at 2022-11-01T09:28:17+01:00
Configure: fix echo on Mac, add ghcjs target OS

- - - - -
b3ddb708 by Sylvain Henry at 2022-11-01T09:28:17+01:00
Configure: fix previous commit

- - - - -
92cc4acf by Luite Stegeman at 2022-11-01T09:28:17+01:00
fix package name in module name field of system dependencies

- - - - -
47d77601 by Luite Stegeman at 2022-11-01T09:28:17+01:00
fix duplicate module name in symbols

- - - - -
10e39a66 by doyougnu at 2022-11-01T09:28:17+01:00
GHCi.FFI: ignore ffi.h and friends for js-backend

- - - - -
de33e625 by Sylvain Henry at 2022-11-01T09:28:17+01:00
RTS: fix build of native rts

- - - - -
0bb3dd9b by Sylvain Henry at 2022-11-01T09:28:17+01:00
Remove temporary -fjavascript flag

- - - - -
8afa7d9d by Sylvain Henry at 2022-11-01T09:28:17+01:00
Codegen: fix symbol names ppr

- - - - -
a5e2931a by Sylvain Henry at 2022-11-01T09:28:17+01:00
Outputable: add ShortText instance

- - - - -
e61f6315 by Sylvain Henry at 2022-11-01T09:28:17+01:00
Linker: enhance debugging message

- - - - -
e9d7802e by Sylvain Henry at 2022-11-01T09:28:17+01:00
Remove unused ghcjs unit related code

- - - - -
43720677 by Sylvain Henry at 2022-11-01T09:28:17+01:00
ghci: Avoid unused-xyz warnings

- - - - -
e5424368 by Sylvain Henry at 2022-11-01T09:28:17+01:00
Linker: remove wiring of ghcjs-prim and ghcjs-th

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

- - - - -
9370b34b by Sylvain Henry at 2022-11-01T09:28:17+01:00
Add outputable instance for Deps

- - - - -
91eb3e9c by doyougnu at 2022-11-01T09:28:17+01: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

- - - - -
2a9c1d86 by Sylvain Henry at 2022-11-01T09:28:17+01:00
Rename u_env into unit_env (more common)

- - - - -
b3cf255e by Sylvain Henry at 2022-11-01T09:28:17+01:00
Linker: deduplication + fixes

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

- - - - -
ee072345 by Sylvain Henry at 2022-11-01T09:28:17+01:00
Linker: reenable packStrings (not yet implemented though)

- - - - -
df2b0913 by Sylvain Henry at 2022-11-01T09:28:17+01:00
ShortText: add singleton

- - - - -
5f84d72d by Sylvain Henry at 2022-11-01T09:28:17+01:00
Linker: force less efficient (but working) static encoding

- - - - -
60d7ff83 by Luite Stegeman at 2022-11-01T09:28:17+01:00
add GHCJS modules to base package

- - - - -
38bc27e7 by Sylvain Henry at 2022-11-01T09:28:17+01:00
Linker: remove JS Shims,tiny GHC.Linker refactor

- - - - -
1f5e230f by doyougnu at 2022-11-01T09:28:17+01:00
Hadrian: QuickJS ways [] --> Set

- - - - -
251776dc by doyougnu at 2022-11-01T09:28:17+01: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.

- - - - -
797f2800 by doyougnu at 2022-11-01T09:28:17+01:00
JS: silence haddock warnings

JS Backend: remove misc. warnings

- - - - -
0942489b by doyougnu at 2022-11-01T09:28:17+01:00
JS Backend: ghcjs_HOST_OS --> js_HOST_ARCH

- - - - -
905c12a2 by Sylvain Henry at 2022-11-01T09:28:17+01: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

- - - - -
c8a512e1 by Sylvain Henry at 2022-11-01T09:28:17+01: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

- - - - -
aa1dfa2c by Sylvain Henry at 2022-11-01T09:28:17+01: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)

- - - - -
b014b79b by Sylvain Henry at 2022-11-01T09:28:17+01: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

- - - - -
9bfa5350 by doyougnu at 2022-11-01T09:28:17+01: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.

- - - - -
c1f2fee1 by Sylvain Henry at 2022-11-01T09:28:17+01: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

- - - - -
c22ed97f by Sylvain Henry at 2022-11-01T09:28:17+01:00
Add primops

Add primop

- - - - -
e8653ffd by doyougnu at 2022-11-01T09:28:17+01: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

- - - - -
1512269d by doyougnu at 2022-11-01T09:28:17+01:00
Base: Adapt primitives to JS backend, add base.js

- - - - -
4a68f980 by doyougnu at 2022-11-01T09:28:17+01:00
Base: Remove binding forms in JS ffi

- - - - -
d6b65306 by Josh Meredith at 2022-11-01T09:28:17+01:00
Replace GHCJS Objectable with GHC Binary

- - - - -
45a51350 by Sylvain Henry at 2022-11-01T09:28:17+01:00
Binary: remove unused Map instance

- - - - -
039e0f21 by Sylvain Henry at 2022-11-01T09:28:17+01:00
CodeGen: Add export list

- - - - -
6397cf6f by Sylvain Henry at 2022-11-01T09:28:17+01:00
Primops: add some Int64/Word64 primops

- - - - -
48cc267c by Sylvain Henry at 2022-11-01T09:28:17+01:00
base: fix one ffi import

- - - - -
b4f5acb5 by doyougnu at 2022-11-01T09:28:17+01: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.

- - - - -
a1e0db69 by doyougnu at 2022-11-01T09:28:17+01:00
fixup: remove redundant struct.js.pp in js_base

- - - - -
6ff6085a by doyougnu at 2022-11-01T09:28:17+01:00
JS.Linker: enable linker RTS symbols

- - - - -
5d4bcb15 by doyougnu at 2022-11-01T09:28:17+01:00
base.GHCJS: adapt Prim to direct call FFI format

- - - - -
851b2192 by doyougnu at 2022-11-01T09:28:17+01:00
Linker: Load JSVal from base not ghc-prim

- - - - -
1bdf3cc2 by doyougnu at 2022-11-01T09:28:17+01:00
fixup: caught one more reference to JSVal in prim

- - - - -
cd336990 by Sylvain Henry at 2022-11-01T09:28:17+01:00
base: match on js arch , not ghcjs os

- - - - -
ce5513d3 by Sylvain Henry at 2022-11-01T09:28:17+01:00
Fix MK_JSVAL

- - - - -
14604a13 by doyougnu at 2022-11-01T09:28:17+01:00
Prim: cleanup comments

- - - - -
e0f08c68 by doyougnu at 2022-11-01T09:28:17+01:00
JS.Prim: add Int64 PrimOps

- - - - -
9debf57d by Sylvain Henry at 2022-11-01T09:28:17+01:00
Vendor MD5 lib

- - - - -
cc6f808a by Sylvain Henry at 2022-11-01T09:28:17+01:00
More 64-bit primops

- - - - -
ab6b9786 by Sylvain Henry at 2022-11-01T09:28:17+01:00
CodeGen: use if10 helper

- - - - -
aff475ba by Sylvain Henry at 2022-11-01T09:28:17+01:00
Ppr: fix selector to avoid adding a newline

- - - - -
e0eec69e by doyougnu at 2022-11-01T09:28:17+01:00
base: GHCJS.Prim make ffi imports use anon funcs

- - - - -
a2257b62 by Sylvain Henry at 2022-11-01T09:28:17+01:00
Linker: disable invalid constructors again

- - - - -
e9c6ee18 by Sylvain Henry at 2022-11-01T09:28:18+01:00
More 64-bits primops

- - - - -
a0151b25 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Fix base_write function

- - - - -
eba4ac82 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Fix base_write for 32-bit size_t

- - - - -
76d120ff by Sylvain Henry at 2022-11-01T09:28:18+01:00
Configure: fix detection of the target toolchain

- - - - -
b4630b2a by Sylvain Henry at 2022-11-01T09:28:18+01:00
Remove js_base directory

- - - - -
1d67f17d by Sylvain Henry at 2022-11-01T09:28:18+01:00
Kill Node when the main loop reports an unhandled exception

- - - - -
58499e44 by Sylvain Henry at 2022-11-01T09:28:18+01:00
CodeGen: preparation to make match on primops complete

- - - - -
b2a7e9ce by Sylvain Henry at 2022-11-01T09:28:18+01:00
Primops: fix Compact primops

- - - - -
839bfa9b by Sylvain Henry at 2022-11-01T09:28:18+01:00
Ignore result arity for some exception primops

- - - - -
62a5e525 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Fix more primops. Bump array submodule!

- - - - -
7cbb74c3 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Compact: fix return of 3 values

- - - - -
e47ddb89 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Configure: switch to absolute path

- - - - -
2ad10f1e by Sylvain Henry at 2022-11-01T09:28:18+01:00
Add a few primops

- - - - -
156a1d9c by Sylvain Henry at 2022-11-01T09:28:18+01:00
Primop: implement WordAdd2

- - - - -
8e8df87d by Luite Stegeman at 2022-11-01T09:28:18+01: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

- - - - -
63d313c0 by Josh Meredith at 2022-11-01T09:28:18+01:00
Replace ShortText with (Lexical)FastString in GHCJS backend

- - - - -
7f3d8267 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Primops: add arithmetic ops

Primops: add decodeDoubleInt64 back

Primop: added timesInt2#

Primop: add mulWord32 and mul2Word32

- - - - -
d4a40234 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Reduce dependency on goog

- - - - -
2a758c76 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Primop: implement quotWord32, remWord32, and quotRemWord32

- - - - -
00b57675 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Primop: Implement quotRem2Word32, misc fixes

Primop: implement quotRem2Word32

Primop: fix timesInt2#

Primop: fix some shifting primops

- - - - -
3fea1dcf by Sylvain Henry at 2022-11-01T09:28:18+01:00
Fix bug in upd_frame

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

- - - - -
9a7e13c3 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Primop: throw an exception for unimplemented primops

- - - - -
544603b3 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Primop: fix remWord32

- - - - -
8599b57a by Josh Meredith at 2022-11-01T09:28:18+01: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

- - - - -
5a6f9146 by Sylvain Henry at 2022-11-01T09:28:18+01:00
resultSize: correctly handle Void#

- - - - -
96475620 by Sylvain Henry at 2022-11-01T09:28:18+01: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!

- - - - -
4b00505b by Sylvain Henry at 2022-11-01T09:28:18+01:00
StgToJS.Apply: Docs

Doc

Doc

- - - - -
35109092 by Josh Meredith at 2022-11-01T09:28:18+01:00
Fix EMSDK configure condition

- - - - -
d17c75a1 by doyougnu at 2022-11-01T09:28:18+01:00
StgToJS.Arg: Unboxable Literal Optimization note

- - - - -
0db9b9c4 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Fix Outputable instances for JExpr/JVal

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

- - - - -
2ec1d0e7 by doyougnu at 2022-11-01T09:28:18+01:00
configure: avoid CXX stdlib check for js backend

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

- - - - -
837c1e04 by doyougnu at 2022-11-01T09:28:18+01:00
fixup: misc. fixes post rebase

- - - - -
3eaac985 by Sylvain Henry at 2022-11-01T09:28:18+01:00
PrimOps: add more 64-bit primops

PrimOp: implement more 64-bit primops + PM fix

Ensure that we cover every primop explicitly

- - - - -
46e0295a by Sylvain Henry at 2022-11-01T09:28:18+01:00
PrimOp: correclty (un)handle new thread related primops

- - - - -
ec3f86b3 by Sylvain Henry at 2022-11-01T09:28:18+01:00
PrimOp: disable LabelThreadOp for now

- - - - -
507f2fb2 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Minor doc/cleanup

Fix more redundant imports

- - - - -
ace7d730 by doyougnu at 2022-11-01T09:28:18+01:00
base: GHCJS.Prim directory --> GHC.JS.Prim

- - - - -
330a8a04 by Luite Stegeman at 2022-11-01T09:28:18+01:00
implement KeepAlive primop

- - - - -
edc5b65f by Sylvain Henry at 2022-11-01T09:28:18+01:00
Remove orphan instance for StaticArg

- - - - -
db70468a by Sylvain Henry at 2022-11-01T09:28:18+01:00
Remove redundant jsIdIdent' function

- - - - -
d7ec93ee by Sylvain Henry at 2022-11-01T09:28:18+01:00
Split StgToJS.Monad into StgToJS.{Monad,Ids,Stack}

- - - - -
7e4c112b by Sylvain Henry at 2022-11-01T09:28:18+01:00
Apply: remove commented case (wasn't optimized either in latest ghcjs)

- - - - -
269bead7 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Doc: Apply

Apply: doc and refactoring

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

- - - - -
aa7c85a5 by Sylvain Henry at 2022-11-01T09:28:18+01: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

- - - - -
2aaca866 by doyougnu at 2022-11-01T09:28:18+01: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

- - - - -
9870c338 by Sylvain Henry at 2022-11-01T09:28:18+01:00
GHCJS.Prim leftovers

- - - - -
2ac65c80 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Linker: fix linking issue for tuples

- - - - -
20510109 by Sylvain Henry at 2022-11-01T09:28:18+01:00
FFI: remove narrowing

Fix tests such as cgrun015 (Core lint error)

- - - - -
92b6f7da by Sylvain Henry at 2022-11-01T09:28:18+01:00
Linker: disable logs with default verbosity

- - - - -
ab2caf9e by Sylvain Henry at 2022-11-01T09:28:18+01:00
Append program name in top-level exception handler

- - - - -
30ed9aa6 by doyougnu at 2022-11-01T09:28:18+01:00
GHC.JS: Remove FIXMEs

JS.Syntax: Remove FIXMEs

JS.Make: remove FIXMEs

JS.Ppr/Transform: Remove FIXMEs

- - - - -
766d8393 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Primop: fix timesInt2#

Pass arith003 test

- - - - -
6e2055d6 by doyougnu at 2022-11-01T09:28:18+01:00
JS.Linker.Linker: remove FIXMEs, clean dead code

- - - - -
6dd07866 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Linker: link platform shim before the others

- - - - -
f1058a83 by Sylvain Henry at 2022-11-01T09:28:18+01: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

- - - - -
12cd4e27 by Sylvain Henry at 2022-11-01T09:28:18+01:00
PrimOp: fixup previous commit...

- - - - -
091be68d by Sylvain Henry at 2022-11-01T09:28:18+01:00
Primop: fixup previous commit

- - - - -
88717142 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Doc: minor changes

- - - - -
1119fe40 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Add debug option to watch for insertion of undefined/null in the stack

- - - - -
042c32bb by Sylvain Henry at 2022-11-01T09:28:18+01:00
Apply: fix tag generation

- - - - -
3f17a157 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Remove redundant import

- - - - -
0d11bb5d by Sylvain Henry at 2022-11-01T09:28:18+01:00
Testsuite: disable Cmm tests with the JS backend

- - - - -
9542788b by Sylvain Henry at 2022-11-01T09:28:18+01:00
Base: fix c_interruptible_open

- - - - -
a9c8d0d1 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Base: fix typo in long_from_number

- - - - -
c3d5ed52 by Sylvain Henry at 2022-11-01T09:28:18+01:00
Env: only add program name to errors, not to traces

- - - - -
951ee7bf by Sylvain Henry at 2022-11-01T09:28:18+01:00
Testsuite: disable more Cmm tests

- - - - -
b89fead4 by doyougnu at 2022-11-01T09:28:18+01: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

- - - - -
cc72fb1a by doyougnu at 2022-11-01T09:28:18+01:00
JS RTS: remove FIXMEs

StgToJS.Rts.Types: Remove FIXMEs

- - - - -
5a710e3a by Sylvain Henry at 2022-11-01T09:28:18+01:00
Primop: fix bswap32/64 (cf cgrun072)

- - - - -
49d29bdf by Sylvain Henry at 2022-11-01T09:28:18+01:00
Testsuite: normalise ghc program name

- - - - -
49bfc800 by doyougnu at 2022-11-01T09:28:18+01:00
JS Backend: Remove FIXMEs

StgToJS.Apply: Remove FIXMEs

StgToJS.FFI: remove FIXMEs

StgToJS.Expr: remove FIXMEs

StgToJS: Remove FIXMEs

- - - - -
02dca6bc by Sylvain Henry at 2022-11-01T09:28:18+01:00
Enable RTS args filtering (cf cgrun025)

- - - - -
9ebdde4f by Sylvain Henry at 2022-11-01T09:28:18+01:00
Remove trailing whitespaces (whitespace test)

- - - - -
a25f5873 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Testsuite: remove platform prefix for unlit tool

- - - - -
5b327189 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Primop: fix Int64 conversion/negate (integerConversions test)

- - - - -
0f850ac8 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Linker: remove message with default verbosity

- - - - -
5b7f8f80 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Testsuite: normalise .jsexe suffix

- - - - -
ffb3c708 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Remove warning about orphan instance

- - - - -
8c12d8b5 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Compactor: disable dead code

- - - - -
7f42f9b9 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Exception: implement raiseUnderflow etc. as primops

- - - - -
5117ead2 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Primop: fix Int8/18 quot/rem

- - - - -
2c737d75 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Linker: refactor wired-in deps

- - - - -
4cce6072 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Ppr: remove useless left padding for functions in JS dumps

- - - - -
d5e3ecaa by Josh Meredith at 2022-11-01T09:28:19+01:00
Disable llvm ways and ghci for JS backend testsuite

- - - - -
6a73363e by Sylvain Henry at 2022-11-01T09:28:19+01:00
StaticPtr: don't generate CStubs for the JS backend

- - - - -
8b97e5c1 by Sylvain Henry at 2022-11-01T09:28:19+01:00
StaticPtr: fix hs_spt_lookup after upstream change

- - - - -
17205732 by Sylvain Henry at 2022-11-01T09:28:19+01: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).

- - - - -
660ba6ed by Sylvain Henry at 2022-11-01T09:28:19+01: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.

- - - - -
a9ca0115 by Sylvain Henry at 2022-11-01T09:28:19+01:00
CPP: fix LINE markers. Only disable them for JS

- - - - -
7fc3dada by Luite Stegeman at 2022-11-01T09:28:19+01:00
add JavaScript files listed in js-sources to package archives

- - - - -
c443e9c0 by Luite Stegeman at 2022-11-01T09:28:19+01:00
update rts js files to include recent fixes

- - - - -
47db92a7 by Luite Stegeman at 2022-11-01T09:28:19+01:00
fix definitions in js/rts.h

- - - - -
ec9c1ce0 by Josh Meredith at 2022-11-01T09:28:19+01:00
stopgap fix for missing ghc-pkg in cross-compiler tests

- - - - -
b6b5de8d by Sylvain Henry at 2022-11-01T09:28:19+01:00
Testsuite: better fix for finding prefixed tools

- - - - -
0cfa4ef2 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Ppr: add hangBrace helper

- - - - -
d943b233 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Only declare ccs var in profiling mode

- - - - -
bc935d9e by Sylvain Henry at 2022-11-01T09:28:19+01:00
Don't consider recursive bindings as inline nor as evaluated

Fix mdo001

- - - - -
aee7b63b by Sylvain Henry at 2022-11-01T09:28:19+01:00
Hadrian: disable shared libs for JS target

- - - - -
8139e93d by Sylvain Henry at 2022-11-01T09:28:19+01:00
Support -ddump-stg-final with the JS backend

- - - - -
359a2f03 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Add ticky_ghc0 flavour transformer to ticky stage1

- - - - -
43a3491c by Sylvain Henry at 2022-11-01T09:28:19+01:00
Don't read object file when -ddump-js isn't passed

- - - - -
b1956dba by Sylvain Henry at 2022-11-01T09:28:19+01:00
Object: remove dead code + renaming

- - - - -
e3054c1d by Sylvain Henry at 2022-11-01T09:28:19+01:00
Object: replace SymbolTableR with Dictionary

- - - - -
8910adb1 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Object: refactoring

- - - - -
62051b6d by Sylvain Henry at 2022-11-01T09:28:19+01:00
RTS: link platform.js before the others!

- - - - -
fbbe54e0 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Hadrian: treat JS objects similarly to other objects

- - - - -
6abb5436 by Luite Stegeman at 2022-11-01T09:28:19+01:00
fix javascript FFI calls for read and write

- - - - -
adfd785e by doyougnu at 2022-11-01T09:28:19+01:00
propagate ppr code changes to JS backend

- - - - -
2d02ef30 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Switch from Data.Binary and ByteString to BinHandle

- - - - -
5500f86f by Sylvain Henry at 2022-11-01T09:28:19+01:00
Perf: use Ppr's LeftMode to output JS

- - - - -
28d07267 by doyougnu at 2022-11-01T09:28:19+01: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

- - - - -
710329f3 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Move platform.js to base (it must be linked first)

- - - - -
e1cfbfa1 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Remove old shim directory

- - - - -
235b01f7 by doyougnu at 2022-11-01T09:28:19+01: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

- - - - -
d0ac611b by doyougnu at 2022-11-01T09:28:19+01:00
GHC.Utils.Binary: BinDictionary -> FSTable

Rename to avoid naming conflict with haddock.

- - - - -
fc83ddfa by Josh Meredith at 2022-11-01T09:28:19+01:00
Adjust derefnull test exit code for ghcjs

- - - - -
28beb8f0 by doyougnu at 2022-11-01T09:28:19+01:00
Fix Driver missing type signature warnings

- - - - -
51702dbc by doyougnu at 2022-11-01T09:28:19+01:00
PipeLine.Execute: silence warnings on JS backend

- - - - -
1e32acc3 by doyougnu at 2022-11-01T09:28:19+01:00
JS.Primops: Add Bit reverse ops

- - - - -
1f2d7d7a by doyougnu at 2022-11-01T09:28:19+01:00
SysTools.Tasks: quiet non-totality warnings

- - - - -
b000df6f by doyougnu at 2022-11-01T09:28:19+01:00
JS.Primops: Add InterlockedExchange Addr Word

- - - - -
2deda1f0 by Sylvain Henry at 2022-11-01T09:28:19+01:00
base: conditional js-sources

- - - - -
902dc242 by Sylvain Henry at 2022-11-01T09:28:19+01:00
TH: add support for JS files

- - - - -
0746db88 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Linker: fix creation of directories in output paths

- - - - -
3ecf993e by Sylvain Henry at 2022-11-01T09:28:19+01:00
Backpack: fix empty stubs

- - - - -
93c64c87 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Add encodeDouble/Float RTS functions

- - - - -
89944169 by Sylvain Henry at 2022-11-01T09:28:19+01:00
encodeDouble: correctly handle 0 base

- - - - -
6e438b76 by doyougnu at 2022-11-01T09:28:19+01:00
JS.Primops: Add listThreads op

- - - - -
70519622 by doyougnu at 2022-11-01T09:28:19+01:00
JS.Primops: Add Read/WriteAddrOp ops

- - - - -
30c1583b by doyougnu at 2022-11-01T09:28:19+01:00
JS: Linker and Compactor: cleanup and docs

Compactor: Cleanup: Remove dead comments

JS.Linker.Types: cleanup and document module

- - - - -
8d9562bd by doyougnu at 2022-11-01T09:28:19+01:00
StgToJS.Linker: Add docs to utility modules

StgToJS.Linker.Utils: more docs

StgToJS.Linker.Archive: more docs

- - - - -
74bb7959 by doyougnu at 2022-11-01T09:28:19+01:00
StgToJS.Object: Add documentation

- - - - -
f9a9da6b by Sylvain Henry at 2022-11-01T09:28:19+01:00
Refactor Expr

- - - - -
f8e61577 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Object: reduce pinned allocation. And don't forget to hClose invalid objects

- - - - -
d789c629 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Fix pdep (cgrun075)

- - - - -
b8aec0d5 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Fix error message (don't mention emscripten)

- - - - -
09821db5 by Sylvain Henry at 2022-11-01T09:28:19+01:00
Add Float/Word casts

- - - - -
76f829aa by Sylvain Henry at 2022-11-01T09:28:19+01:00
Disable HPC tests with JS backend

- - - - -
bbecd081 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Fix encodeDouble/Float

- - - - -
e799d864 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Implement putchar (fix cgrun015)

- - - - -
17c8c141 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Fix decoding of denormalized floats

- - - - -
7f5389a8 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Fix isFloatDenormalized function

- - - - -
66d09993 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Reuse convert buffer

- - - - -
4e08413e by Sylvain Henry at 2022-11-01T09:28:20+01:00
Reuse convert buffer bis

- - - - -
1125a5f7 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Skip some tests that require the dynamic linker

- - - - -
5699c280 by Josh Meredith at 2022-11-01T09:28:20+01:00
JavaScript ShrinkSmallMutableArrayOp_Char & GetSizeofSmallMutableArrayOp

- - - - -
acd28465 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable more linker tests

- - - - -
c2a89bef by Sylvain Henry at 2022-11-01T09:28:20+01: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

- - - - -
166e7cf5 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Skip T14373 because it requires Cmm

- - - - -
6ab8f0e3 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable cg010 with JS backend

- - - - -
a9c1bcb0 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Testsuite: better normalisation of .jsexe extension

- - - - -
d8e5cb24 by doyougnu at 2022-11-01T09:28:20+01: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

- - - - -
f5f8e5df by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable recomp015

- - - - -
8444d963 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Minor refactoring

- - - - -
3916138c by Sylvain Henry at 2022-11-01T09:28:20+01:00
Temporary fix the testsuite bug

- - - - -
5299be22 by doyougnu at 2022-11-01T09:28:20+01:00
JS.StgToJS.Types: Docs and cleanup

- - - - -
a6dcb043 by Josh Meredith at 2022-11-01T09:28:20+01:00
change JS.Transform.Idents* to use UniqDSet from Set

- - - - -
0dc4d34a by Sylvain Henry at 2022-11-01T09:28:20+01:00
Minor Linker cleanup

Minor cleanup

- - - - -
cdadb904 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Linker: load all the dependent units transitively

- - - - -
768a8f4b by doyougnu at 2022-11-01T09:28:20+01:00
JS: Add Docs and cleanup StgToJS.{Arg,Ids}

JS.Arg: docs and cleanup

StgToJS.Arg: add minimal docs

StgToJS.Ids: Add header

- - - - -
42609682 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Implement h$sleep (T5611)

- - - - -
428e6a1a by Sylvain Henry at 2022-11-01T09:28:20+01:00
Linker: don't link the same unit twice

- - - - -
92650f4e by doyougnu at 2022-11-01T09:28:20+01: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

- - - - -
6a2d1fb7 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable compact tests

- - - - -
0d27e6d3 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Add support for JS files passed on the command line

- - - - -
e4c07387 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Minor cleanup in compactor

- - - - -
c48d885a by Sylvain Henry at 2022-11-01T09:28:20+01:00
Fix encoding of unboxed strings (don't pass through FastString/h$str)

- - - - -
7b4633db by doyougnu at 2022-11-01T09:28:20+01:00
JS: Misc fixes post Del-Cont rebase

- - - - -
4d8ebdda by Sylvain Henry at 2022-11-01T09:28:20+01:00
Minor cleanup

- - - - -
f39d4d86 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Add log1p and expm1 (fix cgrun078)

- - - - -
d63ba818 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Assume existence of Math.fround and use it in Float's primops

- - - - -
952d772d by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable "debug" test

- - - - -
a41b7e84 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Implement copyMutableArray with overlap support

- - - - -
b8de79f4 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Skip CmmSwitchTests

- - - - -
19a01519 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Fix WordToDouble/WordToFloat (Word2Float32 test)

- - - - -
c6adc6d0 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Skip one more test

- - - - -
889b7dcd by Sylvain Henry at 2022-11-01T09:28:20+01:00
Fix after GHC.Tuple to GHC.Tuple.Prim

- - - - -
4a7894fb by Sylvain Henry at 2022-11-01T09:28:20+01:00
Fix InterlockedExchange primops (cgrun080)

- - - - -
4bec82fc by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable T12059

- - - - -
21aa43d5 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Implement sqrt/sqrtf (fix T14619)

- - - - -
441c1a10 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Skip more tests

- - - - -
1d4cfb34 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable conc012

- - - - -
5cefab5e by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable more Cmm tests

- - - - -
3184f196 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Fix AtomicPrimops test. Some refactoring in Prim too

- - - - -
766b8f6b by Sylvain Henry at 2022-11-01T09:28:20+01:00
Use GHCJS's signExtend/narrow

- - - - -
f47f40a5 by Josh Meredith at 2022-11-01T09:28:20+01:00
Implement get/set thread label prims

- - - - -
484554dc by doyougnu at 2022-11-01T09:28:20+01:00
JS: remove Linker.Archive module

- - - - -
2e16f61e by Sylvain Henry at 2022-11-01T09:28:20+01:00
Start disabling tests that use TH/interpreter

- - - - -
13d3629a by Josh Meredith at 2022-11-01T09:28:20+01:00
Add flagged bounds checking to JS primops

- - - - -
7618a745 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable more tests

- - - - -
74f43554 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable T1791

- - - - -
c97891f7 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Raise NonTermination as an async exception

- - - - -
2f22bdb7 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Expect IOPort test to be broken

- - - - -
b41e5701 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Implement rts_isThreaded (fix jules_xref2)

- - - - -
1afc18b8 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable outofmem2 test

- - - - -
7549ef26 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable delimited continuation tests

- - - - -
eff390f4 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable native RTS flag tests

- - - - -
ec5fd113 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable more tests

- - - - -
b00e65d8 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable more tests

- - - - -
74d86d08 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Skip more tests

- - - - -
524bf175 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable try_putmvar tests that use C files

- - - - -
f8ee8e75 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Disable even more tests

- - - - -
f7caed95 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Linker: remove dead code (base, compactor)

- - - - -
3a045551 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Better shims linking

- - - - -
bb3b1bc4 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Make isJsFile a bit faster by only reading the header

- - - - -
b99aec42 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Linker: write directly into output file

- - - - -
04d87180 by Sylvain Henry at 2022-11-01T09:28:20+01:00
Linker: more refactoring

- - - - -
c33f4971 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Lazy loading of JStat in object code

- - - - -
1e1841a7 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Use Ppr hack to render directly into a file

- - - - -
24deacc5 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Fix backpack dependencies

- - - - -
2955d32a by doyougnu at 2022-11-01T09:28:21+01: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.

- - - - -
5038385e by doyougnu at 2022-11-01T09:28:21+01: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

- - - - -
7774b4e7 by Josh Meredith at 2022-11-01T09:28:21+01:00
use exit code 134 for JS prim bounds checks

- - - - -
fcb7be1d by Sylvain Henry at 2022-11-01T09:28:21+01:00
Remove panic in getObject

- - - - -
5d2ea946 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Add debug and Outputable instances

- - - - -
b31784db by Sylvain Henry at 2022-11-01T09:28:21+01:00
Remove backup file

- - - - -
45414f79 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Skip overflow tests

- - - - -
598c3fb7 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Fix RTS includes for native build

- - - - -
57021955 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Doc

- - - - -
fadd1b8b by Sylvain Henry at 2022-11-01T09:28:21+01:00
Add perf-js Hadrian flavour

- - - - -
46506483 by doyougnu at 2022-11-01T09:28:21+01:00
JS.Syntax: fix doc wording

- - - - -
f1bf31b4 by doyougnu at 2022-11-01T09:28:21+01:00
Driver: JS: tweak error message

- - - - -
f92ddef1 by Josh Meredith at 2022-11-01T09:28:21+01:00
Factor JS platform constants and h$programArgs/h$rtsArgs into functions with init

- - - - -
780bcbfa by Josh Meredith at 2022-11-01T09:28:21+01:00
Fix function name from h$shrinkMutableArray to h$shrinkMutableCharArray

- - - - -
5f91ffe5 by Luite Stegeman at 2022-11-01T09:28:21+01:00
allow async exceptions to be thrown from outside a haskell thread

- - - - -
53468ca2 by Sylvain Henry at 2022-11-01T09:28:21+01: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.

- - - - -
cc1f8cc6 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Support RTS globals (used by GHC) and EISDIR

Did this while trying to fix CallArity1 (still failing)

- - - - -
9c004bbf by Sylvain Henry at 2022-11-01T09:28:21+01: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

- - - - -
ddab551f by Sylvain Henry at 2022-11-01T09:28:21+01:00
Remove dead code

- - - - -
12f91c58 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Make ident supply strict (no need to make it lazy, list already is)

- - - - -
2fdc991c by Sylvain Henry at 2022-11-01T09:28:21+01:00
Add optional assign to DeclStat and remove dead code

- - - - -
85306fc1 by doyougnu at 2022-11-01T09:28:21+01: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'.

- - - - -
7e2af61d by Luite Stegeman at 2022-11-01T09:28:21+01:00
start a subtransaction in a catchStm block

- - - - -
aec731ec by Sylvain Henry at 2022-11-01T09:28:21+01:00
Use FastMutInt in G for uniques

- - - - -
24d0a8bf by Sylvain Henry at 2022-11-01T09:28:21+01:00
Compactor: remove dead code

- - - - -
bea17167 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Compactor: remove more dead code

- - - - -
3ec76a14 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Compactor: remove unused debug code

- - - - -
d7589056 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Compactor: remove unimplemented packStrings

- - - - -
405c4fef by Sylvain Henry at 2022-11-01T09:28:21+01:00
RTS: fix query/replace error

- - - - -
0ae7fa77 by Luite Stegeman at 2022-11-01T09:28:21+01:00
remove unused STM check invariants

- - - - -
61154def by Josh Meredith at 2022-11-01T09:28:21+01:00
Refactor renaming functions from Compactor module into the Linker

- - - - -
80fa13f9 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Linker: refactor and cleanup after compactor removal

- - - - -
bfafaa9f by Sylvain Henry at 2022-11-01T09:28:21+01:00
Filter empty exports to avoid printing a lot of useless newlines

- - - - -
42db2e67 by Sylvain Henry at 2022-11-01T09:28:21+01:00
RTS: remove dangling semicolons

- - - - -
dbfaadec by Sylvain Henry at 2022-11-01T09:28:21+01:00
RTS: remove more dangling semicolons

- - - - -
9569b2e2 by Sylvain Henry at 2022-11-01T09:28:21+01:00
RTS: less semicolons

- - - - -
11602431 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Only initialize statics once!

- - - - -
5b912c4e by Sylvain Henry at 2022-11-01T09:28:21+01:00
Minor refactoring: avoid unpacking ShortText too soon

- - - - -
9d228e6f by Sylvain Henry at 2022-11-01T09:28:21+01:00
Remove unused derived instances

- - - - -
717c0107 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Use Ident in ClosureInfo instead of FastString

- - - - -
e1cfce1c by Sylvain Henry at 2022-11-01T09:28:21+01:00
Add identFS helper

- - - - -
77a66710 by Sylvain Henry at 2022-11-01T09:28:21+01: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.

- - - - -
f2d4d196 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Refactor symbol generation.

Avoid concatenating Strings or FastStrings. Concatenate ByteString
instead.

- - - - -
bc102651 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Enhance Label symbol generation

- - - - -
8e609063 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Rename fresh idents with their FastString unique

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

- - - - -
1099be39 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Disable more tests

- - - - -
cbb93221 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Disable more tests

- - - - -
40f6f444 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Disable ghc-heap tests

- - - - -
a0c8acab by Sylvain Henry at 2022-11-01T09:28:21+01:00
Mark flaky test as fragile

- - - - -
c022953d by Sylvain Henry at 2022-11-01T09:28:21+01:00
Fix bound checking

- - - - -
d459500a by Sylvain Henry at 2022-11-01T09:28:21+01:00
Fix note

- - - - -
d186f2bb by Sylvain Henry at 2022-11-01T09:28:21+01:00
Disable more tests

- - - - -
1339e328 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Disable more tests

- - - - -
dc27c9b6 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Disable more tests

- - - - -
50a5ef80 by doyougnu at 2022-11-01T09:28:21+01:00
testsuite: force ghc-pkg to use stage1

- - - - -
3b616e34 by doyougnu at 2022-11-01T09:28:21+01: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.

- - - - -
e5513926 by doyougnu at 2022-11-01T09:28:21+01:00
testsuite: rts disable rtsflags001 for JS backend

- - - - -
8e0cd904 by Josh Meredith at 2022-11-01T09:28:21+01:00
Disable runInteractiveProcess tests for ghcjs

- - - - -
4f117717 by Josh Meredith at 2022-11-01T09:28:21+01:00
Disable fed001 test for javascript backend

- - - - -
8f76fff2 by Josh Meredith at 2022-11-01T09:28:21+01:00
Disable driver tests for JS backend that use foreign exports

- - - - -
23cc6d30 by Josh Meredith at 2022-11-01T09:28:21+01:00
Disable ImpSafeOnly01..10 for JavaScript backend

- - - - -
798ecf39 by Sylvain Henry at 2022-11-01T09:28:21+01:00
Add missing GHC globals

- - - - -
cf716b88 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: disable ffi for JS backend

More Specically disable:

ffi006
ffi008
ffi011
ffi013
ffi018
ffi019
ffi020
ffi021
ffi023

- - - - -
e4204886 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: disable ghci linking tests for JS

Specifically:

ghcilink001
ghcilink003
ghcilink005
ghcilink006

- - - - -
c8e21083 by Sylvain Henry at 2022-11-01T09:28:22+01:00
Fix comment

- - - - -
e524d733 by Sylvain Henry at 2022-11-01T09:28:22+01:00
More bound checking

- - - - -
01a48b0c by Sylvain Henry at 2022-11-01T09:28:22+01:00
Fix some Word reading in Prim

- - - - -
53470d03 by Sylvain Henry at 2022-11-01T09:28:22+01:00
Implement openDir

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

- - - - -
a03aa040 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: disable cabal tests for JS backend

- - - - -
4ab0708f by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: disable bkpcabal[01-07] for JS backend

- - - - -
9bf25e28 by doyougnu at 2022-11-01T09:28:22+01: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.

- - - - -
1a2d8fd1 by Sylvain Henry at 2022-11-01T09:28:22+01:00
Disable HPC tests

Bump hpc submodule

- - - - -
2be9b3c5 by Sylvain Henry at 2022-11-01T09:28:22+01:00
Avoid useless space change

- - - - -
a177cf46 by Sylvain Henry at 2022-11-01T09:28:22+01:00
Remove duplicated comment

- - - - -
aae4a5b1 by Sylvain Henry at 2022-11-01T09:28:22+01:00
Readd useless space

- - - - -
2d40950c by Sylvain Henry at 2022-11-01T09:28:22+01:00
Fix some rts.cabal.in rebase glitches

- - - - -
a8635170 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: disable T12233 tests for JS backend

- - - - -
d0c51ee6 by Sylvain Henry at 2022-11-01T09:28:22+01:00
Fix rts.cabal.in again

- - - - -
fdc3620f by Luite Stegeman at 2022-11-01T09:28:22+01:00
fix typo in dumpStackTop function

- - - - -
4d949aee by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: remove js_skip_csources, use c_src

- - - - -
a361fc75 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip recomp4,8 on JS backend

- - - - -
77550bdf by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip alloccounter1 and T19156 for JS

These tests fail due to missing primops

- - - - -
5865390b by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T7773 and topHandler01 for JS

- - - - -
73e35828 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip rdynamic and T2615 for JS Backend

- - - - -
48186ff3 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T4012 for JS backend

- - - - -
003ad502 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T15427 for JS backend

- - - - -
bef8b598 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T19481, T19381, T3474 for JS

- - - - -
e64d3559 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip stack004 for JS backend

- - - - -
ef248290 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: JS skip ThreadDelay001 and encoding004

- - - - -
72889fcd by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip openFile003 for JS backend

- - - - -
e61f8977 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: disable T1959 and capi tests for JS

- - - - -
b9d405af by Sylvain Henry at 2022-11-01T09:28:22+01:00
Replace c_src with req_c

- - - - -
142942ce by Sylvain Henry at 2022-11-01T09:28:22+01:00
Fix testsuite

- - - - -
d89c4201 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: disable CallArity, LintEtaExpand etc

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

CallArity1
LintEtaExpand
T9595
T10942
T18522-dbg-ppr

- - - - -
7089ce3b by Luite Stegeman at 2022-11-01T09:28:22+01:00
fix isJsCore predicates for base package

- - - - -
c1b0d550 by Sylvain Henry at 2022-11-01T09:28:22+01:00
CI: add CI script for the JS backend

- - - - -
08cf4a66 by Sylvain Henry at 2022-11-01T09:28:22+01:00
Fix rts.cabal again

- - - - -
5b318bff by Sylvain Henry at 2022-11-01T09:28:22+01:00
Fix invalid use of predStage

- - - - -
96ecfc70 by Sylvain Henry at 2022-11-01T09:28:22+01:00
Fix hlint errors on CI

- - - - -
719b13d4 by doyougnu at 2022-11-01T09:28:22+01: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

- - - - -
b92834f4 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip EventlogOutput{1,2} for JS backend

- - - - -
fe1f3a99 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T1679, T2469, T4038 for JS

and also skip UnliftedTVar2

- - - - -
648e5d10 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T4891 for JS backend

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

- - - - -
e1cd80e9 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T8308 for JS

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

- - - - -
dbd3a57f by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T9405 for JS

JS backend does not yet support ticky

- - - - -
f17d64d6 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T14624, T20199 for JS backend

- - - - -
c02284cd by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T5594 and T5402 for JS

- - - - -
b650d375 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip openFile00{5,7} readFile001 for JS

- - - - -
c8f8ec02 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T11004 and T12504 for JS

- - - - -
a5fc2314 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip hGetBuf001, hReady00{1,2} for JS

- - - - -
16955c95 by doyougnu at 2022-11-01T09:28:22+01:00
fixup: missed readwrite002

- - - - -
fa732b26 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T18642 for JS

- - - - -
24dd6e4a by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip TargetContents for JS

- - - - -
c3557faf by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T18481a T10678 and friends

- - - - -
07a15e4c by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip RepPolyUnliftedDatatype2 for JS

- - - - -
cb436cf3 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip ghci some tests

these throw not built for interactive use errors

- - - - -
2745d3d3 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip DocsInHiFileTH for JS

- - - - -
105ac546 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T7037, T7702, safePkg01 for JS

- - - - -
65efdf96 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip tests that throw gmake error

Specifically:

T15261a
T15261b
T16318
T17648
T20214
T21336c
rtsopts002
withRtsOpts

- - - - -
db820cbf by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T3837, hsc2hs003 typecheck.testeq1

- - - - -
c6fd2897 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip fat005 for JS

- - - - -
4d1f5691 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip topHandler02,03 for JS

- - - - -
3095f574 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip tests that unexpected pass/fail

- - - - -
07401b96 by Sylvain Henry at 2022-11-01T09:28:22+01:00
Try to fix Hadrian for native

- - - - -
244a3453 by Luite Stegeman at 2022-11-01T09:28:22+01:00
fix index.html template newlines and use all.js for now (at least it works)

- - - - -
f690d516 by Sylvain Henry at 2022-11-01T09:28:22+01:00
Fix testsuite typo

- - - - -
19166565 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip golden failure tests

Specifically:

GcStaticPointers
T13167
T14452
T16707
T17481
T7160
bkp32
fptr01

- - - - -
1b4dbfe3 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T13525 for JS

Fails for missing h$base_mkfifo

- - - - -
ac7ff0c7 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip tests which timeout on JS

Specifically:

Timeout001
listThreads
mask002

- - - - -
e0d1ac34 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip failing IO tests for JS

Specifically:

hClose002
hFileSize002
hSetBuffering003
sum_mod

- - - - -
8778d3ff by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip countReaders001 for JS

- - - - -
58e57454 by doyougnu at 2022-11-01T09:28:22+01:00
testsuite: skip T10414 for JS backend

- - - - -
4630ce02 by Luite Stegeman at 2022-11-01T09:28:23+01:00
correct stack offset when restarting an STM transaction

- - - - -
a3e4c984 by doyougnu at 2022-11-01T09:28:23+01:00
testsuite: skip T11155 T21336a T21869 for JS

- - - - -
d1fc7755 by doyougnu at 2022-11-01T09:28:23+01:00
testsuite: skip failing linker and hp2ps tests

- - - - -
b83e0a85 by doyougnu at 2022-11-01T09:28:23+01:00
testsuite: skip out of memory tests for JS

- - - - -
49bc8589 by doyougnu at 2022-11-01T09:28:23+01:00
testsuite: skip remaining failing tests for JS

- - - - -
ead844ef by doyougnu at 2022-11-01T09:28:23+01:00
testsuite: fix typo

- - - - -
9eb7cba8 by doyougnu at 2022-11-01T09:28:23+01:00
hadrian: fix js and native testing

- - - - -
4ef34221 by Sylvain Henry at 2022-11-01T09:28:23+01:00
Skip one test

- - - - -
eac64fac by Sylvain Henry at 2022-11-01T09:28:23+01:00
Skip one more test

- - - - -
bc6b233b by Sylvain Henry at 2022-11-01T09:28:23+01:00
Add missing comma

- - - - -
c1378620 by Sylvain Henry at 2022-11-01T09:28:23+01:00
Only change the test environment for cross

- - - - -
b7b79316 by Sylvain Henry at 2022-11-01T09:28:23+01:00
Force creation of hpc/haddock/runghc programs for cross

- - - - -
fbc47abc by doyougnu at 2022-11-01T09:28:23+01:00
process: skip process tests for JS backend

- - - - -
5ec173d9 by doyougnu at 2022-11-01T09:28:23+01:00
testsuite: skip remaining failing tests for JS

- - - - -
4d7a7359 by doyougnu at 2022-11-01T09:28:23+01:00
process: skip T1780, T8343, T4889 for JS

- - - - -
641ab48b by doyougnu at 2022-11-01T09:28:23+01:00
testsuite: skip T12852 for JS backend

- - - - -
f1e4d17f by doyougnu at 2022-11-01T09:28:23+01:00
stm: skip failing tests for JS backend

- - - - -
a94e462d by Sylvain Henry at 2022-11-01T09:28:23+01:00
Some changes to Binary after reviews

- - - - -
25d8a82a by Sylvain Henry at 2022-11-01T09:28:23+01:00
Rename back defaultUserData into noUserData

- - - - -
bc711011 by Sylvain Henry at 2022-11-01T09:28:23+01:00
Revert backpack change

- - - - -
751cb7c5 by Sylvain Henry at 2022-11-01T09:28:23+01:00
Don't create directory in copyWithHeader

- - - - -
60fd198a by Sylvain Henry at 2022-11-01T09:28:23+01:00
Remove now useless changes to Ppr

- - - - -
b7287b1d by Josh Meredith at 2022-11-01T09:28:23+01:00
Change js_skip to js_broken(22350) for ImpSafeOnly01..10 tests

- - - - -
0b2d6837 by Josh Meredith at 2022-11-01T09:28:23+01:00
Change js_broken(22350) to js_skip for safePkg01 test

- - - - -
73f423c6 by doyougnu at 2022-11-01T09:28:23+01:00
testsuite: Cabal js_skip -> js_broken(22351)

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

- - - - -
f6728f13 by doyougnu at 2022-11-01T09:28:23+01:00
add req_js_compactor, update impacted tests

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

- - - - -
8310b2a6 by doyougnu at 2022-11-01T09:28:23+01:00
testsuite: mark more tests with req_js_compactor

- - - - -
e2e31931 by doyougnu at 2022-11-01T09:28:23+01: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

- - - - -
4dc69fca by doyougnu at 2022-11-01T09:28:23+01:00
testsuite: mark #22356 tests as js_broken

Specifically:

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

- - - - -
651cc160 by Josh Meredith at 2022-11-01T09:28:23+01:00
Use js_broken(22349) for releavant base tests

- - - - -
35b48f47 by Josh Meredith at 2022-11-01T09:28:23+01:00
Use js_broken(22359) for relevant tests

- - - - -
95e34165 by Josh Meredith at 2022-11-01T09:28:23+01:00
Use js_broken(22360) for releavant tests

- - - - -
9fc8bd57 by Josh Meredith at 2022-11-01T09:28:23+01:00
Use req_ffi_exports for JS-skipped driver* tests

- - - - -
1428e913 by Josh Meredith at 2022-11-01T09:28:23+01:00
Use req_c for some JS-skipped tests

- - - - -
3bd9f504 by Josh Meredith at 2022-11-01T09:28:23+01:00
Use js_broken(22362) for package.conf.d errored tests

- - - - -
2c844d27 by Josh Meredith at 2022-11-01T09:28:23+01:00
Use req_interp for JS-skipped ghcilink001/3/5/6

- - - - -
4db1ec58 by Josh Meredith at 2022-11-01T09:28:23+01:00
Use js_broken(22363) for affected ffi000 tests

- - - - -
db06c9b1 by Josh Meredith at 2022-11-01T09:28:23+01:00
Use js_broken(22364) for affected tests

- - - - -
db749e23 by doyougnu at 2022-11-01T09:28:23+01:00
testsuite: mark tests as js_broken(22370)

Specifically:

rtsopts002
T15261a
T15261b
T16318
T17648
T20214
T21336c
withRtsOpts

Tracking ticket: #22370

- - - - -
5167b8be by Josh Meredith at 2022-11-01T09:28:23+01:00
Use js_broken(22351) for T10955dyn

- - - - -
7d628a04 by Sylvain Henry at 2022-11-01T09:28:23+01:00
Remove trailing semicolons

- - - - -
27dfbeac by Sylvain Henry at 2022-11-01T09:28:23+01:00
Minor fixes after rebase

- - - - -
e01532d0 by doyougnu at 2022-11-01T09:28:23+01:00
test: T23674{w} recomp004 load_short_name -> req_c

- - - - -
184cab5b by Josh Meredith at 2022-11-01T09:28:23+01:00
Upgrade miscellaneous tests from js_skip to js_broken(22261)

- - - - -
90b55de0 by doyougnu at 2022-11-01T09:28:23+01:00
testsuite mark compactor tests as js_broken(22352)

- - - - -
56d68875 by doyougnu at 2022-11-01T09:28:23+01: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

- - - - -
d93edb99 by doyougnu at 2022-11-01T09:28:23+01:00
stm: mark tests for JS backend as broken

- - - - -
a9fcaf9a by doyougnu at 2022-11-01T09:28:23+01: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

- - - - -
6f43b7d2 by Sylvain Henry at 2022-11-01T09:28:23+01:00
Remove added configure comment

- - - - -
47b2a07d by Sylvain Henry at 2022-11-01T09:28:23+01:00
Fix res_js_compactor leftover

- - - - -
101b9fc5 by doyougnu at 2022-11-01T09:28:23+01:00
testsuite: mark more tests as broken for JS

Specifically tests which throw reference errors:

hReady001
hReady002
readwrite002
fed001
Capi_Ctype_001
Capi_Ctype_002
T7037

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

- - - - -
49cc3ea5 by doyougnu at 2022-11-01T09:28:23+01:00
genToplevelConEntry: Fix for InferTags at Stg

- - - - -


25 changed files:

- .gitlab-ci.yml
- .gitlab/ci.sh
- .gitlab/gen_ci.hs
- .gitlab/jobs.yaml
- compiler/GHC/Builtin/PrimOps.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/HsToCore/Foreign/Decl.hs
- + compiler/GHC/HsToCore/Foreign/JavaScript.hs
- compiler/GHC/Iface/Binary.hs
- compiler/GHC/Iface/Ext/Binary.hs
- compiler/GHC/Iface/Tidy/StaticPtrTable.hs
- + compiler/GHC/JS/Make.hs
- + compiler/GHC/JS/Ppr.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/8aa1266ea65512b11a3a2a922ca75764c99b2639...49cc3ea5a3eb8518e826e4e666b590096c651965

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/8aa1266ea65512b11a3a2a922ca75764c99b2639...49cc3ea5a3eb8518e826e4e666b590096c651965
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/20221101/e7faf411/attachment-0001.html>


More information about the ghc-commits mailing list