[Git][ghc/ghc][wip/T17173] 4 commits: GHC.Core.Opt renaming
Simon Peyton Jones
gitlab at gitlab.haskell.org
Mon Apr 20 08:17:00 UTC 2020
Simon Peyton Jones pushed to branch wip/T17173 at Glasgow Haskell Compiler / GHC
Commits:
3ca52151 by Sylvain Henry at 2020-04-18T20:04:14+02:00
GHC.Core.Opt renaming
* GHC.Core.Op => GHC.Core.Opt
* GHC.Core.Opt.Simplify.Driver => GHC.Core.Opt.Driver
* GHC.Core.Opt.Tidy => GHC.Core.Tidy
* GHC.Core.Opt.WorkWrap.Lib => GHC.Core.Opt.WorkWrap.Utils
As discussed in:
* https://mail.haskell.org/pipermail/ghc-devs/2020-April/018758.html
* https://gitlab.haskell.org/ghc/ghc/issues/13009#note_264650
- - - - -
15312bbb by Sylvain Henry at 2020-04-18T20:04:46+02:00
Modules (#13009)
* SysTools
* Parser
* GHC.Builtin
* GHC.Iface.Recomp
* Settings
Update Haddock submodule
Metric Decrease:
Naperian
parsing001
- - - - -
eaed0a32 by Alexis King at 2020-04-19T03:16:44-04:00
Add missing addInScope call for letrec binders in OccurAnal
This fixes #18044, where a shadowed variable was incorrectly substituted
by the binder swap on the RHS of a floated-in letrec. This can only
happen when the uniques line up *just* right, so writing a regression
test would be very difficult, but at least the fix is small and
straightforward.
- - - - -
12ae4eda by Simon Peyton Jones at 2020-04-20T09:16:31+01:00
Do eager instantation in terms
This patch implements eager instantiation, a small but critical change
to the type inference engine, #17173. The main change is this:
When inferring types, always return an instantiated type
(for now, deeply instantiated; in future shallowly instantiated)
There is more discussion in
https://www.tweag.io/posts/2020-04-02-lazy-eager-instantiation.html
There is quite a bit of refactoring in this patch:
* The ir_inst field of GHC.Tc.Utils.TcType.InferResultk
has entirely gone. So tcInferInst and tcInferNoInst have collapsed
into tcInfer.
* Type inference of applications, via tcInferApp and
tcInferAppHead, are substantially refactored, preparing
the way for Quick Look impredicativity.
* New pure function GHC.Tc.Gen.Expr.collectHsArgs and applyHsArgs
are beatifully dual. We can see the zipper!
* GHC.Tc.Gen.Expr.tcArgs is now much nicer; no longer needs to return
a wrapper
* In HsExpr, HsTypeApp now contains the the actual type argument,
and is used in desugaring, rather than putting it in a mysterious
wrapper.
* I struggled a bit with good error reporting in
Unify.matchActualFunTysPart. It's a little bit simpler than before,
but still not great.
Some smaller things
* Rename tcPolyExpr --> tcCheckExpr
tcMonoExpr --> tcLExpr
* tcPatSig moves from GHC.Tc.Gen.HsType to GHC.Tc.Gen.Pat
Metric Decrease:
T9961
Reduction of 1.6% in comiler allocation on T9961, I think.
- - - - -
30 changed files:
- compiler/GHC.hs
- compiler/prelude/PrelNames.hs → compiler/GHC/Builtin/Names.hs
- compiler/prelude/PrelNames.hs-boot → compiler/GHC/Builtin/Names.hs-boot
- compiler/prelude/THNames.hs → compiler/GHC/Builtin/Names/TH.hs
- compiler/prelude/PrimOp.hs → compiler/GHC/Builtin/PrimOps.hs
- compiler/prelude/PrimOp.hs-boot → compiler/GHC/Builtin/PrimOps.hs-boot
- compiler/prelude/TysWiredIn.hs → compiler/GHC/Builtin/Types.hs
- compiler/prelude/TysWiredIn.hs-boot → compiler/GHC/Builtin/Types.hs-boot
- compiler/typecheck/TcTypeNats.hs → compiler/GHC/Builtin/Types/Literals.hs
- compiler/prelude/TysPrim.hs → compiler/GHC/Builtin/Types/Prim.hs
- compiler/prelude/KnownUniques.hs → compiler/GHC/Builtin/Uniques.hs
- compiler/prelude/KnownUniques.hs-boot → compiler/GHC/Builtin/Uniques.hs-boot
- compiler/prelude/PrelInfo.hs → compiler/GHC/Builtin/Utils.hs
- compiler/prelude/primops.txt.pp → compiler/GHC/Builtin/primops.txt.pp
- compiler/GHC/ByteCode/Instr.hs
- compiler/GHC/ByteCode/Linker.hs
- compiler/GHC/ByteCode/Types.hs
- compiler/GHC/Cmm/CLabel.hs
- compiler/GHC/Cmm/Lexer.x
- compiler/GHC/Cmm/Monad.hs
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/CmmToLlvm.hs
- compiler/GHC/Core.hs
- compiler/GHC/Core/Class.hs
- compiler/GHC/Core/Coercion.hs
- compiler/GHC/Core/Coercion/Axiom.hs
- compiler/GHC/Core/DataCon.hs
- compiler/GHC/Core/FVs.hs
- compiler/GHC/Core/FamInstEnv.hs
- compiler/GHC/Core/Lint.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/34287d9a676b83a50e15acecbe0be2e7232f1987...12ae4eda5ec2ac968a56cf97972bb75623536bce
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/34287d9a676b83a50e15acecbe0be2e7232f1987...12ae4eda5ec2ac968a56cf97972bb75623536bce
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/20200420/1571e4a7/attachment.html>
More information about the ghc-commits
mailing list