summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Clarify Eq documentation #18713f-a2020-10-161-9/+4
|
* gitlab-ci: Fix Hadrian bindist namesBen Gamari2020-10-162-7/+14
|
* gitlab-ci: Remove allow_failure from Windows jobsBen Gamari2020-10-161-6/+0
|
* rts: Add __mingw_vfprintf to RtsSymbols.cBen Gamari2020-10-161-1/+3
| | | | | Following the model of the other printf symbols. See Note [Symbols for MinGW's printf].
* testsuite: Account for -Wnoncanonical-monoid-instances changes on WindowsBen Gamari2020-10-163-9/+0
|
* testsuite: Sort metrics by metric typeBen Gamari2020-10-161-1/+15
| | | | Closes #18838.
* base: Reintroduce necessary LANGUAGE pragmasBen Gamari2020-10-161-0/+2
| | | | These were incorrectly removed in a recent cleanup commit.
* mingw: Extract zst toolchain archivesBen Gamari2020-10-162-3/+4
| | | | This should have been done when the toolchain was bumped.
* compiler/ByteCode: Allow 2^32 local labelsBen Gamari2020-10-153-4/+7
| | | | | | This widens LocalLabel to 2^16, avoiding the crash observed in #14334. Closes #14334.
* compiler/ByteCode: Make LocalLabel a newtypeBen Gamari2020-10-153-12/+17
|
* compiler/ByteCode: Use strict Maps in bytecode assemblerBen Gamari2020-10-151-2/+2
|
* rts: Clean-up whitespace in InterpreterBen Gamari2020-10-151-10/+10
|
* Extend mAX_TUPLE_SIZE to 64GHC GitLab CI2020-10-1510-107/+58
| | | | As well a ctuples and sums.
* Add flags for annotating Generic{,1} methods INLINE[1] (#11068)Andrzej Rybczak2020-10-1515-21/+1114
| | | | | | | | Makes it possible for GHC to optimize away intermediate Generic representation for more types. Metric Increase: T12227
* testsuite: Add missing #include on <stdlib.h>Ben Gamari2020-10-151-0/+1
| | | | This otherwise fails on newer Clangs, which warn more aggressively on undeclared symbols.
* Fix parsing of PIE flagsSylvain Henry2020-10-151-2/+2
| | | | | | -fPIE and -fno-PIE flags were (un)setting Opt_PIC instead of Opt_PIE. Original commit: 3625728a0e3a9b56c2b85ae7ea8bcabdd83ece6a
* Remove Proxy# argument in Data.Typeable.InternalKrzysztof Gogolewski2020-10-155-13/+11
| | | | | | No longer neccessary - TypeRep is now indexed, there is no ambiguity. Also fix a comment in Evidence.hs, IsLabel no longer takes a Proxy#.
* users-guide: Add missing :ghc-flag: directiveBen Gamari2020-10-141-2/+2
|
* Fix some missed opportunities for preInlineUnconditionallySimon Peyton Jones2020-10-1433-443/+436
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add -Wnoncanonical-{monad,monoid}-instances to standardWarningsFumiaki Kinoshita2020-10-1432-100/+77
| | | | | | | | | ------------------------- Metric Decrease: T12425 Metric Increase: T17516 -------------------------
* Fix PostfixOperators (#18151)Vladislav Zavialov2020-10-144-1/+33
| | | | | This fixes a regression introduced in 2b89ca5b850b4097447cc4908cbb0631011ce979 See the new T18151x test case.
* Remove "Operator sections" from docs/users_guide/bugs.rstVladislav Zavialov2020-10-141-25/+0
| | | | | The issue described in that section was fixed by 2b89ca5b850b4097447cc4908cbb0631011ce979
* Make DataKinds the sole arbiter of kind-level literals (and friends)Ryan Scott2020-10-146-36/+54
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Bump LLVM version to 10.0Ben Gamari2020-10-142-1/+4
| | | | Fixes #18267.
* gitlab-ci: Verify that Hadrian builds with StackBen Gamari2020-10-143-3/+20
| | | | | | | | 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`).
* Unification of Nat and NaturalsHaskellMouse2020-10-1329-78/+129
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Parser: don't require the HomeUnitIdSylvain Henry2020-10-137-97/+114
| | | | | | | 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
* Initial ShortText code and conversion of package db codeWander Hillen2020-10-1313-95/+255
| | | | | | | | | | | | | | | | | | | | | | | | | Metric Decrease: Naperian T10421 T10421a T10547 T12150 T12234 T12425 T13035 T18140 T18304 T5837 T6048 T13253-spj T18282 T18223 T3064 T9961 Metric Increase T13701 HFSKJH
* DynFlags: refactor DmdAnalSylvain Henry2020-10-122-52/+57
| | | | Make demand analysis usable without having to provide DynFlags.
* Fall back to types when looking up data constructors (#18740)wip/ghc-18740-lookup-updateDaniel Rogozin2020-10-1119-21/+190
| | | | | | | | | | | | | | | | | | | | 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.
* Remove the dependency on the ghc-linters stageHécate2020-10-111-2/+2
|
* Bignum: fix bigNatCompareWord# bug (#18813)Sylvain Henry2020-10-104-1/+28
|
* Linear types: fix quantification in GADTs (#18790)Krzysztof Gogolewski2020-10-103-9/+30
|
* Lint the compiler for extraneous LANGUAGE pragmasHécate2020-10-10145-782/+781
|
* Move File Target parser to library #18596Fendor2020-10-092-72/+88
|
* Cache HomeUnit in HscEnv (#17957)Sylvain Henry2020-10-0929-186/+191
| | | | | Instead of recreating the HomeUnit from the DynFlags every time we need it, we store it in the HscEnv.
* Testsuite: increase timeout for T18223 (#18795)Sylvain Henry2020-10-091-0/+2
|
* Add -pgmlm and -optlm flagsKrzysztof Gogolewski2020-10-091-0/+4
| | | | | !3798 added documentation and semantics for the flags, but not parsing.
* Add TyCon Set/Env and use them in a few places.Andreas Klebinger2020-10-0917-109/+357
| | | | | | | | | | | 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.
* Bump win32-tarballs version to 0.3Ben Gamari2020-10-092-2/+2
| | | | This should fix #18774.
* Fix desugaring of record updates on data familiesSimon Peyton Jones2020-10-098-36/+156
| | | | | | | | | | | | 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.
* winio: fixed more data error.Tamar Christina2020-10-091-1/+1
|
* winio: fixed bytestring reading interface.Tamar Christina2020-10-094-3/+43
|
* winio: fix array splatTamar Christina2020-10-091-3/+7
|
* winio: fixed timeouts non-threaded.Tamar Christina2020-10-091-13/+9
|
* sdist: Include hadrian sources in source distributionBen Gamari2020-10-091-1/+3
| | | | | | | Previously the make build system's source distribution rules neglected to include Hadrian's sources. Fixes #18794.
* Linear types: fix roles in GADTs (#18799)Krzysztof Gogolewski2020-10-094-2/+21
|
* ApiAnnotations : preserve parens in GADTsAlan Zimmerman2020-10-095-53/+65
| | | | | | | | | 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.
* Bignum: match on small Integer/NaturalSylvain Henry2020-10-094-3/+26
| | | | | | | | | 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).
* Hadrian: add quick-debug flavourSylvain Henry2020-10-093-4/+34
|