[Git][ghc/ghc][wip/T21623] 35 commits: Define `Infinite` list and use where appropriate.
Simon Peyton Jones (@simonpj)
gitlab at gitlab.haskell.org
Tue Nov 8 23:48:21 UTC 2022
Simon Peyton Jones pushed to branch wip/T21623 at Glasgow Haskell Compiler / GHC
Commits:
68f49874 by M Farkas-Dyck at 2022-11-08T12:53:55-05:00
Define `Infinite` list and use where appropriate.
Also add perf test for infinite list fusion.
In particular, in `GHC.Core`, often we deal with infinite lists of roles. Also in a few locations we deal with infinite lists of names.
Thanks to simonpj for helping to write the Note [Fusion for `Infinite` lists].
- - - - -
ce726cd2 by Ross Paterson at 2022-11-08T12:54:34-05:00
Fix TypeData issues (fixes #22315 and #22332)
There were two bugs here:
1. Treating type-level constructors as PromotedDataCon doesn't always
work, in particular because constructors promoted via DataKinds are
called both T and 'T. (Tests T22332a, T22332b, T22315a, T22315b)
Fix: guard these cases with isDataKindsPromotedDataCon.
2. Type-level constructors were sent to the code generator, producing
things like constructor wrappers. (Tests T22332a, T22332b)
Fix: test for them in isDataTyCon.
Other changes:
* changed the marking of "type data" DataCon's as suggested by SPJ.
* added a test TDGADT for a type-level GADT.
* comment tweaks
* change tcIfaceTyCon to ignore IfaceTyConInfo, so that IfaceTyConInfo
is used only for pretty printing, not for typechecking. (SPJ)
- - - - -
132f8908 by Jade Lovelace at 2022-11-08T12:55:18-05:00
Clarify msum/asum documentation
- - - - -
bb5888c5 by Jade Lovelace at 2022-11-08T12:55:18-05:00
Add example for (<$)
- - - - -
080fffa1 by Jade Lovelace at 2022-11-08T12:55:18-05:00
Document what Alternative/MonadPlus instances actually do
- - - - -
7ab5f4a1 by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Start work
Not ready for review
More progress
Wibbles
Stage1 compiles
More wibbles
More wibbles
More -- almost working
Comments
Wibbles
Wibbles
Wibble inlineId
Wibbles
Infinite loop somewhere
More wibbles. Maybe can build stage2
Make FuNCo a thing by itself
Wibble
Wibble
Wibbles
Fix OptCoercion
Wibble
Wibble to optCoercion
Replace SORT with TYPE and CONSTRAINT
Wibble
Delete unused import
Delete TypeOrConstraint from ghc-prim:GHC.Types
Move from NthCo to SelCo
Wibbles
Wibbles in RepType
Wibble
Add mkWpEta
Really add mkWpEta
Wibble Typeable binds etc
Improve error messages
More wibbles, mainly to error messages
Wibbles
Wibbles to errors
Wibbles
But especially: treat Constraint as Typeable
More wibbles
More changes
* Move role into SelTyCon
* Get rid of mkTcSymCo and friends
Unused variable
Wibbles
Wibble
Accept error message changes
Refactoring...
Remove tc functions like tcKind, tcGetTyVar.
Move tyConsOfType, occCheckExpand to TyCo.FVs.
Introduce GHC.Core.TyCo.Compare
Lots of import changes!
Update haddock submodule (I hope)
Wibbles (notably: actually add GHC.Core.TyCo.Compare)
Wibbles
Wibble output of T16575
Wibbles
More wibbles
Remove infinite loop in T1946
See Note [ForAllTy and type equality]
Deal with rejigConRes
Needs a Note to be written by Richard
Some renaming
AnonArgFlag --> FunTyFlag
ArgFlag --> ForAllTyFlag
Update haddock submodule
Rename TyCoBinder to ForAllTyBinder
Wibbles
Update haddock
Wibble
Update unix submodule
I think I accidentally got it out of sync with HEAD;
this puts it back.
Rename TyCoBinder to PiTyBinder
Update Haddock submodule
Wrap dictionaries in tuples
This fixes the kind bugs in arrow desugaring. Needs some Notes,
but I want to try CI.
More on boxing data cons
Rebase and update GHC.Tc.Errors/GHC.Tc.Errors.Ppr
Revert accidental changes in SameOccInfo
fixes mod180, tcfail182
Wibbles in error messages
..plus eqType comes from GHC.Core.TyCo.Compare
Wibbles
More wibbles
Reaedy for RAE review
Fix fragile rule setup in GHC.Float
See Note [realToFrac natural-to-float]
Wibbles
More wibbles
Remove unused import
Remove another unused import
Wibbles
Update haddock submodule
Respond to Sam's suggestions
Wibbles
Wibbles
- - - - -
6df2a36d by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Wibbles
- - - - -
34cb2419 by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Unused import
- - - - -
d63da24b by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Better boxingCon_maybe
- - - - -
f5d3dffd by Richard Eisenberg at 2022-11-08T22:25:36+00:00
Improvements to comments, etc., from Richard
- - - - -
2f3b4c6e by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Respond to Richard
- - - - -
a6bac926 by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Improve boxing-data-con API
- - - - -
3d5fd2e9 by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Update error messages
- - - - -
b755a898 by Richard Eisenberg at 2022-11-08T22:25:36+00:00
Fix the equality constraint problem
- - - - -
dcc4f704 by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Wibbles
- - - - -
f43669f1 by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Add isCovertGadtDataCon, fixing build
- - - - -
2905262b by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Wibbles
- - - - -
7ee4b66d by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Wibbles
- - - - -
086f147a by Simon Peyton Jones at 2022-11-08T22:25:36+00:00
Move RoughMatch code out of Unify into RoughMatch
- - - - -
f7acba96 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Wibble
- - - - -
8599bd23 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Wibbles
- - - - -
3154729a by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Update haddock submodule again
- - - - -
95b95894 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Wibbles, esp in RoughMap
- - - - -
0240fb6c by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Upate haddock submodule
- - - - -
672c49a9 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Define eqType using tcEqType
A one-line change
- - - - -
657836a4 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Revert "Define eqType using tcEqType"
This reverts commit eaf04c17c6a159ddb70eedd6fb8ab0b4fc180b7a.
Performance got worse!
T18223 was 60% worse
T8095 75%
T12227 9%
T13386 6%
T15703 7%
T5030 8%
- - - - -
4467a5d8 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Refactor FunTyFlag
Mostly just renaming stuff
- - - - -
5c117494 by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Wibbles
- - - - -
9af6492d by Simon Peyton Jones at 2022-11-08T22:25:37+00:00
Wibble
- - - - -
44b6d680 by Simon Peyton Jones at 2022-11-08T22:26:23+00:00
Add FunTyFlags to FunCo
- - - - -
b5e716b7 by Simon Peyton Jones at 2022-11-08T22:26:23+00:00
More improvements
Hopefully perf improves a bit
Plus rep-poly/T13105 and rep-poly/T17536b are fixed.
- - - - -
2414db62 by Simon Peyton Jones at 2022-11-08T22:26:23+00:00
Add tests for #21530
- - - - -
980238ad by Simon Peyton Jones at 2022-11-08T22:26:23+00:00
Make the Unique in a TyCon strict
This avoids lots of evals when comparing TyCons
- - - - -
58e94ebe by Simon Peyton Jones at 2022-11-08T22:26:23+00:00
Improve efficiency in sORTKind_mabye
- - - - -
5de16523 by Simon Peyton Jones at 2022-11-08T23:48:05+00:00
Wibbles
- - - - -
12 changed files:
- compiler/GHC.hs
- compiler/GHC/Builtin/Names.hs
- compiler/GHC/Builtin/Types.hs
- compiler/GHC/Builtin/Types.hs-boot
- compiler/GHC/Builtin/Types/Literals.hs
- compiler/GHC/Builtin/Types/Prim.hs
- − compiler/GHC/Builtin/Types/Prim.hs-boot
- compiler/GHC/Builtin/Uniques.hs
- compiler/GHC/Core/Coercion.hs
- compiler/GHC/Core/Coercion.hs-boot
- compiler/GHC/Core/Coercion/Opt.hs
- compiler/GHC/Core/ConLike.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/c564cbd60c26039277d92dd4484b38acc4b672ba...5de1652319de20655690891b286fdf32915b17ca
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/c564cbd60c26039277d92dd4484b38acc4b672ba...5de1652319de20655690891b286fdf32915b17ca
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/20221108/06cc0c46/attachment-0001.html>
More information about the ghc-commits
mailing list