[Git][ghc/ghc][wip/js-th] 186 commits: Force the Docs structure to prevent leaks in GHCi with -haddock without -fwrite-interface
Sylvain Henry (@hsyl20)
gitlab at gitlab.haskell.org
Mon Jan 23 14:47:13 UTC 2023
Sylvain Henry pushed to branch wip/js-th at Glasgow Haskell Compiler / GHC
Commits:
62b9a7b2 by Zubin Duggal at 2023-01-03T12:22:11+00:00
Force the Docs structure to prevent leaks in GHCi with -haddock without -fwrite-interface
Involves adding many new NFData instances.
Without forcing Docs, references to the TcGblEnv for each module are retained
by the Docs structure. Usually these are forced when the ModIface is serialised
but not when we aren't writing the interface.
- - - - -
21bedd84 by Facundo Domínguez at 2023-01-03T23:27:30-05:00
Explain the auxiliary functions of permutations
- - - - -
32255d05 by Matthew Pickering at 2023-01-04T11:58:42+00:00
compiler: Add -f[no-]split-sections flags
Here we add a `-fsplit-sections` flag which may some day replace
`-split-sections`. This has the advantage of automatically providing a
`-fno-split-sections` flag, which is useful for our packaging because we
enable `-split-sections` by default but want to disable it in certain
configurations.
- - - - -
e640940c by Matthew Pickering at 2023-01-04T11:58:42+00:00
hadrian: Fix computation of tables_next_to_code for outOfTreeCompiler
This copy-pasto was introduced in de5fb3489f2a9bd6dc75d0cb8925a27fe9b9084b
- - - - -
15bee123 by Matthew Pickering at 2023-01-04T11:58:42+00:00
hadrian: Add test:all_deps to build just testsuite dependencies
Fixes #22534
- - - - -
fec6638e by Matthew Pickering at 2023-01-04T11:58:42+00:00
hadrian: Add no_split_sections tranformer
This transformer reverts the effect of `split_sections`, which we intend
to use for platforms which don't support split sections.
In order to achieve this we have to modify the implemntation of the
split_sections transformer to store whether we are enabling
split_sections directly in the `Flavour` definition. This is because
otherwise there's no convenient way to turn off split_sections due to
having to pass additional linker scripts when merging objects.
- - - - -
3dc05726 by Matthew Pickering at 2023-01-04T11:58:42+00:00
check-exact: Fix build with -Werror
- - - - -
53a6ae7a by Matthew Pickering at 2023-01-04T11:58:42+00:00
ci: Build all test dependencies with in-tree compiler
This means that these executables will honour flavour transformers such
as "werror".
Fixes #22555
- - - - -
32e264c1 by Matthew Pickering at 2023-01-04T11:58:42+00:00
hadrian: Document using GHC environment variable to select boot compiler
Fixes #22340
- - - - -
be9dd9b0 by Matthew Pickering at 2023-01-04T11:58:42+00:00
packaging: Build perf builds with -split-sections
In 8f71d958 the make build system was made to use split-sections on
linux systems but it appears this logic never made it to hadrian.
There is the split_sections flavour transformer but this doesn't appear
to be used for perf builds on linux.
This is disbled on deb9 and windows due to #21670
Closes #21135
- - - - -
00dc5106 by Matthew Pickering at 2023-01-04T14:32:45-05:00
sphinx: Use modern syntax for extlinks
This fixes the following build error:
```
Command line: /opt/homebrew/opt/sphinx-doc/bin/sphinx-build -b man -d /private/tmp/extra-dir-55768274273/.doctrees-man -n -w /private/tmp/extra-dir-55768274273/.log docs/users_guide /private/tmp/extra-dir-55768274273
===> Command failed with error code: 2
Exception occurred:
File "/opt/homebrew/Cellar/sphinx-doc/6.0.0/libexec/lib/python3.11/site-packages/sphinx/ext/extlinks.py", line 101, in role
title = caption % part
~~~~~~~~^~~~~~
TypeError: not all arguments converted during string formatting
```
I tested on Sphinx-5.1.1 and Sphinx-6.0.0
Thanks for sterni for providing instructions about how to test using
sphinx-6.0.0.
Fixes #22690
- - - - -
541aedcd by Krzysztof Gogolewski at 2023-01-05T10:48:34-05:00
Misc cleanup
- Remove unused uniques and hs-boot declarations
- Fix types of seq and unsafeCoerce#
- Remove FastString/String roundtrip in JS
- Use TTG to enforce totality
- Remove enumeration in Heap/Inspect; the 'otherwise' clause
serves the primitive types well.
- - - - -
22bb8998 by Alan Zimmerman at 2023-01-05T10:49:09-05:00
EPA: Do not collect comments from end of file
In Parser.y semis1 production triggers for the virtual semi at the end
of the file. This is detected by it being zero length.
In this case, do not extend the span being used to gather comments, so
any final comments are allocated at the module level instead.
- - - - -
9e077999 by Vladislav Zavialov at 2023-01-05T23:01:55-05:00
HsToken in TypeArg (#19623)
Updates the haddock submodule.
- - - - -
b2a2db04 by Matthew Pickering at 2023-01-05T23:02:30-05:00
Revert "configure: Drop uses of AC_PROG_CC_C99"
This reverts commit 7c6de18dd3151ead954c210336728e8686c91de6.
Centos7 using a very old version of the toolchain (autotools-2.69) where
the behaviour of these macros has not yet changed. I am reverting this
without haste as it is blocking the 9.6 branch.
Fixes #22704
- - - - -
28f8c0eb by Luite Stegeman at 2023-01-06T18:16:24+09:00
Add support for sized literals in the bytecode interpreter.
The bytecode interpreter only has branching instructions for
word-sized values. These are used for pattern matching.
Branching instructions for other types (e.g. Int16# or Word8#)
weren't needed, since unoptimized Core or STG never requires
branching on types like this.
It's now possible for optimized STG to reach the bytecode
generator (e.g. fat interface files or certain compiler flag
combinations), which requires dealing with various sized
literals in branches.
This patch improves support for generating bytecode from
optimized STG by adding the following new bytecode
instructions:
TESTLT_I64
TESTEQ_I64
TESTLT_I32
TESTEQ_I32
TESTLT_I16
TESTEQ_I16
TESTLT_I8
TESTEQ_I8
TESTLT_W64
TESTEQ_W64
TESTLT_W32
TESTEQ_W32
TESTLT_W16
TESTEQ_W16
TESTLT_W8
TESTEQ_W8
Fixes #21945
- - - - -
ac39e8e9 by Matthew Pickering at 2023-01-06T13:47:00-05:00
Only store Name in FunRhs rather than Id with knot-tied fields
All the issues here have been caused by #18758.
The goal of the ticket is to be able to talk about things like
`LTyClDecl GhcTc`. In the case of HsMatchContext,
the correct "context" is whatever we want, and in fact storing just a
`Name` is sufficient and correct context, even if the rest of the AST is
storing typechecker Ids.
So this reverts (#20415, !5579) which intended to get closed to #18758 but
didn't really and introduced a few subtle bugs.
Printing of an error message in #22695 would just hang, because we would
attempt to print the `Id` in debug mode to assertain whether it was
empty or not. Printing the Name is fine for the error message.
Another consequence is that when `-dppr-debug` was enabled the compiler would
hang because the debug printing of the Id would try and print fields
which were not populated yet.
This also led to 32070e6c2e1b4b7c32530a9566fe14543791f9a6 having to add
a workaround for the `checkArgs` function which was probably a very
similar bug to #22695.
Fixes #22695
- - - - -
c306d939 by Matthew Pickering at 2023-01-06T22:08:53-05:00
ci: Upgrade darwin, windows and freebsd CI to use GHC-9.4.3
Fixes #22599
- - - - -
0db496ff by Matthew Pickering at 2023-01-06T22:08:53-05:00
darwin ci: Explicitly pass desired build triple to configure
On the zw3rk machines for some reason the build machine was inferred to
be arm64. Setting the build triple appropiately resolve this confusion
and we produce x86 binaries.
- - - - -
2459c358 by Ben Gamari at 2023-01-06T22:09:29-05:00
rts: MUT_VAR is not a StgMutArrPtrs
There was previously a comment claiming that the MUT_VAR closure type
had the layout of StgMutArrPtrs.
- - - - -
6206cb92 by Simon Peyton Jones at 2023-01-07T12:14:40-05:00
Make FloatIn robust to shadowing
This MR fixes #22622. See the new
Note [Shadowing and name capture]
I did a bit of refactoring in sepBindsByDropPoint too.
The bug doesn't manifest in HEAD, but it did show up in 9.4,
so we should backport this patch to 9.4
- - - - -
a960ca81 by Matthew Pickering at 2023-01-07T12:15:15-05:00
T10955: Set DYLD_LIBRARY_PATH for darwin
The correct path to direct the dynamic linker on darwin is
DYLD_LIBRARY_PATH rather than LD_LIBRARY_PATH. On recent versions of OSX
using LD_LIBRARY_PATH seems to have stopped working.
For more reading see:
https://stackoverflow.com/questions/3146274/is-it-ok-to-use-dyld-library-path-on-mac-os-x-and-whats-the-dynamic-library-s
- - - - -
73484710 by Matthew Pickering at 2023-01-07T12:15:15-05:00
Skip T18623 on darwin (to add to the long list of OSs)
On recent versions of OSX, running `ulimit -v` results in
```
ulimit: setrlimit failed: invalid argument
```
Time is too short to work out what random stuff Apple has been doing
with ulimit, so just skip the test like we do for other platforms.
- - - - -
8c0ea25f by Matthew Pickering at 2023-01-07T12:15:15-05:00
Pass -Wl,-no_fixup_chains to ld64 when appropiate
Recent versions of MacOS use a version of ld where `-fixup_chains` is on by default.
This is incompatible with our usage of `-undefined dynamic_lookup`. Therefore we
explicitly disable `fixup-chains` by passing `-no_fixup_chains` to the linker on
darwin. This results in a warning of the form:
ld: warning: -undefined dynamic_lookup may not work with chained fixups
The manual explains the incompatible nature of these two flags:
-undefined treatment
Specifies how undefined symbols are to be treated. Options are: error, warning,
suppress, or dynamic_lookup. The default is error. Note: dynamic_lookup that
depends on lazy binding will not work with chained fixups.
A relevant ticket is #22429
Here are also a few other links which are relevant to the issue:
Official comment: https://developer.apple.com/forums/thread/719961
More relevant links:
https://openradar.appspot.com/radar?id=5536824084660224
https://github.com/python/cpython/issues/97524
Note in release notes: https://developer.apple.com/documentation/xcode-release-notes/xcode-13-releas e-notes
- - - - -
365b3045 by Matthew Pickering at 2023-01-09T02:36:20-05:00
Disable split sections on aarch64-deb10 build
See #22722
Failure on this job:
https://gitlab.haskell.org/ghc/ghc/-/jobs/1287852
```
Unexpected failures:
/builds/ghc/ghc/tmp/ghctest-s3d8g1hj/test spaces/testsuite/tests/th/T10828.run T10828 [exit code non-0] (ext-interp)
/builds/ghc/ghc/tmp/ghctest-s3d8g1hj/test spaces/testsuite/tests/th/T13123.run T13123 [exit code non-0] (ext-interp)
/builds/ghc/ghc/tmp/ghctest-s3d8g1hj/test spaces/testsuite/tests/th/T20590.run T20590 [exit code non-0] (ext-interp)
Appending 232 stats to file: /builds/ghc/ghc/performance-metrics.tsv
```
```
Compile failed (exit code 1) errors were:
data family D_0 a_1 :: * -> *
data instance D_0 GHC.Types.Int GHC.Types.Bool :: * where
DInt_2 :: D_0 GHC.Types.Int GHC.Types.Bool
data E_3 where MkE_4 :: a_5 -> E_3
data Foo_6 a_7 b_8 where
MkFoo_9, MkFoo'_10 :: a_11 -> Foo_6 a_11 b_12
newtype Bar_13 :: * -> GHC.Types.Bool -> * where
MkBar_14 :: a_15 -> Bar_13 a_15 b_16
data T10828.T (a_0 :: *) where
T10828.MkT :: forall (a_1 :: *) . a_1 -> a_1 -> T10828.T a_1
T10828.MkC :: forall (a_2 :: *) (b_3 :: *) . (GHC.Types.~) a_2
GHC.Types.Int => {T10828.foo :: a_2,
T10828.bar :: b_3} -> T10828.T GHC.Types.Int
T10828.hs:1:1: error: [GHC-87897]
Exception when trying to run compile-time code:
ghc-iserv terminated (-4)
Code: (do TyConI dec <- runQ $ reify (mkName "T")
runIO $ putStrLn (pprint dec) >> hFlush stdout
d <- runQ
$ [d| data T' a :: Type
where
MkT' :: a -> a -> T' a
MkC' :: forall a b. (a ~ Int) => {foo :: a, bar :: b} -> T' Int |]
runIO $ putStrLn (pprint d) >> hFlush stdout
....)
*** unexpected failure for T10828(ext-interp)
=====> 7000 of 9215 [0, 1, 0]
=====> 7000 of 9215 [0, 1, 0]
=====> 7000 of 9215 [0, 1, 0]
=====> 7000 of 9215 [0, 1, 0]
Compile failed (exit code 1) errors were:
T13123.hs:1:1: error: [GHC-87897]
Exception when trying to run compile-time code:
ghc-iserv terminated (-4)
Code: ([d| data GADT
where MkGADT :: forall k proxy (a :: k). proxy a -> GADT |])
*** unexpected failure for T13123(ext-interp)
=====> 7100 of 9215 [0, 2, 0]
=====> 7100 of 9215 [0, 2, 0]
=====> 7200 of 9215 [0, 2, 0]
Compile failed (exit code 1) errors were:
T20590.hs:1:1: error: [GHC-87897]
Exception when trying to run compile-time code:
ghc-iserv terminated (-4)
Code: ([d| data T where MkT :: forall a. a -> T |])
*** unexpected failure for T20590(ext-interp)
```
Looks fairly worrying to me.
- - - - -
965a2735 by Alan Zimmerman at 2023-01-09T02:36:20-05:00
EPA: exact print HsDocTy
To match ghc-exactprint
https://github.com/alanz/ghc-exactprint/pull/121
- - - - -
5d65773e by John Ericson at 2023-01-09T20:39:27-05:00
Remove RTS hack for configuring
See the brand new Note [Undefined symbols in the RTS] for additional
details.
- - - - -
e3fff751 by Sebastian Graf at 2023-01-09T20:40:02-05:00
Handle shadowing in DmdAnal (#22718)
Previously, when we had a shadowing situation like
```hs
f x = ... -- demand signature <1L><1L>
main = ... \f -> f 1 ...
```
we'd happily use the shadowed demand signature at the call site inside the
lambda. Of course, that's wrong and solution is simply to remove the demand
signature from the `AnalEnv` when we enter the lambda.
This patch does so for all binding constructs Core.
In #22718 the issue was caused by LetUp not shadowing away the existing demand
signature for the let binder in the let body. The resulting absent error is
fickle to reproduce; hence no reproduction test case. #17478 would help.
Fixes #22718.
It appears that TcPlugin_Rewrite regresses by ~40% on Darwin. It is likely that
DmdAnal was exploiting ill-scoped analysis results.
Metric increase ['bytes allocated'] (test_env=x86_64-darwin-validate):
TcPlugin_Rewrite
- - - - -
d53f6f4d by Oleg Grenrus at 2023-01-09T21:11:02-05:00
Add safe list indexing operator: !?
With Joachim's amendments.
Implements https://github.com/haskell/core-libraries-committee/issues/110
- - - - -
cfaf1ad7 by Nicolas Trangez at 2023-01-09T21:11:03-05:00
rts, tests: limit thread name length to 15 bytes
On Linux, `pthread_setname_np` (or rather, the kernel) only allows for
thread names up to 16 bytes, including the terminating null byte.
This commit adds a note pointing this out in `createOSThread`, and fixes
up two instances where a thread name of more than 15 characters long was
used (in the RTS, and in a test-case).
Fixes: #22366
Fixes: https://gitlab.haskell.org/ghc/ghc/-/issues/22366
See: https://gitlab.haskell.org/ghc/ghc/-/issues/22366#note_460796
- - - - -
64286132 by Matthew Pickering at 2023-01-09T21:11:03-05:00
Store bootstrap_llvm_target and use it to set LlvmTarget in bindists
This mirrors some existing logic for the bootstrap_target which
influences how TargetPlatform is set.
As described on #21970 not storing this led to `LlvmTarget` being set incorrectly
and hence the wrong `--target` flag being passed to the C compiler.
Towards #21970
- - - - -
4724e8d1 by Matthew Pickering at 2023-01-09T21:11:04-05:00
Check for FP_LD_NO_FIXUP_CHAINS in installation configure script
Otherwise, when installing from a bindist the C flag isn't passed to the
C compiler.
This completes the fix for #22429
- - - - -
2e926b88 by Georgi Lyubenov at 2023-01-09T21:11:07-05:00
Fix outdated link to Happy section on sequences
- - - - -
146a1458 by Matthew Pickering at 2023-01-09T21:11:07-05:00
Revert "NCG(x86): Compile add+shift as lea if possible."
This reverts commit 20457d775885d6c3df020d204da9a7acfb3c2e5a.
See #22666 and #21777
- - - - -
6e6adbe3 by Jade Lovelace at 2023-01-11T00:55:30-05:00
Fix tcPluginRewrite example
- - - - -
faa57138 by Jade Lovelace at 2023-01-11T00:55:31-05:00
fix missing haddock pipe
- - - - -
0470ea7c by Florian Weimer at 2023-01-11T00:56:10-05:00
m4/fp_leading_underscore.m4: Avoid implicit exit function declaration
And switch to a new-style function definition.
Fixes build issues with compilers that do not accept implicit function
declarations.
- - - - -
b2857df4 by HaskellMouse at 2023-01-11T00:56:52-05:00
Added a new warning about compatibility with RequiredTypeArguments
This commit introduces a new warning
that indicates code incompatible with
future extension: RequiredTypeArguments.
Enabling this extension may break some code and the warning
will help to make it compatible in advance.
- - - - -
5f17e21a by Ben Gamari at 2023-01-11T00:57:27-05:00
testsuite: Drop testheapalloced.c
As noted in #22414, this file (which appears to be a benchmark for
characterising the one-step allocator's MBlock cache) is currently
unreferenced. Remove it.
Closes #22414.
- - - - -
bc125775 by Vladislav Zavialov at 2023-01-11T00:58:03-05:00
Introduce the TypeAbstractions language flag
GHC Proposals #448 "Modern scoped type variables"
and #425 "Invisible binders in type declarations"
introduce a new language extension flag: TypeAbstractions.
Part of the functionality guarded by this flag has already been
implemented, namely type abstractions in constructor patterns, but it
was guarded by a combination of TypeApplications and ScopedTypeVariables
instead of a dedicated language extension flag.
This patch does the following:
* introduces a new language extension flag TypeAbstractions
* requires TypeAbstractions for @a-syntax in constructor patterns
instead of TypeApplications and ScopedTypeVariables
* creates a User's Guide page for TypeAbstractions and
moves the "Type Applications in Patterns" section there
To avoid a breaking change, the new flag is implied by
ScopedTypeVariables and is retroactively added to GHC2021.
Metric Decrease:
MultiLayerModulesTH_OneShot
- - - - -
083f7015 by Krzysztof Gogolewski at 2023-01-11T00:58:38-05:00
Misc cleanup
- Remove unused mkWildEvBinder
- Use typeTypeOrConstraint - more symmetric and asserts that
that the type is Type or Constraint
- Fix escape sequences in Python; they raise a deprecation warning
with -Wdefault
- - - - -
aed1974e by Richard Eisenberg at 2023-01-11T08:30:42+00:00
Refactor the treatment of loopy superclass dicts
This patch completely re-engineers how we deal with loopy superclass
dictionaries in instance declarations. It fixes #20666 and #19690
The highlights are
* Recognise that the loopy-superclass business should use precisely
the Paterson conditions. This is much much nicer. See
Note [Recursive superclasses] in GHC.Tc.TyCl.Instance
* With that in mind, define "Paterson-smaller" in
Note [Paterson conditions] in GHC.Tc.Validity, and the new
data type `PatersonSize` in GHC.Tc.Utils.TcType, along with
functions to compute and compare PatsonSizes
* Use the new PatersonSize stuff when solving superclass constraints
See Note [Solving superclass constraints] in GHC.Tc.TyCl.Instance
* In GHC.Tc.Solver.Monad.lookupInInerts, add a missing call to
prohibitedSuperClassSolve. This was the original cause of #20666.
* Treat (TypeError "stuff") as having PatersonSize zero. See
Note [Paterson size for type family applications] in GHC.Tc.Utils.TcType.
* Treat the head of a Wanted quantified constraint in the same way
as the superclass of an instance decl; this is what fixes #19690.
See GHC.Tc.Solver.Canonical Note [Solving a Wanted forall-constraint]
(Thanks to Matthew Craven for this insight.)
This entailed refactoring the GivenSc constructor of CtOrigin a bit,
to say whether it comes from an instance decl or quantified constraint.
* Some refactoring way in which redundant constraints are reported; we
don't want to complain about the extra, apparently-redundant
constraints that we must add to an instance decl because of the
loopy-superclass thing. I moved some work from GHC.Tc.Errors to
GHC.Tc.Solver.
* Add a new section to the user manual to describe the loopy
superclass issue and what rules it follows.
- - - - -
300bcc15 by HaskellMouse at 2023-01-11T13:43:36-05:00
Parse qualified terms in type signatures
This commit allows qualified terms in type
signatures to pass the parser and to be cathced by renamer
with more informative error message. Adds a few tests.
Fixes #21605
- - - - -
964284fc by Simon Peyton Jones at 2023-01-11T13:44:12-05:00
Fix void-arg-adding mechanism for worker/wrapper
As #22725 shows, in worker/wrapper we must add the void argument
/last/, not first. See GHC.Core.Opt.WorkWrap.Utils
Note [Worker/wrapper needs to add void arg last].
That led me to to study GHC.Core.Opt.SpecConstr
Note [SpecConstr needs to add void args first] which suggests the
opposite! And indeed I think it's the other way round for SpecConstr
-- or more precisely the void arg must precede the "extra_bndrs".
That led me to some refactoring of GHC.Core.Opt.SpecConstr.calcSpecInfo.
- - - - -
f7ceafc9 by Krzysztof Gogolewski at 2023-01-11T22:36:59-05:00
Add 'docWithStyle' to improve codegen
This new combinator
docWithStyle :: IsOutput doc => doc -> (PprStyle -> SDoc) -> doc
let us remove the need for code to be polymorphic in HDoc
when not used in code style.
Metric Decrease:
ManyConstructors
T13035
T1969
- - - - -
b3be0d18 by Simon Peyton Jones at 2023-01-11T22:37:35-05:00
Fix finaliseArgBoxities for OPAQUE function
We never do worker wrapper for OPAQUE functions, so we must
zap the unboxing info during strictness analysis.
This patch fixes #22502
- - - - -
db11f358 by Ben Gamari at 2023-01-12T07:49:04-05:00
Revert "rts: Drop racy assertion"
The logic here was inverted. Reverting the commit to avoid confusion
when examining the commit history.
This reverts commit b3eacd64fb36724ed6c5d2d24a81211a161abef1.
- - - - -
3242139f by Ben Gamari at 2023-01-12T07:49:04-05:00
rts: Drop racy assertion
0e274c39bf836d5bb846f5fa08649c75f85326ac added an assertion in
`dirty_MUT_VAR` checking that the MUT_VAR being dirtied was clean.
However, this isn't necessarily the case since another thread may have
raced us to dirty the object.
- - - - -
9ffd5d57 by Ben Gamari at 2023-01-12T07:49:41-05:00
configure: Fix escaping of `$tooldir`
In !9547 I introduced `$tooldir` directories into GHC's default link and
compilation flags to ensure that our C toolchain finds its own headers
and libraries before others on the system. However, the patch was subtly
wrong in the escaping of `$tooldir`. Fix this.
Fixes #22561.
- - - - -
905d0b6e by Sebastian Graf at 2023-01-12T15:51:47-05:00
Fix contification with stable unfoldings (#22428)
Many functions now return a `TailUsageDetails` that adorns a `UsageDetails` with
a `JoinArity` that reflects the number of join point binders around the body
for which the `UsageDetails` was computed. `TailUsageDetails` is now returned by
`occAnalLamTail` as well as `occAnalUnfolding` and `occAnalRules`.
I adjusted `Note [Join points and unfoldings/rules]` and
`Note [Adjusting right-hand sides]` to account for the new machinery.
I also wrote a new `Note [Join arity prediction based on joinRhsArity]`
and refer to it when we combine `TailUsageDetails` for a recursive RHS.
I also renamed
* `occAnalLam` to `occAnalLamTail`
* `adjustRhsUsage` to `adjustTailUsage`
* a few other less important functions
and properly documented the that each call of `occAnalLamTail` must pair up with
`adjustTailUsage`.
I removed `Note [Unfoldings and join points]` because it was redundant with
`Note [Occurrences in stable unfoldings]`.
While in town, I refactored `mkLoopBreakerNodes` so that it returns a condensed
`NodeDetails` called `SimpleNodeDetails`.
Fixes #22428.
The refactoring seems to have quite beneficial effect on ghc/alloc performance:
```
CoOpt_Read(normal) ghc/alloc 784,778,420 768,091,176 -2.1% GOOD
T12150(optasm) ghc/alloc 77,762,270 75,986,720 -2.3% GOOD
T12425(optasm) ghc/alloc 85,740,186 84,641,712 -1.3% GOOD
T13056(optasm) ghc/alloc 306,104,656 299,811,632 -2.1% GOOD
T13253(normal) ghc/alloc 350,233,952 346,004,008 -1.2%
T14683(normal) ghc/alloc 2,800,514,792 2,754,651,360 -1.6%
T15304(normal) ghc/alloc 1,230,883,318 1,215,978,336 -1.2%
T15630(normal) ghc/alloc 153,379,590 151,796,488 -1.0%
T16577(normal) ghc/alloc 7,356,797,056 7,244,194,416 -1.5%
T17516(normal) ghc/alloc 1,718,941,448 1,692,157,288 -1.6%
T19695(normal) ghc/alloc 1,485,794,632 1,458,022,112 -1.9%
T21839c(normal) ghc/alloc 437,562,314 431,295,896 -1.4% GOOD
T21839r(normal) ghc/alloc 446,927,580 440,615,776 -1.4% GOOD
geo. mean -0.6%
minimum -2.4%
maximum -0.0%
```
Metric Decrease:
CoOpt_Read
T10421
T12150
T12425
T13056
T18698a
T18698b
T21839c
T21839r
T9961
- - - - -
a1491c87 by Andreas Klebinger at 2023-01-12T15:52:23-05:00
Only gc sparks locally when we can ensure marking is done.
When performing GC without work stealing there was no guarantee that
spark pruning was happening after marking of the sparks. This could
cause us to GC live sparks under certain circumstances.
Fixes #22528.
- - - - -
8acfe930 by Cheng Shao at 2023-01-12T15:53:00-05:00
Change MSYSTEM to CLANG64 uniformly
- - - - -
73bc162b by M Farkas-Dyck at 2023-01-12T15:53:42-05:00
Make `GHC.Tc.Errors.Reporter` take `NonEmpty ErrorItem` rather than `[ErrorItem]`, which lets us drop some panics.
Also use the `BasicMismatch` constructor rather than `mkBasicMismatchMsg`, which lets us drop the "-Wno-incomplete-record-updates" flag.
- - - - -
1b812b69 by Oleg Grenrus at 2023-01-12T15:54:21-05:00
Fix #22728: Not all diagnostics in safe check are fatal
Also add tests for the issue and -Winferred-safe-imports in general
- - - - -
c79b2b65 by Matthew Pickering at 2023-01-12T15:54:58-05:00
Don't run hadrian-multi on fast-ci label
Fixes #22667
- - - - -
9a3d6add by Bodigrim at 2023-01-13T00:46:36-05:00
Bump submodule bytestring to 0.11.4.0
Metric Decrease:
T21839c
T21839r
- - - - -
df33c13c by Ben Gamari at 2023-01-13T00:47:12-05:00
gitlab-ci: Bump Darwin bootstrap toolchain
This updates the bootstrap compiler on Darwin from 8.10.7 to 9.2.5,
ensuring that we have the fix for #21964.
- - - - -
756a66ec by Ben Gamari at 2023-01-13T00:47:12-05:00
gitlab-ci: Pass -w to cabal update
Due to cabal#8447, cabal-install 3.8.1.0 requires a compiler to run
`cabal update`.
- - - - -
1142f858 by Cheng Shao at 2023-01-13T11:04:00+00:00
Bump hsc2hs submodule
- - - - -
d4686729 by Cheng Shao at 2023-01-13T11:04:00+00:00
Bump process submodule
- - - - -
84ae6573 by Cheng Shao at 2023-01-13T11:06:58+00:00
ci: Bump DOCKER_REV
- - - - -
d53598c5 by Cheng Shao at 2023-01-13T11:06:58+00:00
ci: enable xz parallel compression for x64 jobs
- - - - -
d31fcbca by Cheng Shao at 2023-01-13T11:06:58+00:00
ci: use in-image emsdk for js jobs
- - - - -
93b9bbc1 by Cheng Shao at 2023-01-13T11:47:17+00:00
ci: improve nix-shell for gen_ci.hs and fix some ghc/hlint warnings
- Add a ghc environment including prebuilt dependencies to the
nix-shell. Get rid of the ad hoc cabal cache and all dependencies
are now downloaded from the nixos binary cache.
- Make gen_ci.hs a cabal package with HLS integration, to make future
hacking of gen_ci.hs easier.
- Fix some ghc/hlint warnings after I got HLS to work.
- For the lint-ci-config job, do a shallow clone to save a few minutes
of unnecessary git checkout time.
- - - - -
8acc56c7 by Cheng Shao at 2023-01-13T11:47:17+00:00
ci: source the toolchain env file in wasm jobs
- - - - -
87194df0 by Cheng Shao at 2023-01-13T11:47:17+00:00
ci: add wasm ci jobs via gen_ci.hs
- There is one regular wasm job run in validate pipelines
- Additionally, int-native/unreg wasm jobs run in nightly/release pipelines
Also, remove the legacy handwritten wasm ci jobs in .gitlab-ci.yml.
- - - - -
b6eb9bcc by Matthew Pickering at 2023-01-13T11:52:16+00:00
wasm ci: Remove wasm release jobs
This removes the wasm release jobs, as we do not yet intend to
distribute these binaries.
- - - - -
496607fd by Simon Peyton Jones at 2023-01-13T16:52:07-05:00
Add a missing checkEscapingKind
Ticket #22743 pointed out that there is a missing check,
for type-inferred bindings, that the inferred type doesn't
have an escaping kind.
The fix is easy.
- - - - -
7a9a1042 by Andreas Klebinger at 2023-01-16T20:48:19-05:00
Separate core inlining logic from `Unfolding` type.
This seems like a good idea either way, but is mostly motivated by a
patch where this avoids a module loop.
- - - - -
33b58f77 by sheaf at 2023-01-16T20:48:57-05:00
Hadrian: generalise &%> to avoid warnings
This patch introduces a more general version of &%> that works
with general traversable shapes, instead of lists. This allows us
to pass along the information that the length of the list of filepaths
passed to the function exactly matches the length of the input list
of filepath patterns, avoiding pattern match warnings.
Fixes #22430
- - - - -
8c7a991c by Andreas Klebinger at 2023-01-16T20:49:34-05:00
Add regression test for #22611.
A case were a function used to fail to specialize, but now does.
- - - - -
6abea760 by Andreas Klebinger at 2023-01-16T20:50:10-05:00
Mark maximumBy/minimumBy as INLINE.
The RHS was too large to inline which often prevented the overhead of the Maybe
from being optimized away. By marking it as INLINE we can eliminate the
overhead of both the maybe and are able to unpack the accumulator when
possible.
Fixes #22609
- - - - -
99d151bb by Matthew Pickering at 2023-01-16T20:50:50-05:00
ci: Bump CACHE_REV so that ghc-9.6 branch and HEAD have different caches
Having the same CACHE_REV on both branches leads to issues where the
darwin toolchain is different on ghc-9.6 and HEAD which leads to long
darwin build times.
In general we should ensure that each branch has a different CACHE_REV.
- - - - -
6a5845fb by Matthew Pickering at 2023-01-16T20:51:25-05:00
ci: Change owner of files in source-tarball job
This fixes errors of the form:
```
fatal: detected dubious ownership in repository at '/builds/ghc/ghc'
To add an exception for this directory, call:
git config --global --add safe.directory /builds/ghc/ghc
inferred 9.7.20230113
checking for GHC Git commit id... fatal: detected dubious ownership in repository at '/builds/ghc/ghc'
To add an exception for this directory, call:
git config --global --add safe.directory /builds/ghc/ghc
```
- - - - -
4afb952c by Matthew Pickering at 2023-01-16T20:51:25-05:00
ci: Don't build aarch64-deb10-llvm job on release pipelines
Closes #22721
- - - - -
8039feb9 by Matthew Pickering at 2023-01-16T20:51:25-05:00
ci: Change owner of files in test-bootstrap job
- - - - -
0b358d0c by Matthew Pickering at 2023-01-16T20:51:25-05:00
rel_eng: Add release engineering scripts into ghc tree
It is better to keep these scripts in the tree as they depend on the CI
configuration and so on. By keeping them in tree we can keep them
up-to-date as the CI config changes and also makes it easier to backport
changes to the release script between release branches in future.
The final motivation is that it makes generating GHCUp metadata
possible.
- - - - -
28cb2ed0 by Matthew Pickering at 2023-01-16T20:51:25-05:00
ci: Don't use complicated image or clone in not-interruptible job
This job exists only for the meta-reason of not allowing nightly
pipelines to be cancelled. It was taking two minutes to run as in order
to run "true" we would also clone the whole GHC repo.
- - - - -
eeea59bb by Matthew Pickering at 2023-01-16T20:51:26-05:00
Add scripts to generate ghcup metadata on nightly and release pipelines
1. A python script in .gitlab/rel_eng/mk-ghcup-metadata which generates
suitable metadata for consumption by GHCUp for the relevant
pipelines.
- The script generates the metadata just as the ghcup maintainers
want, without taking into account platform/library combinations. It
is updated manually when the mapping changes.
- The script downloads the bindists which ghcup wants to distribute,
calculates the hash and generates the yaml in the correct structure.
- The script is documented in the .gitlab/rel_eng/mk-ghcup-metadata/README.mk file
1a. The script requires us to understand the mapping from platform ->
job. To choose the preferred bindist for each platform the
.gitlab/gen_ci.hs script is modified to allow outputting a metadata
file which answers the question about which job produces the
bindist which we want to distribute to users for a specific
platform.
2. Pipelines to run on nightly and release jobs to generate metadata
- ghcup-metadata-nightly: Generates metadata which points directly to
artifacts in the nightly job.
- ghcup-metadata-release: Generates metadata suitable for inclusion
directly in ghcup by pointing to the downloads folder where the
bindist will be uploaded to.
2a. Trigger jobs which test the generated metadata in the downstream
`ghccup-ci` repo. See that repo for documentation about what is
tested and how but essentially we test in a variety of clean images
that ghcup can download and install the bindists we say exist in our
metadata.
- - - - -
97bd4d8c by Bodigrim at 2023-01-16T20:52:04-05:00
Bump submodule parsec to 3.1.16.1
- - - - -
97ac8230 by Alan Zimmerman at 2023-01-16T20:52:39-05:00
EPA: Add annotation for 'type' in DataDecl
Closes #22765
- - - - -
dbbab95d by Ben Gamari at 2023-01-17T06:36:06-05:00
compiler: Small optimisation of assertM
In #22739 @AndreasK noticed that assertM performed the action to compute
the asserted predicate regardless of whether DEBUG is enabled. This is
inconsistent with the other assertion operations and general convention.
Fix this.
Closes #22739.
- - - - -
fc02f3bb by Viktor Dukhovni at 2023-01-17T06:36:47-05:00
Avoid unnecessary printf warnings in EventLog.c
Fixes #22778
- - - - -
003b6d44 by Simon Peyton Jones at 2023-01-17T16:33:05-05:00
Document the semantics of pattern bindings a bit better
This MR is in response to the discussion on #22719
- - - - -
f4d50baf by Vladislav Zavialov at 2023-01-17T16:33:41-05:00
Hadrian: fix warnings (#22783)
This change fixes the following warnings when building Hadrian:
src/Hadrian/Expression.hs:38:10: warning: [-Wredundant-constraints]
src/Hadrian/Expression.hs:84:13: warning: [-Wtype-equality-requires-operators]
src/Hadrian/Expression.hs:84:21: warning: [-Wtype-equality-requires-operators]
src/Hadrian/Haskell/Cabal/Parse.hs:67:1: warning: [-Wunused-imports]
- - - - -
06036d93 by Sylvain Henry at 2023-01-18T01:55:10-05:00
testsuite: req_smp --> req_target_smp, req_ghc_smp
See #22630 and !9552
This commit:
- splits req_smp into req_target_smp and req_ghc_smp
- changes the testsuite driver to calculate req_ghc_smp
- changes a handful of tests to use req_target_smp instead of req_smp
- changes a handful of tests to use req_host_smp when needed
The problem:
- the problem this solves is the ambiguity surrounding req_smp
- on master req_smp was used to express the constraint that the program
being compiled supports smp _and_ that the host RTS (i.e., the RTS used
to compile the program) supported smp. Normally that is fine, but in
cross compilation this is not always the case as was discovered in #22630.
The solution:
- Differentiate the two constraints:
- use req_target_smp to say the RTS the compiled program is linked
with (and the platform) supports smp
- use req_host_smp to say the RTS the host is linked with supports smp
WIP: fix req_smp (target vs ghc)
add flag to separate bootstrapper
split req_smp -> req_target_smp and req_ghc_smp
update tests smp flags
cleanup and add some docstrings
only set ghc_with_smp to bootstrapper on S1 or CC
Only set ghc_with_smp to bootstrapperWithSMP of when testing stage 1
and cross compiling
test the RTS in config/ghc not hadrian
re-add ghc_with_smp
fix and align req names
fix T11760 to use req_host_smp
test the rts directly, avoid python 3.5 limitation
test the compiler in a try block
align out of tree and in tree withSMP flags
mark failing tests as host req smp
testsuite: req_host_smp --> req_ghc_smp
Fix ghc vs host, fix ghc_with_smp leftover
- - - - -
ee9b78aa by Krzysztof Gogolewski at 2023-01-18T01:55:45-05:00
Use -Wdefault when running Python testdriver (#22727)
- - - - -
e9c0537c by Vladislav Zavialov at 2023-01-18T01:56:22-05:00
Enable -Wstar-is-type by default (#22759)
Following the plan in GHC Proposal #143 "Remove the * kind syntax",
which states:
In the next release (or 3 years in), enable -fwarn-star-is-type by default.
The "next release" happens to be 9.6.1
I also moved the T21583 test case from should_fail to should_compile,
because the only reason it was failing was -Werror=compat in our test
suite configuration.
- - - - -
4efee43d by Ryan Scott at 2023-01-18T01:56:59-05:00
Add missing parenthesizeHsType in cvtSigTypeKind
We need to ensure that the output of `cvtSigTypeKind` is parenthesized (at
precedence `sigPrec`) so that any type signatures with an outermost, explicit
kind signature can parse correctly.
Fixes #22784.
- - - - -
f891a442 by Ben Gamari at 2023-01-18T07:28:00-05:00
Bump ghc-tarballs to fix #22497
It turns out that gmp 6.2.1 uses the platform-reserved `x18` register on
AArch64/Darwin. This was fixed in upstream changeset 18164:5f32dbc41afc,
which was merged in 2020. Here I backport this patch although I do hope
that a new release is forthcoming soon.
Bumps gmp-tarballs submodule.
Fixes #22497.
- - - - -
b13c6ea5 by Ben Gamari at 2023-01-18T07:28:00-05:00
Bump gmp-tarballs submodule
This backports the upstream fix for CVE-2021-43618, fixing #22789.
- - - - -
c45a5fff by Cheng Shao at 2023-01-18T07:28:37-05:00
Fix typo in recent darwin tests fix
Corrects a typo in !9647. Otherwise T18623 will still fail on darwin
and stall other people's work.
- - - - -
b4c14c4b by Luite Stegeman at 2023-01-18T14:21:42-05:00
Add PrimCallConv support to GHCi
This adds support for calling Cmm code from bytecode using the native
calling convention, allowing modules that use `foreign import prim`
to be loaded and debugged in GHCi.
This patch introduces a new `PRIMCALL` bytecode instruction and
a helper stack frame `stg_primcall`. The code is based on the
existing functionality for dealing with unboxed tuples in bytecode,
which has been generalised to handle arbitrary calls.
Fixes #22051
- - - - -
d0a63ef8 by Adam Gundry at 2023-01-18T14:22:26-05:00
Refactor warning flag parsing to add missing flags
This adds `-Werror=<group>` and `-fwarn-<group>` flags for warning
groups as well as individual warnings. Previously these were defined
on an ad hoc basis so for example we had `-Werror=compat` but not
`-Werror=unused-binds`, whereas we had `-fwarn-unused-binds` but not
`-fwarn-compat`. Fixes #22182.
- - - - -
7ed1b8ef by Adam Gundry at 2023-01-18T14:22:26-05:00
Minor corrections to comments
- - - - -
5389681e by Adam Gundry at 2023-01-18T14:22:26-05:00
Revise warnings documentation in user's guide
- - - - -
ab0d5cda by Adam Gundry at 2023-01-18T14:22:26-05:00
Move documentation of deferred type error flags out of warnings section
- - - - -
eb5a6b91 by John Ericson at 2023-01-18T22:24:10-05:00
Give the RTS it's own configure script
Currently it doesn't do much anything, we are just trying to introduce
it without breaking the build. Later, we will move functionality from
the top-level configure script over to it.
We need to bump Cabal for https://github.com/haskell/cabal/pull/8649; to
facilitate and existing hack of skipping some configure checks for the
RTS we now need to skip just *part* not *all* of the "post configure"
hook, as running the configure script (which we definitely want to do)
is also implemented as part of the "post configure" hook. But doing this
requires exposing functionality that wasn't exposed before.
- - - - -
32ab07bf by Bodigrim at 2023-01-18T22:24:51-05:00
ghc package does not have to depend on terminfo
- - - - -
981ff7c4 by Bodigrim at 2023-01-18T22:24:51-05:00
ghc-pkg does not have to depend on terminfo
- - - - -
f058e367 by Ben Gamari at 2023-01-18T22:25:27-05:00
nativeGen/X86: MFENCE is unnecessary for release semantics
In #22764 a user noticed that a program implementing a simple atomic
counter via an STRef regressed significantly due to the introduction of
necessary atomic operations in the MutVar# primops (#22468). This
regression was caused by a bug in the NCG, which emitted an unnecessary
MFENCE instruction for a release-ordered atomic write. MFENCE is rather
only needed to achieve sequentially consistent ordering.
Fixes #22764.
- - - - -
154889db by Ryan Scott at 2023-01-18T22:26:03-05:00
Add regression test for #22151
Issue #22151 was coincidentally fixed in commit
aed1974e92366ab8e117734f308505684f70cddf (`Refactor the treatment of loopy
superclass dicts`). This adds a regression test to ensure that the issue
remains fixed.
Fixes #22151.
- - - - -
14b5982a by Andrei Borzenkov at 2023-01-18T22:26:43-05:00
Fix printing of promoted MkSolo datacon (#22785)
Problem: In 2463df2f, the Solo data constructor was renamed to MkSolo,
and Solo was turned into a pattern synonym for backwards compatibility.
Since pattern synonyms can not be promoted, the old code that pretty-printed
promoted single-element tuples started producing ill-typed code:
t :: Proxy ('Solo Int)
This fails with "Pattern synonym ‘Solo’ used as a type"
The solution is to track the distinction between type constructors and data
constructors more carefully when printing single-element tuples.
- - - - -
1fe806d3 by Cheng Shao at 2023-01-23T04:48:47-05:00
hadrian: add hi_core flavour transformer
The hi_core flavour transformer enables -fwrite-if-simplified-core for
stage1 libraries, which emit core into interface files to make it
possible to restart code generation. Building boot libs with it makes
it easier to use GHC API to prototype experimental backends that needs
core/stg at link time.
- - - - -
317cad26 by Cheng Shao at 2023-01-23T04:48:47-05:00
hadrian: add missing docs for recently added flavour transformers
- - - - -
658f4446 by Ben Gamari at 2023-01-23T04:49:23-05:00
gitlab-ci: Add Rocky8 jobs
Addresses #22268.
- - - - -
a83ec778 by Vladislav Zavialov at 2023-01-23T04:49:58-05:00
Set "since: 9.8" for TypeAbstractions and -Wterm-variable-capture
These flags did not make it into the 9.6 release series,
so the "since" annotations must be corrected.
- - - - -
fec7c2ea by Alan Zimmerman at 2023-01-23T04:50:33-05:00
EPA: Add SourceText to HsOverLabel
To be able to capture string literals with possible escape codes as labels.
Close #22771
- - - - -
3efd1e99 by Ben Gamari at 2023-01-23T04:51:08-05:00
template-haskell: Bump version to 2.20.0.0
Updates `text` and `exceptions` submodules for bounds bumps.
Addresses #22767.
- - - - -
0900b584 by Cheng Shao at 2023-01-23T04:51:45-05:00
hadrian: disable alloca for in-tree GMP on wasm32
When building in-tree GMP for wasm32, disable its alloca usage, since
it may potentially cause stack overflow (e.g. #22602).
- - - - -
db0f1bfd by Cheng Shao at 2023-01-23T04:52:21-05:00
Bump process submodule
Includes a critical fix for wasm32, see
https://github.com/haskell/process/pull/272 for details. Also changes
the existing cross test to include process stuff and avoid future
regression here.
- - - - -
9222b167 by Matthew Pickering at 2023-01-23T04:52:57-05:00
ghcup metadata: Fix subdir for windows bindist
- - - - -
9a9bec57 by Matthew Pickering at 2023-01-23T04:52:57-05:00
ghcup metadata: Remove viPostRemove field from generated metadata
This has been removed from the downstream metadata.
- - - - -
82884ce0 by Simon Peyton Jones at 2023-01-23T04:53:32-05:00
Fix #22742
runtimeRepLevity_maybe was panicing unnecessarily; and
the error printing code made use of the case when it should
return Nothing rather than panicing.
For some bizarre reason perf/compiler/T21839r shows a 10% bump in runtime
peak-megagbytes-used, on a single architecture (alpine). See !9753 for
commentary, but I'm going to accept it.
Metric Increase:
T21839r
- - - - -
c0a26643 by Sylvain Henry at 2023-01-23T15:51:22+01:00
WIP: add support for a third TH runner for JS
- - - - -
b37b0c97 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Install THRunner.js
- - - - -
0e3dc14e by Sylvain Henry at 2023-01-23T15:51:23+01:00
Put JS interp in its own module
- - - - -
563c80fe by Sylvain Henry at 2023-01-23T15:51:23+01:00
Refactor a bit to make IServ and JSInterp more alike
- - - - -
a9f1a988 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Fix warning
- - - - -
69ff9fe8 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Add placeholders
- - - - -
3db91d0b by Sylvain Henry at 2023-01-23T15:51:23+01:00
Initialize JS interpreter
- - - - -
da79a14c by Sylvain Henry at 2023-01-23T15:51:23+01:00
Interpret one dumb message :D
- - - - -
46d54b8a by Sylvain Henry at 2023-01-23T15:51:23+01:00
WIP: rts linking function
- - - - -
eb66cfbb by Sylvain Henry at 2023-01-23T15:51:23+01:00
Spawn NodeJS
- - - - -
bc9b2b2b by Sylvain Henry at 2023-01-23T15:51:23+01:00
WIP: start interacting with interpreter
Failing because we can't use readSync with stdin...
- - - - -
dfa539cb by Sylvain Henry at 2023-01-23T15:51:23+01:00
Load the RTS
- - - - -
5f3c3a9e by Sylvain Henry at 2023-01-23T15:51:23+01:00
Implement MallocStrings
- - - - -
3bd38203 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Support InitLinker command
- - - - -
6cd461f2 by Sylvain Henry at 2023-01-23T15:51:23+01:00
More commands
- - - - -
a3a3b755 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Pass jsLookupSymbol
- - - - -
132c3a9f by Sylvain Henry at 2023-01-23T15:51:23+01:00
Codegen CoreExpr into JS
- - - - -
36d395e3 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Correctly export symbol
- - - - -
280daafe by Sylvain Henry at 2023-01-23T15:51:23+01:00
Refactor computeLinkDepenencies
- Better input/output types
- Remove side-effects (ppr)
- Prepare for two-phase linking: plan, link
- Prepare for three-phase linking: plan, remove already linked, link
- - - - -
50153b15 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Rename LinkableUnit duplicated type into BlockRef
- - - - -
d419590c by Sylvain Henry at 2023-01-23T15:51:23+01:00
Implement two-phase linking: plan, link
- - - - -
5a3cf16e by Sylvain Henry at 2023-01-23T15:51:23+01:00
Rename JS Unit into Block for clarity.
Also add LocatedBlockInfo type instead of using tuple
- - - - -
9e81a317 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Always include global blocks in LinkPlan
- - - - -
d252c81c by Sylvain Henry at 2023-01-23T15:51:23+01:00
Replace predicate with declarative list of blocks to link (easier to diff)
- - - - -
c946c423 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Use sets instead of lists (easier to diff)
- - - - -
8fd86aa4 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Implement incremental linking
- - - - -
90454d49 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Ensure that we link all blocks
- - - - -
af8094ed by Sylvain Henry at 2023-01-23T15:51:23+01:00
Remove useless link plan field and fix root symbol
- - - - -
15a997b6 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Remove import
- - - - -
f500c6fa by Sylvain Henry at 2023-01-23T15:51:23+01:00
Link with implicit TH unit
- - - - -
0a5d13f8 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Remove some debug info
- - - - -
88b3f301 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Remove unused iservmain.c
- - - - -
c004ed60 by Sylvain Henry at 2023-01-23T15:51:23+01:00
WIP: use JS interp in runTH
- - - - -
bdec99c8 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Merge libiserv with ghci
- - - - -
24d8bee1 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Wire ghci unit
- - - - -
d3b9b149 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Load interpreter server
- - - - -
d9d840c1 by Sylvain Henry at 2023-01-23T15:51:23+01:00
Renamed LinkSpec fields for clarity
- - - - -
10d59318 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Disable MkConInfoTable command and InfoTable module with JS
- - - - -
fcf51a64 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Run the server!
- - - - -
78d4d135 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Pass some commands to the server
- - - - -
492f8e42 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Reuse more of IServ for the JS interp
- - - - -
e9e5b220 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Fix fdGetMode
- - - - -
2f7cc2df by Sylvain Henry at 2023-01-23T15:51:24+01:00
Implement LoadJS iserv message
Still failing to find the h$loadJS function for some reason
- - - - -
10b49d72 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Give access to h$loadJS to loaded code
- - - - -
4d6a2cad by Sylvain Henry at 2023-01-23T15:51:24+01:00
Move log message into h$loadJS
- - - - -
3621fb7a by Sylvain Henry at 2023-01-23T15:51:24+01:00
Handle more messages
- - - - -
964e397a by Sylvain Henry at 2023-01-23T15:51:24+01:00
Replace HValue with Any
- - - - -
d9f0664d by Sylvain Henry at 2023-01-23T15:51:24+01:00
s/RemoteRef/HeapRef
- - - - -
f1bd5dcb by Sylvain Henry at 2023-01-23T15:51:24+01:00
Implement LookupClosure message
- - - - -
0c6b00f1 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Don't forget to eval() the given string
- - - - -
84fe41fd by Sylvain Henry at 2023-01-23T15:51:24+01:00
HValue renaming leftovers
- - - - -
c9b3ae91 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Implement RunModFinalizers
- - - - -
1cc2e200 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Remove delays
- - - - -
653e582c by Sylvain Henry at 2023-01-23T15:51:24+01:00
Replace iservCall with sendMessage
- - - - -
0562ee6c by Sylvain Henry at 2023-01-23T15:51:24+01:00
Start making Iserv and JS interp closer
- - - - -
614d7ce7 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Remove useless/unused commands
- - - - -
ab7d3dac by Sylvain Henry at 2023-01-23T15:51:24+01:00
More factorization
- - - - -
419169c8 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Cleanup
- - - - -
dd102408 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Remove now useless HasInterpProcess class
- - - - -
3717abc7 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Don't use Interp when we already have an interp instance
- - - - -
12d691ad by Sylvain Henry at 2023-01-23T15:51:24+01:00
Refactor hptModulesBelow
- - - - -
c525cc86 by Sylvain Henry at 2023-01-23T15:51:24+01:00
More refactoring
- - - - -
ffac8059 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Add jsLinkObjects to prepare for loading home-unit objects
- - - - -
6f6e2fa5 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Allow getDeps to update module info during its traversal
- - - - -
5d20468d by Sylvain Henry at 2023-01-23T15:51:24+01:00
Load home unit dependencies too
- - - - -
41e849f8 by Luite Stegeman at 2023-01-23T15:51:24+01:00
make thrunner stdin asynchronous, fixing macOS/Windows
warning: buffering very inefficient
- - - - -
bfc329ac by Sylvain Henry at 2023-01-23T15:51:24+01:00
Testsuite: enable TH for the JS target
- - - - -
0a55feef by Sylvain Henry at 2023-01-23T15:51:24+01:00
Disable verbose messages
- - - - -
6d6ae954 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Simplify JS protocole a great deal (use strings)
- - - - -
70e1282d by Sylvain Henry at 2023-01-23T15:51:24+01:00
Revert "More refactoring"
This reverts commit 1942705b24f7c956a2dc15028daed41e24c9d31d.
- - - - -
6b3779d9 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Revert "Refactor hptModulesBelow"
This reverts commit 9840d044dec76cd3a6fb34af0bb6121d7ce933b8.
- - - - -
cc3febc8 by Sylvain Henry at 2023-01-23T15:51:24+01:00
Rename stuff
- - - - -
30 changed files:
- .gitlab-ci.yml
- .gitlab/ci.sh
- .gitlab/darwin/nix/sources.json
- .gitlab/darwin/toolchain.nix
- + .gitlab/gen-ci.cabal
- .gitlab/gen_ci.hs
- + .gitlab/generate_job_metadata
- .gitlab/generate_jobs
- .gitlab/hello.hs
- + .gitlab/hie.yaml
- .gitlab/jobs.yaml
- + .gitlab/rel_eng/default.nix
- + .gitlab/rel_eng/fetch-gitlab-artifacts/.gitignore
- + .gitlab/rel_eng/fetch-gitlab-artifacts/README.mkd
- + .gitlab/rel_eng/fetch-gitlab-artifacts/default.nix
- + .gitlab/rel_eng/fetch-gitlab-artifacts/fetch_gitlab.py
- + .gitlab/rel_eng/fetch-gitlab-artifacts/setup.py
- + .gitlab/rel_eng/mk-ghcup-metadata/.gitignore
- + .gitlab/rel_eng/mk-ghcup-metadata/README.mkd
- + .gitlab/rel_eng/mk-ghcup-metadata/default.nix
- + .gitlab/rel_eng/mk-ghcup-metadata/mk_ghcup_metadata.py
- + .gitlab/rel_eng/mk-ghcup-metadata/setup.py
- + .gitlab/rel_eng/nix/sources.json
- + .gitlab/rel_eng/nix/sources.nix
- + .gitlab/rel_eng/upload.sh
- .gitlab/upload_ghc_libs.py → .gitlab/rel_eng/upload_ghc_libs.py
- CODEOWNERS
- boot
- cabal.project-reinstall
- compiler/GHC.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/3b85f87f0734015bd36cd32b630d59dfd6a115ae...cc3febc8665f36f4660156a02b6935d3f812c65c
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/3b85f87f0734015bd36cd32b630d59dfd6a115ae...cc3febc8665f36f4660156a02b6935d3f812c65c
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/20230123/b83ee275/attachment-0001.html>
More information about the ghc-commits
mailing list