[Git][ghc/ghc][wip/az/unicode-hsscaled] 36 commits: Move File Target parser to library #18596
Alan Zimmerman
gitlab at gitlab.haskell.org
Sat Oct 17 12:24:05 UTC 2020
Alan Zimmerman pushed to branch wip/az/unicode-hsscaled at Glasgow Haskell Compiler / GHC
Commits:
5884fd32 by Fendor at 2020-10-09T19:46:28+02:00
Move File Target parser to library #18596
- - - - -
ea59fd4d by Hécate at 2020-10-10T14:49:59-04:00
Lint the compiler for extraneous LANGUAGE pragmas
- - - - -
22f218b7 by Krzysztof Gogolewski at 2020-10-10T14:50:42-04:00
Linear types: fix quantification in GADTs (#18790)
- - - - -
74ee1237 by Sylvain Henry at 2020-10-10T14:51:20-04:00
Bignum: fix bigNatCompareWord# bug (#18813)
- - - - -
274e21f0 by Hécate at 2020-10-11T10:55:56+02:00
Remove the dependency on the ghc-linters stage
- - - - -
990ea991 by Daniel Rogozin at 2020-10-11T22:20:04+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.
- - - - -
9bbc84d2 by Sylvain Henry at 2020-10-12T18:21:51-04:00
DynFlags: refactor DmdAnal
Make demand analysis usable without having to provide DynFlags.
- - - - -
7fdcce6d by Wander Hillen at 2020-10-13T00:12:47-04:00
Initial ShortText code and conversion of package db code
Metric Decrease:
Naperian
T10421
T10421a
T10547
T12150
T12234
T12425
T13035
T18140
T18304
T5837
T6048
T13253-spj
T18282
T18223
T3064
T9961
Metric Increase
T13701
HFSKJH
- - - - -
0a5f2918 by Sylvain Henry at 2020-10-13T00:13:28-04:00
Parser: don't require the HomeUnitId
The HomeUnitId is only used by the Cmm parser and this one has access to
the DynFlags, so it can grab the UnitId of the HomeUnit from them.
Bump haddock submodule
- - - - -
8f4f5794 by HaskellMouse at 2020-10-13T13:05:49+03:00
Unification of Nat and Naturals
This commit removes the separate kind 'Nat' and enables promotion
of type 'Natural' for using as type literal.
It partially solves #10776
Now the following code will be successfully typechecked:
data C = MkC Natural
type CC = MkC 1
Before this change we had to create the separate type for promotion
data C = MkC Natural
data CP = MkCP Nat
type CC = MkCP 1
But CP is uninhabited in terms.
For backward compatibility type synonym `Nat` has been made:
type Nat = Natural
The user's documentation and tests have been updated.
The haddock submodule also have been updated.
- - - - -
0fc1cb54 by Ben Gamari at 2020-10-14T03:42:50-04:00
gitlab-ci: Verify that Hadrian builds with Stack
As noted in #18726, this regularly breaks. Let's test it.
Note that we don't actually perform a build of GHC itself; we merely
test that the Hadrian executable builds and works (by invoking `hadrian
--version`).
- - - - -
89f4d8e9 by Ben Gamari at 2020-10-14T12:03:57-04:00
Bump LLVM version to 10.0
Fixes #18267.
- - - - -
716385c9 by Ryan Scott at 2020-10-14T12:04:34-04:00
Make DataKinds the sole arbiter of kind-level literals (and friends)
Previously, the use of kind-level literals, promoted tuples,
and promoted lists required enabling both `DataKinds` and
`PolyKinds`. This made sense back in a `TypeInType` world, but not so
much now that `TypeInType`'s role has been superseded. Nowadays,
`PolyKinds` only controls kind polymorphism, so let's make `DataKinds`
the thing that controls the other aspects of `TypeInType`, which include
literals, promoted tuples and promoted lists.
There are some other things that overzealously required `PolyKinds`,
which this patch fixes as well:
* Previously, using constraints in kinds (e.g., `data T :: () -> Type`)
required `PolyKinds`, despite the fact that this is orthogonal to kind
polymorphism. This now requires `DataKinds` instead.
* Previously, using kind annotations in kinds
(e.g., `data T :: (Type :: Type) -> Type`) required both `KindSignatures`
and `PolyKinds`. This doesn't make much sense, so it only requires
`KindSignatures` now.
Fixes #18831.
- - - - -
ac300a0d by Vladislav Zavialov at 2020-10-14T12:05:11-04:00
Remove "Operator sections" from docs/users_guide/bugs.rst
The issue described in that section was fixed by
2b89ca5b850b4097447cc4908cbb0631011ce979
- - - - -
bf2411a3 by Vladislav Zavialov at 2020-10-14T12:05:11-04:00
Fix PostfixOperators (#18151)
This fixes a regression introduced in 2b89ca5b850b4097447cc4908cbb0631011ce979
See the new T18151x test case.
- - - - -
e60ae8a3 by Fumiaki Kinoshita at 2020-10-14T18:06:12-04:00
Add -Wnoncanonical-{monad,monoid}-instances to standardWarnings
-------------------------
Metric Decrease:
T12425
Metric Increase:
T17516
-------------------------
- - - - -
15d2340c by Simon Peyton Jones at 2020-10-14T18:06:48-04:00
Fix some missed opportunities for preInlineUnconditionally
There are two signficant changes here:
* Ticket #18815 showed that we were missing some opportunities for
preInlineUnconditionally. The one-line fix is in the code for
GHC.Core.Opt.Simplify.Utils.preInlineUnconditionally, which now
switches off only for INLINE pragmas. I expanded
Note [Stable unfoldings and preInlineUnconditionally] to explain.
* When doing this I discovered a way in which preInlineUnconditionally
was occasionally /too/ eager. It's all explained in
Note [Occurrences in stable unfoldings] in GHC.Core.Opt.OccurAnal,
and the one-line change adding markAllMany to occAnalUnfolding.
I also got confused about what NoUserInline meant, so I've renamed
it to NoUserInlinePrag, and changed its pretty-printing slightly.
That led to soem error messate wibbling, and touches quite a few
files, but there is no change in functionality.
I did a nofib run. As expected, no significant changes.
Program Size Allocs
----------------------------------------
sphere -0.0% -0.4%
----------------------------------------
Min -0.0% -0.4%
Max -0.0% +0.0%
Geometric Mean -0.0% -0.0%
I'm allowing a max-residency increase for T10370, which seems
very irreproducible. (See comments on !4241.) There is always
sampling error for max-residency measurements; and in any case
the change shows up on some platforms but not others.
Metric Increase:
T10370
- - - - -
0c4bfed8 by Ben Gamari at 2020-10-14T18:07:25-04:00
users-guide: Add missing :ghc-flag: directive
- - - - -
51c4b851 by Krzysztof Gogolewski at 2020-10-15T04:30:27-04:00
Remove Proxy# argument in Data.Typeable.Internal
No longer neccessary - TypeRep is now indexed, there is no ambiguity.
Also fix a comment in Evidence.hs, IsLabel no longer takes a Proxy#.
- - - - -
809f09e8 by Sylvain Henry at 2020-10-15T04:31:07-04:00
Fix parsing of PIE flags
-fPIE and -fno-PIE flags were (un)setting Opt_PIC instead of Opt_PIE.
Original commit: 3625728a0e3a9b56c2b85ae7ea8bcabdd83ece6a
- - - - -
3d7db148 by Ben Gamari at 2020-10-15T04:31:42-04:00
testsuite: Add missing #include on <stdlib.h>
This otherwise fails on newer Clangs, which warn
more aggressively on undeclared symbols.
- - - - -
998803dc by Andrzej Rybczak at 2020-10-15T11:40:32+02:00
Add flags for annotating Generic{,1} methods INLINE[1] (#11068)
Makes it possible for GHC to optimize away intermediate Generic representation
for more types.
Metric Increase:
T12227
- - - - -
6b14c418 by GHC GitLab CI at 2020-10-15T21:57:50-04:00
Extend mAX_TUPLE_SIZE to 64
As well a ctuples and sums.
- - - - -
d495f36a by Ben Gamari at 2020-10-15T21:58:27-04:00
rts: Clean-up whitespace in Interpreter
- - - - -
cf10becd by Ben Gamari at 2020-10-15T21:58:27-04:00
compiler/ByteCode: Use strict Maps in bytecode assembler
- - - - -
ae146b53 by Ben Gamari at 2020-10-15T21:58:27-04:00
compiler/ByteCode: Make LocalLabel a newtype
- - - - -
cc536288 by Ben Gamari at 2020-10-15T21:58:27-04:00
compiler/ByteCode: Allow 2^32 local labels
This widens LocalLabel to 2^16, avoiding the crash observed in #14334.
Closes #14334.
- - - - -
1bb0512f by Ben Gamari at 2020-10-16T00:15:31-04:00
mingw: Extract zst toolchain archives
This should have been done when the toolchain was bumped.
- - - - -
bf7c5b6d by Ben Gamari at 2020-10-16T00:15:31-04:00
base: Reintroduce necessary LANGUAGE pragmas
These were incorrectly removed in a recent cleanup commit.
- - - - -
c6b4be4b by Ben Gamari at 2020-10-16T00:15:31-04:00
testsuite: Sort metrics by metric type
Closes #18838.
- - - - -
c7989c93 by Ben Gamari at 2020-10-16T00:15:31-04:00
testsuite: Account for -Wnoncanonical-monoid-instances changes on Windows
- - - - -
330a5433 by Ben Gamari at 2020-10-16T00:15:31-04:00
rts: Add __mingw_vfprintf to RtsSymbols.c
Following the model of the other printf symbols. See Note [Symbols for
MinGW's printf].
- - - - -
c4a69f37 by Ben Gamari at 2020-10-16T00:15:31-04:00
gitlab-ci: Remove allow_failure from Windows jobs
- - - - -
9a9679db by Ben Gamari at 2020-10-16T00:15:31-04:00
gitlab-ci: Fix Hadrian bindist names
- - - - -
07b0db86 by f-a at 2020-10-16T10:14:39-04:00
Clarify Eq documentation #18713
- - - - -
7809741c by Alan Zimmerman at 2020-10-17T13:21:08+01:00
API Annotations: Keep track of unicode for linear arrow notation
The linear arrow can be parsed as `%1 ->` or a direct single token unicode
equivalent.
Make sure that this distinction is captured in the parsed AST by using
IsUnicodeSyntax where it appears, and introduce a new API Annotation,
AnnMult to represent its location when unicode is not used.
Updated haddock submodule
- - - - -
30 changed files:
- .gitlab-ci.yml
- .gitlab/ci.sh
- + compiler/.hlint.yaml
- 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/ByteCode/Asm.hs
- compiler/GHC/ByteCode/InfoTable.hs
- compiler/GHC/ByteCode/Instr.hs
- compiler/GHC/ByteCode/Linker.hs
- compiler/GHC/ByteCode/Types.hs
- compiler/GHC/Cmm/CLabel.hs
- compiler/GHC/Cmm/Dataflow/Collections.hs
- compiler/GHC/Cmm/Dataflow/Label.hs
- compiler/GHC/Cmm/Lexer.x
- compiler/GHC/Cmm/Node.hs
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/Cmm/Monad.hs → compiler/GHC/Cmm/Parser/Monad.hs
- compiler/GHC/Cmm/Pipeline.hs
- compiler/GHC/CmmToAsm/BlockLayout.hs
- compiler/GHC/CmmToAsm/CFG.hs
- compiler/GHC/CmmToAsm/Reg/Graph/SpillCost.hs
- compiler/GHC/CmmToAsm/Reg/Linear/PPC.hs
- compiler/GHC/CmmToAsm/Reg/Linear/SPARC.hs
- compiler/GHC/CmmToC.hs
- compiler/GHC/Core/Coercion.hs
- compiler/GHC/Core/Coercion/Axiom.hs
- compiler/GHC/Core/FamInstEnv.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/88e6f7d6de778bfb68ddb8b7c20338dbae926275...7809741cc862325859eda18fc8aba4d82e8cad73
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/88e6f7d6de778bfb68ddb8b7c20338dbae926275...7809741cc862325859eda18fc8aba4d82e8cad73
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/20201017/6a08b992/attachment-0001.html>
More information about the ghc-commits
mailing list