summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Accumulate Haddock comments in P (#17544, #17561, #8944)wip/haddock-accumVladislav Zavialov2020-07-2041-626/+3655
| | | | | | | | | | | | | | | | | | Haddock comments are, first and foremost, comments. It's very annoying to incorporate them into the grammar. We can take advantage of an important property: adding a Haddock comment does not change the parse tree in any way other than wrapping some nodes in HsDocTy and the like (and if it does, that's a bug). This patch implements the following: * Accumulate Haddock comments with their locations in the P monad. This is handled in the lexer. * After parsing, do a pass over the AST to associate Haddock comments with AST nodes using location info. * Report the leftover comments to the user as a warning (-Winvalid-haddock).
* testsuite: Mark ghci tests as fragile under unreg compilerBen Gamari2020-07-181-2/+2
| | | | | In particular I have seen T16012 fail repeatedly under the unregisterised compiler.
* GHCi: Fix isLittleEndianStefan Schulze Frielinghaus2020-07-181-2/+2
|
* Fix minor typos in a Core.hs noteChaitanya Koparkar2020-07-182-9/+7
|
* Refactor the simplification of join bindersSimon Peyton Jones2020-07-184-120/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | This MR (for #18449) refactors the Simplifier's treatment of join-point binders. Specifically, it puts together, into GHC.Core.Opt.Simplify.Env.adjustJoinPointType two currently-separate ways in which we adjust the type of a join point. As the comment says: -- (adjustJoinPointType mult new_res_ty join_id) does two things: -- -- 1. Set the return type of the join_id to new_res_ty -- See Note [Return type for join points] -- -- 2. Adjust the multiplicity of arrows in join_id's type, as -- directed by 'mult'. See Note [Scaling join point arguments] I think this actually fixes a latent bug, by ensuring that the seIdSubst and seInScope have the right multiplicity on the type of join points. I did some tidying up while I was at it. No more setJoinResTy, or modifyJoinResTy: instead it's done locally in Simplify.Env.adjustJoinPointType
* Remove {-# CORE #-} pragma (part of #18048)Krzysztof Gogolewski2020-07-1812-34/+3
| | | | | | | This pragma has no effect since 2011. It was introduced for External Core, which no longer exists. Updates haddock submodule.
* Improve typechecking of NPlusK patternsSimon Peyton Jones2020-07-186-52/+43
| | | | | | | | | | This patch (due to Richard Eisenberg) improves documentation of the wrapper returned by tcSubMult (see Note [Wrapper returned from tcSubMult] in GHC.Tc.Utils.Unify). And, more substantially, it cleans up the multiplicity handling in the typechecking of NPlusKPat
* Allow multiple case branches to have a higher rank typeSimon Peyton Jones2020-07-1821-610/+638
| | | | | | | | | | | | | | | | | | | | | | | As #18412 points out, it should be OK for multiple case alternatives to have a higher rank type, provided they are all the same. This patch implements that change. It sweeps away GHC.Tc.Gen.Match.tauifyMultipleBranches, and friends, replacing it with an enhanced version of fillInferResult. The basic change to fillInferResult is to permit the case in which another case alternative has already filled in the result; and in that case simply unify. It's very simple actually. See the new Note [fillInferResult] in TcMType Other refactoring: - Move all the InferResult code to one place, in GHC.Tc.Utils.TcMType (previously some of it was in Unify) - Move tcInstType and friends from TcMType to Instantiate, where it more properly belongs. (TCMType was getting very long.)
* Add a Lint hadrian rule and an .hlint.yaml file in base/Hécate2020-07-186-5/+76
|
* Implement `fullCompilerVersion`Hécate2020-07-187-13/+44
| | | | | | | | Follow-up of https://gitlab.haskell.org/ghc/ghc/-/issues/18403 This MR adds `fullCompilerVersion`, a function that shares the same backend as the `--numeric-version` GHC flag, exposing a full, three-digit version datatype.
* rts: Add --copying-gc flag to reverse effect of --nonmoving-gcBen Gamari2020-07-182-0/+20
| | | | Fixes #18281.
* Merge remote-tracking branch 'origin/wip/winio'Ben Gamari2020-07-16156-1192/+7450
|\
| * testsuite: Add winio and winio_threaded wayswip/winioBen Gamari2020-07-1511-24/+13
| | | | | | | | Reverts many of the testsuite changes
| * winio: update lockfile signature and remove mistaken symbol in rts.Tamar Christina2020-07-155-9/+4
| |
| * winio: clarify comment on cooked mode.Tamar Christina2020-07-151-1/+2
| |
| * winio: clarify wording on conditional variables.Tamar Christina2020-07-151-1/+2
| |
| * winio: Accept accepted stderr for linker_unload_multiple_objsAndreas Klebinger2020-07-151-0/+2
| |
| * winio: Accept accepted stderr for linker_unloadAndreas Klebinger2020-07-151-0/+2
| |
| * winio: Accept accepted stderr for T3807Andreas Klebinger2020-07-151-0/+4
| |
| * winio: fix tempfiles test on linuxAndreas Klebinger2020-07-151-1/+1
| |
| * winio: fix T5435_dyn_gcc by accepting expected stderrAndreas Klebinger2020-07-151-0/+2
| |
| * winio: fix safePkg01 by accepting expected stderrAndreas Klebinger2020-07-151-0/+2
| |
| * winio: fix cabal01 by accepting expected stderrAndreas Klebinger2020-07-151-0/+2
| |
| * winio: fix cabal04 by filtering rts argsAndreas Klebinger2020-07-151-1/+1
| |
| * winio: Also accept T7037 stderrAndreas Klebinger2020-07-151-0/+2
| |
| * winio: Adjust T5435_dyn_asm stderrAndreas Klebinger2020-07-151-0/+2
| | | | | | | | | | The warning about rtsopts having no consequences is expected. So accept new stderr.
| * winio: Adjust T15261b stdout for --io-manager flag.Andreas Klebinger2020-07-151-1/+1
| |
| * winio: Fix stderr output for ghci/linking/dyn tests.Andreas Klebinger2020-07-153-1/+7
| | | | | | | | | | We used to filter rtsopts, i opted to instead just accept the warning of it having no effect. This works both for -rtsopts, as well as -with-rtsopts which winio adds.
| * winio: Fix cabal006 after upgrading cabal submoduleAndreas Klebinger2020-07-154-4/+4
| | | | | | | | Demand cabal 2.0 syntax instead of >= 1.20 as required by newer cabal versions.
| * winio: Accept T9681 output.Andreas Klebinger2020-07-151-2/+2
| | | | | | | | GHC now reports String instead of [Char].
| * winio: Fix openFile009 merge conflict leftoverAndreas Klebinger2020-07-151-4/+0
| |
| * winio: Fix ThreadDelay001 CPPAndreas Klebinger2020-07-151-1/+1
| |
| * winio: fix initial linux validate buildAndreas Klebinger2020-07-152-2/+4
| |
| * winio: Remove obsolete comment about cond. variablesAndreas Klebinger2020-07-151-5/+0
| |
| * winio: flushCharReadBuffer shouldn't need to adjust offsets.Andreas Klebinger2020-07-151-5/+8
| |
| * winio: Update note, remove debugging pragma.Andreas Klebinger2020-07-151-9/+12
| |
| * winio: Remove historical todosAndreas Klebinger2020-07-151-3/+0
| |
| * winio: Expand BlockedOnIOCompletion description.Andreas Klebinger2020-07-151-1/+3
| |
| * winio: Name Haskell/OS I/O Manager explicitly in NoteAndreas Klebinger2020-07-151-4/+4
| |
| * winio: Add a note cross referenceAndreas Klebinger2020-07-151-0/+3
| |
| * winio: Update IOPort haddocks.Andreas Klebinger2020-07-151-8/+16
| |
| * winio: add comment stating failure behaviour for getUniqueFileInfo.Andreas Klebinger2020-07-151-0/+4
| |
| * winio: Rename SmartHandles to StdHandlesAndreas Klebinger2020-07-157-9/+9
| |
| * winio: Remove redundant buffer write in Handle/Text.hs:bufReadEmptyAndreas Klebinger2020-07-151-2/+1
| |
| * winio: Remove commented out pragmaAndreas Klebinger2020-07-151-1/+0
| |
| * winio: Note why we don't use blocking waits.Andreas Klebinger2020-07-151-0/+32
| |
| * winio: Make it explicit that we only create one IO managerAndreas Klebinger2020-07-151-26/+28
| |
| * winio: Remove redundant -Wno-missing-signatures pragmasAndreas Klebinger2020-07-156-6/+0
| |
| * winio: Fix potential spaceleak in __createUUIDTempFileErrNoAndreas Klebinger2020-07-151-0/+4
| |
| * winio: Expand GHC.Conc.POSIX descriptionAndreas Klebinger2020-07-151-1/+7
| | | | | | | | | | It now explains users may not use these functions when using the old IO manager.