[Git][ghc/ghc][wip/js-staging] 211 commits: Print constraints in quotes (#21167)

doyougnu (@doyougnu) gitlab at gitlab.haskell.org
Fri Aug 26 20:42:49 UTC 2022



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


Commits:
51ffd009 by Swann Moreau at 2022-08-19T18:29:21-04:00
Print constraints in quotes (#21167)

This patch improves the uniformity of error message formatting by
printing constraints in quotes, as we do for types.

Fix #21167

- - - - -
ab3e0f5a by Sasha Bogicevic at 2022-08-19T18:29:57-04:00
19217 Implicitly quantify type variables in :kind command

- - - - -
9939e95f by MorrowM at 2022-08-21T16:51:38-04:00
Recognize file-header pragmas in GHCi (#21507)

- - - - -
fb7c2d99 by Matthew Pickering at 2022-08-21T16:52:13-04:00
hadrian: Fix bootstrapping with ghc-9.4

The error was that we were trying to link together

    containers from boot package library (which depends template-haskell in boot package library)
    template-haskell from in-tree package database

So the fix is to build containers in stage0 (and link against template-haskell built in stage0).

Fixes #21981

- - - - -
b946232c by Mario Blažević at 2022-08-22T22:06:21-04:00
Added pprType with precedence argument, as a prerequisite to fix issues #21723 and #21942.

* refines the precedence levels, adding `qualPrec` and `funPrec` to better control parenthesization
* `pprParendType`, `pprFunArgType`, and `instance Ppr Type` all just call `pprType` with proper precedence
* `ParensT` constructor is now always printed parenthesized
* adds the precedence argument to `pprTyApp` as well, as it needs to keep track and pass it down
* using `>=` instead of former `>` to match the Core type printing logic
* some test outputs have changed, losing extraneous parentheses

- - - - -
fe4ff0f7 by Mario Blažević at 2022-08-22T22:06:21-04:00
Fix and test for issue #21723

- - - - -
33968354 by Mario Blažević at 2022-08-22T22:06:21-04:00
Test for issue #21942

- - - - -
c9655251 by Mario Blažević at 2022-08-22T22:06:21-04:00
Updated the changelog

- - - - -
80102356 by Ben Gamari at 2022-08-22T22:06:57-04:00
hadrian: Don't duplicate binaries on installation

Previously we used `install` on symbolic links, which ended up
copying the target file rather than installing a symbolic link.

Fixes #22062.

- - - - -
b929063e by M Farkas-Dyck at 2022-08-24T02:37:01-04:00
Unbreak Haddock comments in `GHC.Core.Opt.WorkWrap.Utils`.

Closes #22092.

- - - - -
112e4f9c by Cheng Shao at 2022-08-24T02:37:38-04:00
driver: don't actually merge objects when ar -L works

- - - - -
a9f0e68e by Ben Gamari at 2022-08-24T02:38:13-04:00
rts: Consistently use MiB in stats output

Previously we would say `MB` even where we
meant `MiB`.
- - - - -
a90298cc by Simon Peyton Jones at 2022-08-25T08:38:16+01:00
Fix arityType: -fpedantic-bottoms, join points, etc

This MR fixes #21694, #21755.  It also makes sure that #21948 and
fix to #21694.

* For #21694 the underlying problem was that we were calling arityType
  on an expression that had free join points.  This is a Bad Bad Idea.
  See Note [No free join points in arityType].

* To make "no free join points in arityType" work out I had to avoid
  trying to use eta-expansion for runRW#. This entailed a few changes
  in the Simplifier's treatment of runRW#.  See
  GHC.Core.Opt.Simplify.Iteration Note [No eta-expansion in runRW#]

* I also made andArityType work correctly with -fpedantic-bottoms;
  see Note [Combining case branches: andWithTail].

* Rewrote Note [Combining case branches: optimistic one-shot-ness]

* arityType previously treated join points differently to other
  let-bindings. This patch makes them unform; arityType analyses
  the RHS of all bindings to get its ArityType, and extends am_sigs.

  I realised that, now we have am_sigs giving the ArityType for
  let-bound Ids, we don't need the (pre-dating) special code in
  arityType for join points. But instead we need to extend the env for
  Rec bindings, which weren't doing before.  More uniform now.  See
  Note [arityType for let-bindings].

  This meant we could get rid of ae_joins, and in fact get rid of
  EtaExpandArity altogether.  Simpler.

* And finally, it was the strange treatment of join-point Ids in
  arityType (involving a fake ABot type) that led to a serious bug:
  #21755.  Fixed by this refactoring, which treats them uniformly;
  but without breaking #18328.

  In fact, the arity for recursive join bindings is pretty tricky;
  see the long Note [Arity for recursive join bindings]
  in GHC.Core.Opt.Simplify.Utils.  That led to more refactoring,
  including deciding that an Id could have an Arity that is bigger
  than its JoinArity; see Note [Invariants on join points], item
  2(b) in GHC.Core

* Make sure that the "demand threshold" for join points in DmdAnal
  is no bigger than the join-arity.  In GHC.Core.Opt.DmdAnal see
  Note [Demand signatures are computed for a threshold arity based on idArity]

* I moved GHC.Core.Utils.exprIsDeadEnd into GHC.Core.Opt.Arity,
  where it more properly belongs.

* Remove an old, redundant hack in FloatOut.  The old Note was
  Note [Bottoming floats: eta expansion] in GHC.Core.Opt.SetLevels.

Compile time improves very slightly on average:

Metrics: compile_time/bytes allocated
---------------------------------------------------------------------------------------
  T18223(normal) ghc/alloc    725,808,720    747,839,216  +3.0%  BAD
  T6048(optasm)  ghc/alloc    105,006,104    101,599,472  -3.2% GOOD
  geo. mean                                          -0.2%
  minimum                                            -3.2%
  maximum                                            +3.0%

For some reason Windows was better

   T10421(normal) ghc/alloc    125,888,360    124,129,168  -1.4% GOOD
   T18140(normal) ghc/alloc     85,974,520     83,884,224  -2.4% GOOD
  T18698b(normal) ghc/alloc    236,764,568    234,077,288  -1.1% GOOD
   T18923(normal) ghc/alloc     75,660,528     73,994,512  -2.2% GOOD
    T6048(optasm) ghc/alloc    112,232,512    108,182,520  -3.6% GOOD
  geo. mean                                          -0.6%

I had a quick look at T18223 but it is knee deep in coercions and
the size of everything looks similar before and after.  I decided
to accept that 3% increase in exchange for goodness elsewhere.

Metric Decrease:
    T10421
    T18140
    T18698b
    T18923
    T6048

Metric Increase:
    T18223

- - - - -
909edcfc by Ben Gamari at 2022-08-25T10:03:34-04:00
upload_ghc_libs: Add means of passing Hackage credentials

- - - - -
28402eed by M Farkas-Dyck at 2022-08-25T10:04:17-04:00
Scrub some partiality in `CommonBlockElim`.

- - - - -
54affbfa by Ben Gamari at 2022-08-25T20:05:31-04:00
hadrian: Fix whitespace

Previously this region of Settings.Packages was incorrectly indented.

- - - - -
c4bba0f0 by Ben Gamari at 2022-08-25T20:05:31-04:00
validate: Drop --legacy flag

In preparation for removal of the legacy `make`-based build system.

- - - - -
822b0302 by Ben Gamari at 2022-08-25T20:05:31-04:00
gitlab-ci: Drop make build validation jobs

In preparation for removal of the `make`-based build system

- - - - -
6fd9b0a1 by Ben Gamari at 2022-08-25T20:05:31-04:00
Drop make build system

Here we at long last remove the `make`-based build system, it having
been replaced with the Shake-based Hadrian build system. Users are
encouraged to refer to the documentation in `hadrian/doc` and this [1]
blog post for details on using Hadrian.

Closes #17527.

[1] https://www.haskell.org/ghc/blog/20220805-make-to-hadrian.html

- - - - -
dbb004b0 by Ben Gamari at 2022-08-25T20:05:31-04:00
Remove testsuite/tests/perf/haddock/.gitignore

As noted in #16802, this is no longer needed.

Closes #16802.

- - - - -
fe9d824d by Ben Gamari at 2022-08-25T20:05:31-04:00
Drop hc-build script

This has not worked for many, many years and relied on the now-removed
`make`-based build system.

- - - - -
659502bc by Ben Gamari at 2022-08-25T20:05:31-04:00
Drop mkdirhier

This is only used by nofib's dead `dist` target

- - - - -
4a426924 by Ben Gamari at 2022-08-25T20:05:31-04:00
Drop mk/{build,install,config}.mk.in

- - - - -
46924b75 by Ben Gamari at 2022-08-25T20:05:31-04:00
compiler: Drop comment references to make

- - - - -
d387f687 by Harry Garrood at 2022-08-25T20:06:10-04:00
Add inits1 and tails1 to Data.List.NonEmpty

See https://github.com/haskell/core-libraries-committee/issues/67

- - - - -
8603c921 by Harry Garrood at 2022-08-25T20:06:10-04:00
Add since annotations and changelog entries

- - - - -
6b47aa1c by Krzysztof Gogolewski at 2022-08-25T20:06:46-04:00
Fix redundant import

This fixes a build error on x86_64-linux-alpine3_12-validate.
See the function 'loadExternalPlugins' defined in this file.

- - - - -
de5ecdd2 by Josh Meredith at 2022-08-26T13:56:41-04: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

- - - - -
9457d21f by doyougnu at 2022-08-26T13:56:44-04: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

- - - - -
757cad7e by doyougnu at 2022-08-26T13:56:44-04: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

- - - - -
ca7676d4 by Sylvain Henry at 2022-08-26T13:56:44-04:00
Doc has been moved into GHC.StgToJs top-level module

- - - - -
0f199ed0 by Sylvain Henry at 2022-08-26T13:56:44-04: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

- - - - -
7069d8d8 by Sylvain Henry at 2022-08-26T13:56:44-04: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...

- - - - -
2c35ea8a by Sylvain Henry at 2022-08-26T13:56:45-04: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)

- - - - -
ffa99577 by Sylvain Henry at 2022-08-26T13:56:45-04:00
Configure: preliminary support for triple js-unknown-ghcjs

- - - - -
69d1e9a3 by Sylvain Henry at 2022-08-26T13:56:45-04:00
Driver: enable JS backend by default for JS arch

- - - - -
f6d8ecc9 by doyougnu at 2022-08-26T13:56:45-04: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

- - - - -
407f634a by Sylvain Henry at 2022-08-26T13:56:45-04:00
Minor panic fix

- - - - -
fccaf25f by Sylvain Henry at 2022-08-26T13:56:46-04:00
Linker: fix stage2 build

- - - - -
312cf892 by Sylvain Henry at 2022-08-26T13:56:46-04: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...

- - - - -
0410aee3 by doyougnu at 2022-08-26T13:56:46-04: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

- - - - -
26f863f1 by Sylvain Henry at 2022-08-26T13:59:21-04: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

- - - - -
bba6f8ed by Sylvain Henry at 2022-08-26T13:59:23-04:00
Force creation of rts library with dummy file

- - - - -
71e2ebdf by Sylvain Henry at 2022-08-26T13:59:23-04:00
ghc-prim: avoid building C files

- - - - -
95b84e69 by Sylvain Henry at 2022-08-26T13:59:24-04:00
Hadrian: disable -fllvm

- - - - -
295f4177 by Sylvain Henry at 2022-08-26T13:59:24-04:00
JS: fix caches

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

- - - - -
8fb25c10 by Sylvain Henry at 2022-08-26T13:59:24-04:00
codegen: enhance genCon debug message

- - - - -
85c1715d by Sylvain Henry at 2022-08-26T13:59:24-04:00
RTS: fix stupid comment

- - - - -
0aa419e7 by Sylvain Henry at 2022-08-26T13:59:24-04:00
RTS: embed headers

- - - - -
9672054a by Sylvain Henry at 2022-08-26T13:59:24-04:00
JS.StgToJS: add documentation header for JS Types

- - - - -
10f71e2e by Sylvain Henry at 2022-08-26T13:59:25-04:00
CodeGen: refactor ExprCtx code

- - - - -
3bd12657 by Sylvain Henry at 2022-08-26T13:59:25-04:00
CodeGen: cache LNE frame size

- - - - -
655b3f4e by doyougnu at 2022-08-26T13:59:25-04:00
JS.Types: Add Outputable for TypedExpr

- - - - -
354eb5bc by doyougnu at 2022-08-26T13:59:25-04:00
JS.CoreUtils: handle IOPort case

- - - - -
7e6ee154 by doyougnu at 2022-08-26T13:59:25-04:00
JS.Expr: Fix unhandled datacon for RuntimeRep

- - - - -
a4ac9c08 by doyougnu at 2022-08-26T13:59:25-04:00
JS.Literals: Adapt genLit to new Literal domain

- - - - -
3c0b00c5 by Sylvain Henry at 2022-08-26T13:59:25-04:00
RTS: expose more headers (required to build base)

- - - - -
541154d5 by Sylvain Henry at 2022-08-26T13:59:26-04:00
Base: don't build C and Cmm sources with ghcjs

- - - - -
caf381a4 by Sylvain Henry at 2022-08-26T13:59:26-04:00
Tentatively set NO_REGS for JS platforms

- - - - -
138cc14e by Sylvain Henry at 2022-08-26T13:59:26-04:00
CodeGen: output LitRubbish as null JS values

- - - - -
98dade23 by Sylvain Henry at 2022-08-26T13:59:26-04:00
base: disable forkOS and bound thread machinery

- - - - -
ff736b38 by Sylvain Henry at 2022-08-26T13:59:26-04:00
CodeGen: support StackSnapshot# in primTypeVt

- - - - -
8c8fe037 by Sylvain Henry at 2022-08-26T13:59:26-04:00
CodeGen: better debug message for assignCoerce1

- - - - -
c4f9f24b by Sylvain Henry at 2022-08-26T13:59:26-04:00
Misc: enable HasDebugCallStack for zipWithEqual*

- - - - -
c0ce1f25 by Sylvain Henry at 2022-08-26T13:59:27-04:00
CodeGen: remove useless imports

- - - - -
f0511ef6 by Sylvain Henry at 2022-08-26T13:59:27-04:00
Stg: expose pprStgAlt

- - - - -
0a05a077 by Sylvain Henry at 2022-08-26T13:59:27-04:00
CodeGen: restore assignAll (instead of assignAllEqual)

- - - - -
599b972b by Sylvain Henry at 2022-08-26T13:59:27-04:00
CodeGen: handle proxy#

- - - - -
a7f03312 by doyougnu at 2022-08-26T13:59:27-04:00
ghc-heap: Don't compile Cmm file for JS-Backend

- - - - -
e13a01ba by doyougnu at 2022-08-26T13:59:27-04:00
Driver.Main: minor refactor do_code_gen

To clearly separate the JS-Backend from any other backend

- - - - -
bf6141de by Sylvain Henry at 2022-08-26T13:59:27-04:00
Configure: fix echo on Mac, add ghcjs target OS

- - - - -
bc29c63d by Sylvain Henry at 2022-08-26T13:59:28-04:00
Configure: fix previous commit

- - - - -
f998661a by Luite Stegeman at 2022-08-26T13:59:28-04:00
fix package name in module name field of system dependencies

- - - - -
4734171f by Luite Stegeman at 2022-08-26T13:59:28-04:00
fix duplicate module name in symbols

- - - - -
08530e14 by doyougnu at 2022-08-26T13:59:28-04:00
GHCi.FFI: ignore ffi.h and friends for js-backend

- - - - -
f015b134 by Sylvain Henry at 2022-08-26T13:59:28-04:00
RTS: fix build of native rts

- - - - -
df65b6c7 by Sylvain Henry at 2022-08-26T13:59:28-04:00
Remove temporary -fjavascript flag

- - - - -
e9aae38d by Sylvain Henry at 2022-08-26T13:59:29-04:00
Codegen: fix symbol names ppr

- - - - -
245e7500 by Sylvain Henry at 2022-08-26T13:59:29-04:00
Outputable: add ShortText instance

- - - - -
9a83d084 by Sylvain Henry at 2022-08-26T13:59:29-04:00
Linker: enhance debugging message

- - - - -
0174851f by Sylvain Henry at 2022-08-26T13:59:29-04:00
Remove unused ghcjs unit related code

- - - - -
8cf5fae3 by Sylvain Henry at 2022-08-26T13:59:29-04:00
ghci: Avoid unused-xyz warnings

- - - - -
85331a21 by Sylvain Henry at 2022-08-26T13:59:29-04:00
Linker: remove wiring of ghcjs-prim and ghcjs-th

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

- - - - -
4c44ffe3 by Sylvain Henry at 2022-08-26T13:59:29-04:00
Add outputable instance for Deps

- - - - -
dbfd46dd by doyougnu at 2022-08-26T13:59:30-04: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

- - - - -
e9e717e1 by Sylvain Henry at 2022-08-26T13:59:30-04:00
Rename u_env into unit_env (more common)

- - - - -
556451a1 by Sylvain Henry at 2022-08-26T13:59:30-04:00
Linker: deduplication + fixes

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

- - - - -
43a3c3fb by Sylvain Henry at 2022-08-26T13:59:30-04:00
Linker: reenable packStrings (not yet implemented though)

- - - - -
2ee0b278 by Sylvain Henry at 2022-08-26T13:59:30-04:00
ShortText: add singleton

- - - - -
3766388f by Sylvain Henry at 2022-08-26T13:59:30-04:00
Linker: force less efficient (but working) static encoding

- - - - -
6b1732a6 by Luite Stegeman at 2022-08-26T13:59:31-04:00
add GHCJS modules to base package

- - - - -
8912b0f9 by Sylvain Henry at 2022-08-26T13:59:31-04:00
Linker: remove JS Shims,tiny GHC.Linker refactor

- - - - -
1367f7e5 by doyougnu at 2022-08-26T13:59:31-04:00
Hadrian: QuickJS ways [] --> Set

- - - - -
ba81a823 by doyougnu at 2022-08-26T13:59:31-04: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.

- - - - -
c1709ea6 by doyougnu at 2022-08-26T13:59:31-04:00
JS: silence haddock warnings

JS Backend: remove misc. warnings

- - - - -
1cb0e787 by doyougnu at 2022-08-26T13:59:31-04:00
JS Backend: ghcjs_HOST_OS --> js_HOST_ARCH

- - - - -
1001e8cf by Sylvain Henry at 2022-08-26T13:59:32-04: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

- - - - -
1e9a3963 by Sylvain Henry at 2022-08-26T13:59:32-04:00
CPP: disable line markers

CPP: move option before input filename (to be squashed)

- - - - -
ee2a286c by Sylvain Henry at 2022-08-26T13:59:32-04: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

- - - - -
01259bbb by Sylvain Henry at 2022-08-26T13:59:32-04: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)

- - - - -
a026338d by Sylvain Henry at 2022-08-26T13:59:32-04: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

- - - - -
964d6fe3 by doyougnu at 2022-08-26T13:59:32-04: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.

- - - - -
2c33348c by Sylvain Henry at 2022-08-26T13:59:32-04: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

- - - - -
638a9ee6 by Sylvain Henry at 2022-08-26T13:59:33-04:00
Add primops

Add primop

- - - - -
834b3405 by doyougnu at 2022-08-26T13:59:33-04: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

- - - - -
07fa085c by doyougnu at 2022-08-26T13:59:33-04:00
Base: Adapt primitives to JS backend, add base.js

- - - - -
0c8f6a69 by doyougnu at 2022-08-26T13:59:33-04:00
Base: Remove binding forms in JS ffi

- - - - -
d3167c0a by Josh Meredith at 2022-08-26T13:59:33-04:00
Replace GHCJS Objectable with GHC Binary

- - - - -
0ecf12e1 by Sylvain Henry at 2022-08-26T13:59:33-04:00
Binary: remove unused Map instance

- - - - -
d6bf5484 by Sylvain Henry at 2022-08-26T13:59:34-04:00
CodeGen: Add export list

- - - - -
743b1d1a by Sylvain Henry at 2022-08-26T13:59:34-04:00
Primops: add some Int64/Word64 primops

- - - - -
be8dd711 by Sylvain Henry at 2022-08-26T13:59:34-04:00
base: fix one ffi import

- - - - -
cb7b8562 by doyougnu at 2022-08-26T13:59:34-04: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.

- - - - -
83e18804 by doyougnu at 2022-08-26T13:59:34-04:00
fixup: remove redundant struct.js.pp in js_base

- - - - -
3ee95860 by doyougnu at 2022-08-26T13:59:34-04:00
JS.Linker: enable linker RTS symbols

- - - - -
578fd8f7 by doyougnu at 2022-08-26T13:59:34-04:00
base.GHCJS: adapt Prim to direct call FFI format

- - - - -
67b916b3 by doyougnu at 2022-08-26T13:59:35-04:00
Linker: Load JSVal from base not ghc-prim

- - - - -
36f57eb1 by doyougnu at 2022-08-26T13:59:35-04:00
fixup: caught one more reference to JSVal in prim

- - - - -
3899448f by Sylvain Henry at 2022-08-26T13:59:35-04:00
base: match on js arch , not ghcjs os

- - - - -
e095397b by Sylvain Henry at 2022-08-26T13:59:35-04:00
Fix MK_JSVAL

- - - - -
9c9e9e45 by doyougnu at 2022-08-26T13:59:35-04:00
Prim: cleanup comments

- - - - -
a0c9d7d1 by doyougnu at 2022-08-26T13:59:35-04:00
JS.Prim: add Int64 PrimOps

- - - - -
38ad0836 by Sylvain Henry at 2022-08-26T13:59:35-04:00
Vendor MD5 lib

- - - - -
4f282fd5 by Sylvain Henry at 2022-08-26T13:59:36-04:00
More 64-bit primops

- - - - -
1b40e01a by Sylvain Henry at 2022-08-26T13:59:36-04:00
CodeGen: use if10 helper

- - - - -
acca046b by Sylvain Henry at 2022-08-26T13:59:36-04:00
Ppr: fix selector to avoid adding a newline

- - - - -
44dbc5fe by doyougnu at 2022-08-26T13:59:36-04:00
base: GHCJS.Prim make ffi imports use anon funcs

- - - - -
1afc4e2f by Sylvain Henry at 2022-08-26T13:59:36-04:00
Linker: disable invalid constructors again

- - - - -
2b95f3e9 by Sylvain Henry at 2022-08-26T13:59:36-04:00
More 64-bits primops

- - - - -
a5b91fff by Sylvain Henry at 2022-08-26T13:59:36-04:00
Fix base_write function

- - - - -
0053597b by Sylvain Henry at 2022-08-26T13:59:37-04:00
Fix base_write for 32-bit size_t

- - - - -
a4143825 by Sylvain Henry at 2022-08-26T13:59:37-04:00
Configure: fix detection of the target toolchain

- - - - -
4264c1e8 by Sylvain Henry at 2022-08-26T13:59:37-04:00
Remove js_base directory

- - - - -
6eb71a93 by Sylvain Henry at 2022-08-26T13:59:37-04:00
Kill Node when the main loop reports an unhandled exception

- - - - -
61b89fff by Sylvain Henry at 2022-08-26T13:59:37-04:00
CodeGen: preparation to make match on primops complete

- - - - -
5563dd21 by Sylvain Henry at 2022-08-26T13:59:37-04:00
Primops: fix Compact primops

- - - - -
c449986b by Sylvain Henry at 2022-08-26T13:59:38-04:00
Ignore result arity for some exception primops

- - - - -
af300b51 by Sylvain Henry at 2022-08-26T13:59:38-04:00
Fix more primops. Bump array submodule!

- - - - -
b5b68b27 by Sylvain Henry at 2022-08-26T13:59:38-04:00
Compact: fix return of 3 values

- - - - -
c0a36b43 by Sylvain Henry at 2022-08-26T13:59:38-04:00
Configure: switch to absolute path

- - - - -
34bf3f81 by Sylvain Henry at 2022-08-26T13:59:38-04:00
Add a few primops

- - - - -
d6145e74 by Sylvain Henry at 2022-08-26T13:59:38-04:00
Primop: implement WordAdd2

- - - - -
de98aa4b by Luite Stegeman at 2022-08-26T13:59:38-04: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

- - - - -
7a8f4370 by Josh Meredith at 2022-08-26T13:59:39-04:00
Replace ShortText with (Lexical)FastString in GHCJS backend

- - - - -
d20642fd by Sylvain Henry at 2022-08-26T13:59:39-04:00
Primops: add arithmetic ops

Primops: add decodeDoubleInt64 back

Primop: added timesInt2#

Primop: add mulWord32 and mul2Word32

- - - - -
d33002af by Sylvain Henry at 2022-08-26T13:59:39-04:00
Reduce dependency on goog

- - - - -
8a7d3bf9 by Sylvain Henry at 2022-08-26T13:59:39-04:00
Primop: implement quotWord32, remWord32, and quotRemWord32

- - - - -
21526445 by Sylvain Henry at 2022-08-26T13:59:39-04:00
Primop: Implement quotRem2Word32, misc fixes

Primop: implement quotRem2Word32

Primop: fix timesInt2#

Primop: fix some shifting primops

- - - - -
a07c0816 by Sylvain Henry at 2022-08-26T13:59:39-04:00
Fix bug in upd_frame

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

- - - - -
f511df9a by Sylvain Henry at 2022-08-26T13:59:40-04:00
Primop: throw an exception for unimplemented primops

- - - - -
b9d4c977 by Sylvain Henry at 2022-08-26T13:59:40-04:00
Primop: fix remWord32

- - - - -
746e87f9 by Josh Meredith at 2022-08-26T13:59:40-04: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

- - - - -
9820ec9c by Sylvain Henry at 2022-08-26T13:59:40-04:00
resultSize: correctly handle Void#

- - - - -
7f551f28 by Sylvain Henry at 2022-08-26T13:59:40-04: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!

- - - - -
bf4a2297 by Sylvain Henry at 2022-08-26T13:59:40-04:00
StgToJS.Apply: Docs

Doc

Doc

- - - - -
98e30a3e by Josh Meredith at 2022-08-26T13:59:40-04:00
Fix EMSDK configure condition

- - - - -
cbfa77bd by doyougnu at 2022-08-26T13:59:41-04:00
StgToJS.Arg: Unboxable Literal Optimization note

- - - - -
3d9b2a8a by Sylvain Henry at 2022-08-26T13:59:41-04:00
Fix Outputable instances for JExpr/JVal

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

- - - - -
b2ba24b4 by doyougnu at 2022-08-26T13:59:41-04:00
configure: avoid CXX stdlib check for js backend

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

- - - - -
feb9babb by doyougnu at 2022-08-26T13:59:41-04:00
fixup: misc. fixes post rebase

- - - - -
c86fe5ab by Sylvain Henry at 2022-08-26T13:59:41-04:00
PrimOps: add more 64-bit primops

PrimOp: implement more 64-bit primops + PM fix

Ensure that we cover every primop explicitly

- - - - -
32c05468 by Sylvain Henry at 2022-08-26T13:59:41-04:00
PrimOp: correclty (un)handle new thread related primops

- - - - -
74460d7c by Sylvain Henry at 2022-08-26T13:59:41-04:00
PrimOp: disable LabelThreadOp for now

- - - - -
dbd3a63a by Sylvain Henry at 2022-08-26T13:59:42-04:00
Minor doc/cleanup

Fix more redundant imports

- - - - -
4f7467cf by doyougnu at 2022-08-26T13:59:42-04:00
base: GHCJS.Prim directory --> GHC.JS.Prim

- - - - -
8e08f1ce by Luite Stegeman at 2022-08-26T13:59:42-04:00
implement KeepAlive primop

- - - - -
66d533b6 by Sylvain Henry at 2022-08-26T13:59:42-04:00
Remove orphan instance for StaticArg

- - - - -
54e8be35 by Sylvain Henry at 2022-08-26T13:59:42-04:00
Remove redundant jsIdIdent' function

- - - - -
20bd29f3 by Sylvain Henry at 2022-08-26T13:59:42-04:00
Split StgToJS.Monad into StgToJS.{Monad,Ids,Stack}

- - - - -
adbb357a by Sylvain Henry at 2022-08-26T13:59:43-04:00
Apply: remove commented case (wasn't optimized either in latest ghcjs)

- - - - -
1514f9b4 by Sylvain Henry at 2022-08-26T13:59:43-04:00
Doc: Apply

Apply: doc and refactoring

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

- - - - -
3cb7132e by Sylvain Henry at 2022-08-26T13:59:43-04: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

- - - - -
20a01b2b by doyougnu at 2022-08-26T13:59:43-04: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

- - - - -
8a1b4d1d by Sylvain Henry at 2022-08-26T13:59:43-04:00
GHCJS.Prim leftovers

- - - - -
6d04d063 by Sylvain Henry at 2022-08-26T13:59:43-04:00
Linker: fix linking issue for tuples

- - - - -
d8e06ba0 by Sylvain Henry at 2022-08-26T13:59:43-04:00
FFI: remove narrowing

Fix tests such as cgrun015 (Core lint error)

- - - - -
31f0d373 by Sylvain Henry at 2022-08-26T13:59:44-04:00
Linker: disable logs with default verbosity

- - - - -
639480c9 by Sylvain Henry at 2022-08-26T13:59:44-04:00
Append program name in top-level exception handler

- - - - -
af99d11d by doyougnu at 2022-08-26T13:59:44-04:00
GHC.JS: Remove FIXMEs

JS.Syntax: Remove FIXMEs

JS.Make: remove FIXMEs

JS.Ppr/Transform: Remove FIXMEs

- - - - -
77d30a25 by Sylvain Henry at 2022-08-26T13:59:44-04:00
Primop: fix timesInt2#

Pass arith003 test

- - - - -
921f3fe5 by doyougnu at 2022-08-26T13:59:44-04:00
JS.Linker.Linker: remove FIXMEs, clean dead code

- - - - -
a04220cc by Sylvain Henry at 2022-08-26T13:59:44-04:00
Linker: link platform shim before the others

- - - - -
7acf8884 by Sylvain Henry at 2022-08-26T13:59:45-04: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

- - - - -
946a1ac8 by Sylvain Henry at 2022-08-26T13:59:45-04:00
PrimOp: fixup previous commit...

- - - - -
05cd63a6 by Sylvain Henry at 2022-08-26T13:59:45-04:00
Primop: fixup previous commit

- - - - -
c60dca40 by Sylvain Henry at 2022-08-26T13:59:45-04:00
Doc: minor changes

- - - - -
0c4085e8 by Sylvain Henry at 2022-08-26T13:59:45-04:00
Add debug option to watch for insertion of undefined/null in the stack

- - - - -
0d55e08a by Sylvain Henry at 2022-08-26T13:59:45-04:00
Apply: fix tag generation

- - - - -
5985ab1e by Sylvain Henry at 2022-08-26T13:59:45-04:00
Remove redundant import

- - - - -
dc0e279e by Sylvain Henry at 2022-08-26T13:59:46-04:00
Testsuite: disable Cmm tests with the JS backend

- - - - -
ed6c45df by Sylvain Henry at 2022-08-26T13:59:46-04:00
Base: fix c_interruptible_open

- - - - -
a6b90dca by Sylvain Henry at 2022-08-26T13:59:46-04:00
Base: fix typo in long_from_number

- - - - -
a14f0b65 by Sylvain Henry at 2022-08-26T13:59:46-04:00
Env: only add program name to errors, not to traces

- - - - -
6b358d7a by Sylvain Henry at 2022-08-26T13:59:46-04:00
Testsuite: disable more Cmm tests

- - - - -
4bdbe4e8 by doyougnu at 2022-08-26T13:59:47-04: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

- - - - -
fe1d250f by doyougnu at 2022-08-26T13:59:47-04:00
JS RTS: remove FIXMEs

StgToJS.Rts.Types: Remove FIXMEs

- - - - -
3aabc8e2 by Sylvain Henry at 2022-08-26T13:59:47-04:00
Primop: fix bswap32/64 (cf cgrun072)

- - - - -
16abdb90 by Sylvain Henry at 2022-08-26T13:59:47-04:00
Testsuite: normalise ghc program name

- - - - -
73529eeb by doyougnu at 2022-08-26T13:59:47-04:00
JS Backend: Remove FIXMEs

StgToJS.Apply: Remove FIXMEs

StgToJS.FFI: remove FIXMEs

StgToJS.Expr: remove FIXMEs

StgToJS: Remove FIXMEs

- - - - -
e35c0721 by Sylvain Henry at 2022-08-26T13:59:48-04:00
Enable RTS args filtering (cf cgrun025)

- - - - -
816f2547 by Sylvain Henry at 2022-08-26T13:59:48-04:00
Remove trailing whitespaces (whitespace test)

- - - - -
0ed9923d by Sylvain Henry at 2022-08-26T13:59:48-04:00
Testsuite: remove platform prefix for unlit tool

- - - - -
67d00373 by Sylvain Henry at 2022-08-26T13:59:48-04:00
Primop: fix Int64 conversion/negate (integerConversions test)

- - - - -
691548ac by Sylvain Henry at 2022-08-26T13:59:48-04:00
Linker: remove message with default verbosity

- - - - -
dec067ec by Sylvain Henry at 2022-08-26T13:59:48-04:00
Testsuite: normalise .jsexe suffix

- - - - -
28022ac4 by Sylvain Henry at 2022-08-26T13:59:48-04:00
Remove warning about orphan instance

- - - - -
66382e10 by Sylvain Henry at 2022-08-26T13:59:49-04:00
Compactor: disable dead code

- - - - -
e26689d1 by Sylvain Henry at 2022-08-26T13:59:49-04:00
Exception: implement raiseUnderflow etc. as primops

- - - - -
dc2755dc by Sylvain Henry at 2022-08-26T13:59:49-04:00
Primop: fix Int8/18 quot/rem

- - - - -
157e67a1 by Sylvain Henry at 2022-08-26T13:59:49-04:00
Linker: refactor wired-in deps

- - - - -
0d8ab4a9 by Sylvain Henry at 2022-08-26T13:59:49-04:00
Ppr: remove useless left padding for functions in JS dumps

- - - - -


30 changed files:

- .gitlab-ci.yml
- .gitlab/ci.sh
- .gitlab/upload_ghc_libs.py
- − MAKEHELP.md
- − Makefile
- − bindisttest/ghc.mk
- boot
- compiler/GHC/Builtin/PrimOps.hs
- compiler/GHC/Builtin/primops.txt.pp
- compiler/GHC/Cmm/CommonBlockElim.hs
- compiler/GHC/Core.hs
- compiler/GHC/Core/Lint.hs
- compiler/GHC/Core/Opt/Arity.hs
- compiler/GHC/Core/Opt/DmdAnal.hs
- compiler/GHC/Core/Opt/FloatOut.hs
- compiler/GHC/Core/Opt/SetLevels.hs
- compiler/GHC/Core/Opt/Simplify/Iteration.hs
- compiler/GHC/Core/Opt/Simplify/Utils.hs
- compiler/GHC/Core/Opt/WorkWrap.hs
- compiler/GHC/Core/Opt/WorkWrap/Utils.hs
- compiler/GHC/Core/Tidy.hs
- compiler/GHC/Core/Utils.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


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/cea5c8c5b76ab76631fe0d1521334858051faea8...0d8ab4a9ee6e152957418aa23b81c1c273cf36c1

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/cea5c8c5b76ab76631fe0d1521334858051faea8...0d8ab4a9ee6e152957418aa23b81c1c273cf36c1
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/20220826/4dda01fe/attachment-0001.html>


More information about the ghc-commits mailing list