summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* testsuite: Make closureSize less sensitive to optimisationwip/robustify-closuresizeBen Gamari2019-04-041-2/+8
|
* gitlab: Fix label names in issue templatesBen Gamari2019-04-032-4/+4
|
* gitlab-ci: Build hyperlinked sources for releasesBen Gamari2019-04-031-0/+5
| | | | Fixes #16445.
* Fix Uncovered set of literal patternsSebastian Graf2019-04-035-5/+61
| | | | | | | | | | | | | | | | Issues #16289 and #15713 are proof that the pattern match checker did an unsound job of estimating the value set abstraction corresponding to the uncovered set. The reason is that the fix from #11303 introducing `NLit` was incomplete: The `LitCon` case desugared to `Var` rather than `LitVar`, which would have done the necessary case splitting analogous to the `ConVar` case. This patch rectifies that by introducing the fresh unification variable in `LitCon` in value abstraction position rather than pattern postition, recording a constraint equating it to the constructor expression rather than the literal. Fixes #16289 and #15713.
* configure: Always use AC_LINK_ELSEIF when testing against assemblerBen Gamari2019-04-031-5/+33
| | | | | | | | | | This fixes #16440, where the build system incorrectly concluded that the `.subsections_via_symbols` assembler directive was supported on a Linux system. This was caused by the fact that gcc was invoked with `-flto`; when so-configured gcc does not call the assembler but rather simply serialises its AST for compilation during the final link. This is described in Note [autoconf assembler checks and -flto].
* Inline the definition of 'ap' in the Monad lawsChris Martin2019-04-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The law as it is currently written is meaningless, because nowhere have we defined the implementation of 'ap'. The reader of the Control.Monad documentation is provided with only a type signature, > ap :: Monad m => m (a -> b) -> m a -> m b an informal description, > In many situations, the liftM operations can be replaced by uses of > ap, which promotes function application. and a relationship between 'ap' and the 'liftM' functions > return f `ap` x1 `ap` ... `ap` xn > is equivalent to > liftMn f x1 x2 ... xn Without knowing how 'ap' is defined, a law involving 'ap' cannot provide any guidance for how to write a lawful Monad instance, nor can we conclude anything from the law. I suspect that a reader equipped with the understanding that 'ap' was defined prior to the invention of the Applicative class could deduce that 'ap' must be defined in terms of (>>=), but nowhere as far as I can tell have we written this down explicitly for readers without the benefit of historical context. If the law is meant to express a relationship among (<*>), (>>=), and 'return', it seems that it is better off making this statement directly, sidestepping 'ap' altogether.
* Correct two misspellings of "separately"Chris Martin2019-04-032-2/+2
|
* integer-simple: Add documentation for Integer typeBen Gamari2019-04-031-0/+3
|
* integer-gmp: Write friendlier documentation for IntegerBen Gamari2019-04-031-2/+6
|
* users-guide: Typo in Users Guide, Glasgow ExtsFrank Steffahn2019-04-031-1/+1
|
* base: Add documentation that liftA2 used to not be a typeclass methodAndrew Martin2019-04-031-0/+3
|
* users-guide: Fix typoNathan Collins2019-04-031-1/+1
|
* Fix faulty substitutions in StgCse (#11532).klebinger.andreas@gmx.at2019-04-031-2/+2
| | | | | | | | | | | | `substBndr` should rename bindings which shadow existing ids. However while it was renaming the bindings it was not adding proper substitutions for renamed bindings. Instead of adding a substitution of the form `old -> new` for renamed bindings it mistakenly added `old -> old` if no replacement had taken place while adding none if `old` had been renamed. As a byproduct this should improve performance, as we no longer add useless substitutions for unshadowed bindings.
* Add myself to libraries/ghciSimon Marlow2019-04-021-0/+1
|
* Hadrian: lint ignore autom4te and ghc-pkg cache files.David Eichmann2019-04-021-0/+9
|
* Hadrian: traceAllow deep dependencies when compilling haskell object files.David Eichmann2019-04-021-0/+10
|
* Fix formatting issue in ghc-prim's changelog [skip ci]Alexandre Baldé2019-04-021-0/+1
|
* Hadrian: correct deps for ghc builder.David Eichmann2019-04-011-1/+5
| | | | | | | Previously, when needing ghc as a builder, the ghcDeps (Files the GHC binary depends on) for the current stage were needed. This is incorrect as the previous stage's ghc is used for building. This commit fixes the issue, needing the previous stage's ghcDeps.
* Improve performance of newSmallArray#Michal Terepeta2019-04-013-5/+14
| | | | | | | | | | | | | | This: - Hoists part of the condition outside of the initialization loop in `stg_newSmallArrayzh`. - Annotates one of the unlikely branches as unlikely, also in `stg_newSmallArrayzh`. - Adds a couple of annotations to `allocateMightFail` indicating which branches are likely to be taken. Together this gives about 5% improvement. Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com>
* Bump array submoduleRyan Scott2019-04-011-0/+0
| | | | | | This bumps `array` to version 0.5.4.0 so that we can distinguish it with `MIN_VERSION_array` (as it introduces some changes to the `Show` instance for `UArray`).
* gitlab: Mention ~"user facing" labelBen Gamari2019-04-011-0/+2
|
* gitlab: Move feature request template to issue_templatesBen Gamari2019-04-011-0/+0
| | | | Whoops.
* gitlab: Add feature request MR templateBen Gamari2019-04-011-0/+13
|
* configure: document the use of the LD variableAdam Sandberg Eriksson2019-04-011-0/+1
|
* Clean up URLs to point to GitLabTakenobu Tani2019-04-015-6/+6
| | | | | | | | | | | | This moves URL references to old Trac to their corresponding GitLab counterparts. This patch does not update the submodule library, such as libraries/Cabal. See also !539, !606, !618 [ci skip]
* gitlab: Add some simply issue templatesBen Gamari2019-04-011-0/+24
|
* gitlab: Add merge request template for backports for 8.8Ben Gamari2019-04-011-0/+11
|
* Support Shake's --lint-fsatrace feature.David Eichmann2019-04-012-7/+10
| | | | | | Using this feature requires fsatrace (e.g. https://github.com/jacereda/fsatrace). Simply use the `--lint-fsatrace` option when running hadrian. Shake version >= 0.17.7 is required to support linting out of tree build dirs.
* Remove unnecessary uses of UnboxedTuples pragma (see #13101 / #15454)Michael Sloan2019-04-016-6/+5
| | | | Also removes a couple unnecessary MagicHash pragmas
* Bump ghc-prim's version where neededAlexandre2019-04-0176-84/+84
|
* Add support for bitreverse primopAlexandre2019-04-0120-7/+289
| | | | | | This commit includes the necessary changes in code and documentation to support a primop that reverses a word's bits. It also includes a test.
* ci: Ensure index.html is preserved in documentation tarballBen Gamari2019-03-301-3/+2
|
* Bump transformers to 0.5.6.2Ben Gamari2019-03-291-0/+0
| | | | See #16199.
* ci: Check that changelogs don't contain "TBA"Ben Gamari2019-03-291-0/+26
| | | | | This ensures that the release dates in the library changelogs are properly set.
* docs: make nfib compute the Fibonacci sequence [skipci]Artem Pelenitsyn2019-03-291-1/+1
|
* Visibility: handle multiple units with the same nameMichael Peyton Jones2019-03-298-13/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #16228. The included test case is adapted from the reproduction in the issue, and fails without this patch. ------ We compute an initial visilibity mapping for units based on what is present in the package databases. To seed this, we compute a set of all the package configs to add visibilities for. However, this set was keyed off the unit's *package name*. This is correct, since we compare packages across databases by version. However, we would only ever consider a single, most-preferable unit from the database in which it was found. The effect of this was that only one of the libraries in a Cabal package would be added to this initial set. This would cause attempts to use modules from the omitted libraries to fail, claiming that the package was hidden (even though `ghc-pkg` would correctly show it as visible). A solution is to do the selection of the most preferable packages separately, and then be sure to consider exposing all units in the same package in the same package db. We can do this by picking a most-preferable unit for each package name, and then considering exposing all units that are equi-preferable with that unit. ------ Why wasn't this bug apparent to all people trying to use sub-libraries in Cabal? The answer is that Cabal explicitly passes `-package` and `-package-id` flags for all the packages it wants to use, rather than relying on the state of the package database. So this bug only really affects people who are trying to use package databases produced by Cabal outside of Cabal itself. One particular example of this is the way that the Nixpkgs Haskell infrastructure provides wrapped GHCs: typically these are equipped with a package database containing all the needed package dependencies, and the user is not expected to pass `-package` flags explicitly.
* Add some tips to the Troubleshooting section of READMEArtem Pelenitsyn2019-03-291-8/+17
|
* Fix a few broken Trac links [skip ci]Chaitanya Koparkar2019-03-2711-11/+12
| | | | This patch only attempts to fix links that don't automatically re-direct to the correct URL.
* Minor refactoring in copy array primops:Ömer Sinan Ağacan2019-03-271-15/+17
| | | | | | | | | | - `emitCopySmallArray` now checks size before generating code and doesn't generate any code when size is 0. `emitCopyArray` already does this so this makes small/large array cases the same in argument checking. - In both `emitCopySmallArray` and `emitCopyArray` read the `dflags` after checking the argument.
* Hadrian: don't use -zorigin on darwin.David Eichmann2019-03-271-4/+3
|
* Hadrian: introduce an easy way for users to build with -split-sectionsAlp Mestanogullari2019-03-272-0/+53
| | | | | | | | | | | | | | | Any user can now trivially build any number of Haskell packages with `-split-sections` by using `splitSections`/`splitSectionsIf` on any existing or new flavour: -- build all packages but the ghc library with -split-sections splitSections :: Flavour -> Flavour -- build all packages that satisfy the given predicate -- with --split-sections splitSectionsIf :: (Package -> Bool) -> Flavour -> Flavour See the new section in `doc/user-settings.md`.
* Hadrian: trace the execution of expensive Cabal callsAndrey Mokhov2019-03-271-8/+12
| | | | | | | | | | | We use Cabal to parse, configure, register and copy packages, which are expensive operations that are currently not visible to Shake's profiling infrastructure. By using `traced` we tell Shake to add these IO actions to the profiling report, helping us to identify performance bottlenecks. We use short tracing keys, as recommended in Shake docs: the name of the current target is already available in the rest of the profiling information.
* Hadrian: Bump Shake to 0.17.6Andrey Mokhov2019-03-271-1/+1
| | | | | | | The new release of Shake comes with these relevant features: * use symlinks for --shared * add --compact for a Bazel/Buck style output
* Correct duplicate 4.12.0.0 entry in base's changelogRyan Scott2019-03-251-1/+1
| | | | | | See #16490. [ci skip]
* Update Wiki URLs to point to GitLabTakenobu Tani2019-03-25247-396/+396
| | | | | | | | | | | | | | | | | | | | | | | This moves all URL references to Trac Wiki to their corresponding GitLab counterparts. This substitution is classified as follows: 1. Automated substitution using sed with Ben's mapping rule [1] Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy... New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy... 2. Manual substitution for URLs containing `#` index Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy...#Zzz New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy...#zzz 3. Manual substitution for strings starting with `Commentary` Old: Commentary/XxxYyy... New: commentary/xxx-yyy... See also !539 [1]: https://gitlab.haskell.org/bgamari/gitlab-migration/blob/master/wiki-mapping.json
* Refactor ./hadrian/ghci.sh for better error messagesMatthew Pickering2019-03-251-1/+4
| | | | | | By separating these two lines, if the first command fails then `ghci` is not loaded. Before it would still load ghci but display lots of errors about not being able to find modules.
* Check hadrian/ghci.sh script output to determine pass/failMatthew Pickering2019-03-251-2/+2
| | | | | ghci always exits with exit code 0 so you have to check the output to see if the modules loaded succesfully.
* User's Guide: extensions compatibilityHaskell-mouse2019-03-251-0/+18
| | | | | | | Adds the mention that extensions "AllowAmbiguousTypes" and "RankNTypes" are not always compatible with each other. Specifies the conditions and causes of failing in resolving of ambiguity.
* gitlab-ci: Allow linters to fail for nowBen Gamari2019-03-241-0/+1
| | | They are broken and I don't have time to fix them at the moment.
* gitlab-ci: Explicitly fetch target branchBen Gamari2019-03-231-2/+2
| | | | | `git fetch`, which we used previously, doesn't update the remote tracking branches.