summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* API Annotations: Fix annotation for strictnesswip/az/ghc-9.0-anns-2Alan Zimmerman2020-09-201-6/+11
| | | | | | | This adds the correct location for a ! or ~. It is a reconstruction of 3ccc80ee6120db7ead579c6e9fc5c2164f3bf575, some of which got mangled in the backport process.
* ApiAnnotations: Fix parser for new GHC 9.0 featuresAlan Zimmerman2020-09-181-4/+5
| | | | (cherry picked from commit 0f4d29cac3826392ceb26ea219fce6e8a7505107)
* Api Annotations : Adjust SrcSpans for prefix bang (!).Alan Zimmerman2020-09-183-4/+6
| | | | | | | And prefix ~ (cherry picked from commit 8dbee2c578b1f642d45561be3f416119863e01eb) (cherry picked from commit 701463ec9998c679b03dcc848912a7ce9da9a66a)
* Stop removing definitions of record fields in GHC.Iface.Ext.AstZubin Duggal2020-09-181-16/+10
|
* rts: Drop field initializer on thread_basic_info_data_tBen Gamari2020-09-181-1/+1
| | | | | | | This struct has a number of fields and we only care that the value is initialized with zeros. This eliminates the warnings noted in #17905. (cherry picked from commit 09b91e8b95eb16fe72aef8405896fd6caf789f61)
* gitlab-ci: Use hadrian builds for Windows release artifactsBen Gamari2020-09-171-5/+9
| | | | (cherry picked from commit d4bc9f0de7992f60bce403731019829f6248cc2c)
* rts/nonmoving: Add missing STM write barrierBen Gamari2020-09-171-0/+3
| | | | | | | | When updating a TRec for a TVar already part of a transaction we previously neglected to add the old value to the update remembered set. I suspect this was the cause of #18587. (cherry picked from commit a64e94f98ca18e53ecc13f736d50b9cb2d156b05)
* Added explicit fixity to (~).HaskellMouse2020-09-177-0/+36
| | | | | | Solves #18252 (cherry picked from commit 3c94c81629ac9159775b8b70baf2c635f0331708)
* rts: Fix erroneous usage of vsnprintfBen Gamari2020-09-171-1/+1
| | | | | | | | | As pointed out in #18685, this should be snprintf not vsnprintf. This appears to be due to a cut-and-paste error. Fixes #18658. (cherry picked from commit 35ea92708e17c90e476167163ae24747a3f5508e)
* Make sure we can read past perf notesKrzysztof Gogolewski2020-09-171-1/+9
| | | | | | See #18656. (cherry picked from commit b8a9cff2ce651c085c84980d3e709db2ecda8c3f)
* Don't quote argument to Hadrian's test-env flag (#18656)Ryan Scott2020-09-171-1/+1
| | | | | | | | | Doing so causes the name of the test environment to gain an extra set of double quotes, which changes the name entirely. Fixes #18656. (cherry picked from commit bc487caf830ce6cd2c03845b29416c6706185fbc)
* Postpone associated tyfam default checks until after typecheckingRyan Scott2020-09-1717-108/+198
| | | | | | | | | | | | | | Previously, associated type family defaults were validity-checked during typechecking. Unfortunately, the error messages that these checks produce run the risk of printing knot-tied type constructors, which will cause GHC to diverge. In order to preserve the current error message's descriptiveness, this patch postpones these validity checks until after typechecking, which are now located in the new function `GHC.Tc.Validity.checkValidAssocTyFamDeflt`. Fixes #18648. (cherry picked from commit 5e883375409efc2336da6295c7d81bd10b542210)
* rts: Add stg_copyArray_barrier to RtsSymbols listBen Gamari2020-09-171-0/+1
| | | | | | It's incredible that this wasn't noticed until now. (cherry picked from commit c2fefaf37ae134aefc4136bae7e5976f991d76f4)
* gitlab-ci: Fix typoBen Gamari2020-09-171-1/+1
| | | | | | A small typo in a rule regular expression. (cherry picked from commit c4fd8947f4104e7b6d6bf3d320a63a361191bde1)
* testsuite: Mark T5975[ab] as broken on WindowsBen Gamari2020-09-171-2/+5
| | | | | | Due to #7305. (cherry picked from commit 5b12bb7c98529374ff8e932d0c36104d1a0fe509)
* testsuite: Drop Windows-specific output for parseTreeBen Gamari2020-09-171-160/+0
| | | | | | The normalise_slashes normaliser should handle this. (cherry picked from commit 4597752ad3c031e17fe3cceb20c61e4d5b58c52f)
* gitlab-ci: Drop Windows make jobBen Gamari2020-09-171-7/+4
| | | | | | | | These are a significant burden on our CI resources and end up failing quite often due to #18274. Here I drop the make jobs during validaion; it is now run only during the nightly builds. (cherry picked from commit 72036e1c03385aa4f5ed70179ab4b154beed81cb)
* gitlab-ci: Bump Windows toolchain versionBen Gamari2020-09-171-1/+1
| | | | | | | This should have been done when we bumped the bootstrap compiler to 8.8.4. (cherry picked from commit 566ac68de70e5b580c96e8ab8b3b02ad0f1acd42)
* configure: Fix whitespaceBen Gamari2020-09-171-68/+68
| | | | (cherry picked from commit 1213fd87564ab092aa914d8633df4de07fe04905)
* Limit upper version of Happy for ghc-9.0 and earlier (#18620)Takenobu Tani2020-09-172-1/+3
| | | | | | | | | | | This patch adds the upper bound of a happy version for ghc-9.0 and earlier. Currently, we can't use happy-1.20.0 for ghc-9.0. See #18620. (cherry picked from commit 84ec8daa016d07ae42f0f0f48575dd7d907d5f9d)
* Move pprTyTcApp' inside pprTyTcAppKrzysztof Gogolewski2020-09-171-44/+39
| | | | | | No semantic change (cherry picked from commit d8f61182c3bdd1b6121c83be632b4941b907de88)
* Do not print synonyms in :i (->), :i Type (#18594)Krzysztof Gogolewski2020-09-1711-8/+60
| | | | | | | This adds a new printing flag `sdocPrintTypeAbbreviations` that is used specifically to avoid ghci printing 'type (->) = (->)' and 'type Type = Type'. (cherry picked from commit 8b86509270227dbc61f0700c7d9261a4c7672361)
* llvm-targets: Add i686 targetsBen Gamari2020-09-172-0/+6
| | | | | | Addresses #18422. (cherry picked from commit 12dadd04a09c23c91d7da6f5b17ef78688d93fe7)
* testsuite: Drop --io-manager flag from testsuite configurationBen Gamari2020-09-171-1/+1
| | | | | | | This is no longer necessary as there are now dedicated testsuite ways which run tests with WinIO. (cherry picked from commit 77b1ebf6dd34df8068a07865d92301ff298cf5ca)
* testsuite: Add test for #18118Ben Gamari2020-09-173-0/+11
| | | | (cherry picked from commit 2cdb72a569f6049a390626bca0dd6e362045ed65)
* typecheck: Drop SPECIALISE pragmas when there is no unfoldingBen Gamari2020-09-171-3/+7
| | | | | | | | | | Previously the desugarer would instead fall over when it realized that there was no unfolding for an imported function with a SPECIALISE pragma. We now rather drop the SPECIALISE pragma and throw a warning. Fixes #18118. (cherry picked from commit 708e374a8bf108999c11b6cf59c7d27677ed24a8)
* Clean up the inferred type variable restrictionRyan Scott2020-09-1714-128/+232
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch primarily: * Documents `checkInferredVars` (previously called `check_inferred_vars`) more carefully. This is the function which throws an error message if a user quantifies an inferred type variable in a place where specificity cannot be observed. See `Note [Unobservably inferred type variables]` in `GHC.Rename.HsType`. Note that I now invoke `checkInferredVars` _alongside_ `rnHsSigType`, `rnHsWcSigType`, etc. rather than doing so _inside_ of these functions. This results in slightly more call sites for `checkInferredVars`, but it makes it much easier to enumerate the spots where the inferred type variable restriction comes into effect. * Removes the inferred type variable restriction for default method type signatures, per the discussion in #18432. As a result, this patch fixes #18432. Along the way, I performed some various cleanup: * I moved `no_nested_foralls_contexts_err` into `GHC.Rename.Utils` (under the new name `noNestedForallsContextsErr`), since it now needs to be invoked from multiple modules. I also added a helper function `addNoNestedForallsContextsErr` that throws the error message after producing it, as this is a common idiom. * In order to ensure that users cannot sneak inferred type variables into `SPECIALISE instance` pragmas by way of nested `forall`s, I now invoke `addNoNestedForallsContextsErr` when renaming `SPECIALISE instance` pragmas, much like when we rename normal instance declarations. (This probably should have originally been done as a part of the fix for #18240, but this task was somehow overlooked.) As a result, this patch fixes #18455 as a side effect. (cherry picked from commit 502605f7ae9907a6b0b9823e8f055ae390c57b1d)
* Don't mark closed type family equations as occurrencesRyan Scott2020-09-1711-71/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, `rnFamInstEqn` would mark the name of the type/data family used in an equation as an occurrence, regardless of what sort of family it is. Most of the time, this is the correct thing to do. The exception is closed type families, whose equations constitute its definition and therefore should not be marked as occurrences. Overzealously counting the equations of a closed type family as occurrences can cause certain warnings to not be emitted, as observed in #18470. See `Note [Type family equations and occurrences]` in `GHC.Rename.Module` for the full story. This fixes #18470 with a little bit of extra-casing in `rnFamInstEqn`. To accomplish this, I added an extra `ClosedTyFamInfo` field to the `NonAssocTyFamEqn` constructor of `AssocTyFamInfo` and refactored the relevant call sites accordingly so that this information is propagated to `rnFamInstEqn`. While I was in town, I moved `wrongTyFamName`, which checks that the name of a closed type family matches the name in an equation for that family, from the renamer to the typechecker to avoid the need for an `ASSERT`. As an added bonus, this lets us simplify the details of `ClosedTyFamInfo` a bit. (cherry picked from commit 4f83e9ad76b1e7c67a440ea89f22f6fc03921b5d)
* Bump Win32 submodule to 2.9.0.0Ben Gamari2020-09-175-8/+21
| | | | | | Also bumps Cabal, directory (cherry picked from commit 9c6c1ebc9ab2f18d711a8793c7f0ec36e989d687)
* Export enrichHie from GHC.Iface.Ext.AstZubin Duggal2020-09-161-1/+1
| | | | | | This is useful for `ghcide` Backport of !4037
* gitlab-ci: Rename RELEASE variable to RELEASE_JOBBen Gamari2020-09-081-1/+1
| | | | | | | This interfered with the autoconf variable of the same name, breaking pre-release builds. (cherry picked from commit 15dca84793d5ec4ff922726477923e40caa075eb)
* gitlab-ci: Handle distributions without localesBen Gamari2020-09-071-0/+6
| | | | | | | | | Previously we would assume that the `locale` utility exists. However, this is not so on Alpine as musl's locale support is essentially non-existent. (cherry picked from commit 17cdb7ac3b557a245fee1686e066f9f770ddc21e) (cherry picked from commit c10ff55fddf8c6708d679e91f3253dc642b91565)
* gitlab-ci: Accept Centos 7 C.utf8 localeBen Gamari2020-09-071-0/+3
| | | | | | | Centos apparently has C.utf8 rather than C.UTF-8. (cherry picked from commit d9f85dd25a26a04d3485470afb3395ee2dec6464) (cherry picked from commit 9374737005c9fa36a870111f100fe27f9a0efd8e)
* Bignum: add missing compat import/export functionsSylvain Henry2020-09-071-3/+30
|
* Remove outdated noteSylvain Henry2020-09-071-29/+0
|
* testsuite: Only run llvm ways if llc is availableBen Gamari2020-09-074-19/+14
| | | | | | | | | | | As noted in #18560, we previously would always run the LLVM ways since `configure` would set `SettingsLlcCommand` to something non-null when it otherwise couldn't find the `llc` executable. Now we rather probe for the existence of the `llc` executable in the testsuite driver. Fixes #18560. (cherry picked from commit aa4b744d51aa6bdb46064f981ea8e001627921d6)
* gitlab-ci: Use hadrian builds for Window release artifactsBen Gamari2020-09-071-3/+3
|
* gitlab-ci: Configure bignum backend in Hadrian buildsBen Gamari2020-09-071-0/+2
|
* gitlab-ci: More intelligent detection of locale availabilityBen Gamari2020-09-061-3/+26
| | | | | | | | | | Previously ci.sh would unconditionally use C.UTF-8. However, this fails on Centos 7, which appears not to provide this locale. Now we first try C.UTF-8, then try en_US.UTF-8, then fail. Works around #18607. (cherry picked from commit be2cc0ad2109894d2f576c73e3f037b6b79a6bdc)
* configure: Avoid hard-coded ld path on WindowsGHC GitLab CI2020-09-037-24/+45
| | | | | | | | | The fix to #17962 ended up regressing on Windows as it failed to replicate the logic responsible for overriding the toolchain paths on Windows. This resulted in a hard-coded path to a directory that likely doesn't exist on the user's system (#18550). (cherry picked from commit 34e0fa963f35a77093fc7111a80c557fc6bd614f)
* users-guide: A few release notes fixesBen Gamari2020-09-021-7/+7
|
* Bignum: add BigNat compat functions (#18613)Sylvain Henry2020-09-011-0/+54
| | | | (cherry-picked from a8a2568b7b64e5b9fca5b12df7da759de4db39ae)
* Fix documentation and fix "check" bignum backend (#18604)Sylvain Henry2020-09-015-19/+19
| | | | (cherry-picked from 0a3723876c6c79a0a407d50f4baa2818a13f232e)
* Bignum: fix BigNat subtraction (#18604)Sylvain Henry2020-08-317-19/+31
| | | | | | There was a confusion between the boolean expected by withNewWordArrayTrimedMaybe and the boolean returned by subtracting functions.
* Import qualified Prelude in Cmm/Parser.yVladislav Zavialov2020-08-292-1/+2
| | | | | | | | | | In preparation for the next version of 'happy', c95920 added a qualified import to GHC/Parser.y but for some reason neglected GHC/Cmm/Parser.y This patch adds the missing qualified import to GHC/Cmm/Parser.y and also adds a clarifying comment to explain why this import is needed. (cherry picked from commit fddddbf47d6ba2b1b3b6ec89bd40c8fa020e6606)
* Fix types in silly shifts (#18589)Krzysztof Gogolewski2020-08-243-9/+26
| | | | | | Patch written by Simon. I have only added a testcase. (cherry picked from commit 364258e0ad25bc95e69745554f5ca831ce80baf8)
* Accept spurious performance shiftBen Gamari2020-08-210-0/+0
| | | | | Metric Decrease: T13035
* Bump Cabal submoduleBen Gamari2020-08-175-21/+8
|
* Bump binary submoduleBen Gamari2020-08-171-0/+0
|
* Bump bytestring submoduleBen Gamari2020-08-171-0/+0
|