[Git][ghc/ghc][wip/ghc-18740-lookup-update] 25 commits: Use UnitId in the backend instead of Unit
Danya Rogozin
gitlab at gitlab.haskell.org
Fri Oct 9 18:33:43 UTC 2020
Danya Rogozin pushed to branch wip/ghc-18740-lookup-update at Glasgow Haskell Compiler / GHC
Commits:
386c2d7f by Sylvain Henry at 2020-10-09T08:40:33-04:00
Use UnitId in the backend instead of Unit
In Cmm we can only have real units identified with an UnitId. Other
units (on-the-fly instantiated units and holes) are only used in
type-checking backpack sessions that don't produce Cmm.
- - - - -
a566c83d by Simon Jakobi at 2020-10-09T08:41:09-04:00
Update containers to v0.6.4.1
Updates containers submodule.
- - - - -
fd984d68 by Tamar Christina at 2020-10-09T08:41:50-04:00
rts: fix race condition in StgCRun
On windows the stack has to be allocated 4k at a time, otherwise we get
a segfault. This is done by using a helper ___chkstk_ms that is provided
by libgcc. The Haskell side already knows how to handle this but we need
to do the same from STG. Previously we would drop the stack in StgRun
but would only make it valid whenever the scheduler loop ran.
This approach was fundamentally broken in that it falls apart when you
take a signal from the OS. We see it less often because you initially
get allocated a 1MB stack block which you have to blow past first.
Concretely this means we must always keep the stack valid.
Fixes #18601.
- - - - -
accdb24a by Sylvain Henry at 2020-10-09T08:42:31-04:00
Expose RTS-only ways (#18651)
Some RTS ways are exposed via settings (ghcThreaded, ghcDebugged) but
not all. It's simpler if the RTS exposes them all itself.
- - - - -
d360f343 by MaxGabriel at 2020-10-09T08:43:11-04:00
Document -Wderiving-typeable
Tracking: #18641
- - - - -
e48cab2a by Krzysztof Gogolewski at 2020-10-09T08:43:49-04:00
Add a flag to indicate that gcc supports -no-pie
Fixes #17919.
- - - - -
f7e2fff9 by Hécate at 2020-10-09T08:44:26-04:00
Add linting of `base` to the CI
- - - - -
45a1d493 by Andreas Klebinger at 2020-10-09T08:45:05-04:00
Use proper RTS flags when collecting residency in perf tests.
Replace options like collect_stats(['peak_megabytes_allocated'],4) with
collect_runtime_residency(4) and so forth. Reason being that the later
also supplies some default RTS arguments which make sure residency does
not fluctuate too much.
The new flags mean we get new (hopefully more accurate) baselines so
accept the stat changes.
-------------------------
Metric Decrease:
T4029
T4334
T7850
Metric Increase:
T13218
T7436
-------------------------
- - - - -
ef65b154 by Andreas Klebinger at 2020-10-09T08:45:42-04:00
testsuite/timeout: Fix windows specific errors.
We now seem to use -Werror there. Which caused some long standing
warnings to become errors.
I applied changes to remove the warnings allowing the testsuite to
run on windows as well.
- - - - -
e691a5a0 by Sylvain Henry at 2020-10-09T08:46:22-04:00
Hadrian: add quick-debug flavour
- - - - -
12191a99 by Sylvain Henry at 2020-10-09T08:47:00-04:00
Bignum: match on small Integer/Natural
Previously we only matched on *variables* whose unfoldings were a ConApp
of the form `IS lit#` or `NS lit##`. But we forgot to match on the
ConApp directly... As a consequence, constant folding only worked after
the FloatOut pass which creates bindings for most sub-expressions. With
this patch, matching on bignums works even with -O0 (see bignumMatch
test).
- - - - -
36787bba by Alan Zimmerman at 2020-10-09T08:47:36-04:00
ApiAnnotations : preserve parens in GADTs
A cleanup in 7f418acf61e accidentally discarded some parens in
ConDeclGADT.
Make sure these stay in the AST in a usable format.
Also ensure the AnnLolly does not get lost in a GADT.
- - - - -
32dc7698 by Krzysztof Gogolewski at 2020-10-09T08:48:15-04:00
Linear types: fix roles in GADTs (#18799)
- - - - -
9657f6f3 by Ben Gamari at 2020-10-09T08:48:52-04:00
sdist: Include hadrian sources in source distribution
Previously the make build system's source distribution rules neglected
to include Hadrian's sources.
Fixes #18794.
- - - - -
c832f7e2 by Tamar Christina at 2020-10-09T08:49:33-04:00
winio: fixed timeouts non-threaded.
- - - - -
6f0243ae by Tamar Christina at 2020-10-09T08:50:13-04:00
winio: fix array splat
- - - - -
0fd3d360 by Tamar Christina at 2020-10-09T08:50:51-04:00
winio: fixed bytestring reading interface.
- - - - -
dfaef1ca by Tamar Christina at 2020-10-09T08:51:30-04:00
winio: fixed more data error.
- - - - -
bfdccac6 by Simon Peyton Jones at 2020-10-09T08:52:07-04:00
Fix desugaring of record updates on data families
This fixes a long-standing bug in the desugaring of record
updates for data families, when the latter involves a GADT. It's
all explained in Note [Update for GADTs] in GHC.HsToCore.Expr.
Building the correct cast is surprisingly tricky, as that Note
explains.
Fixes #18809. The test case (in indexed-types/should_compile/T18809)
contains several examples that exercise the dark corners.
- - - - -
e5c7c9c8 by Ben Gamari at 2020-10-09T08:52:43-04:00
Bump win32-tarballs version to 0.3
This should fix #18774.
- - - - -
ef950b19 by Andreas Klebinger at 2020-10-09T08:53:21-04:00
Add TyCon Set/Env and use them in a few places.
Firstly this improves code clarity.
But it also has performance benefits as we no longer
go through the name of the TyCon to get at it's unique.
In order to make this work the recursion check for TyCon
has been moved into it's own module in order to avoid import
cycles.
- - - - -
fd302e93 by Krzysztof Gogolewski at 2020-10-09T08:54:02-04:00
Add -pgmlm and -optlm flags
!3798 added documentation and semantics for the flags,
but not parsing.
- - - - -
db236ffc by Sylvain Henry at 2020-10-09T08:54:41-04:00
Testsuite: increase timeout for T18223 (#18795)
- - - - -
6a243e9d by Sylvain Henry at 2020-10-09T08:55:21-04:00
Cache HomeUnit in HscEnv (#17957)
Instead of recreating the HomeUnit from the DynFlags every time we need
it, we store it in the HscEnv.
- - - - -
cb90acda by Daniel Rogozin at 2020-10-09T21:33:20+03:00
Fall back to types when looking up data constructors (#18740)
Before this patch, referring to a data constructor in a term-level
context led to a scoping error:
ghci> id Int
<interactive>:1:4: error: Data constructor not in scope: Int
After this patch, the renamer falls back to the type namespace
and successfully finds the Int. It is then rejected in the type
checker with a more useful error message:
<interactive>:1:4: error:
• Illegal term-level use of the type constructor ‘Int’
imported from ‘Prelude’ (and originally defined in ‘GHC.Types’)
• In the first argument of ‘id’, namely ‘Int’
In the expression: id Int
We also do this for type variables.
- - - - -
30 changed files:
- .gitlab-ci.yml
- compiler/GHC.hs
- compiler/GHC/Cmm/CLabel.hs
- compiler/GHC/CmmToAsm/X86/Instr.hs
- compiler/GHC/Core/Coercion.hs
- compiler/GHC/Core/DataCon.hs
- compiler/GHC/Core/Opt/Arity.hs
- compiler/GHC/Core/Opt/Pipeline.hs
- compiler/GHC/Core/Opt/SpecConstr.hs
- compiler/GHC/Core/Opt/WorkWrap/Utils.hs
- compiler/GHC/Core/Predicate.hs
- compiler/GHC/Core/SimpleOpt.hs
- compiler/GHC/Core/TyCo/Subst.hs
- compiler/GHC/Core/TyCon.hs
- + compiler/GHC/Core/TyCon/Env.hs
- + compiler/GHC/Core/TyCon/RecWalk.hs
- + compiler/GHC/Core/TyCon/Set.hs
- compiler/GHC/CoreToStg/Prep.hs
- compiler/GHC/Driver/Backpack.hs
- compiler/GHC/Driver/Finder.hs
- compiler/GHC/Driver/Main.hs
- compiler/GHC/Driver/Make.hs
- compiler/GHC/Driver/Pipeline.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/Driver/Types.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/Hs/Type.hs
- compiler/GHC/HsToCore.hs
- compiler/GHC/HsToCore/Expr.hs
- compiler/GHC/HsToCore/Monad.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/58bfa4eb4677ce7826dfa353b4b7cb0b1b1582a9...cb90acda33947e09653620a80db6f4d744451099
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/58bfa4eb4677ce7826dfa353b4b7cb0b1b1582a9...cb90acda33947e09653620a80db6f4d744451099
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/20201009/20ede04f/attachment.html>
More information about the ghc-commits
mailing list