summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add myself to CODEOWNERS for a few fileswip/joachim/codeownersJoachim Breitner2019-01-221-0/+5
|
* Fix bogus worker for newtypesSimon Peyton Jones2019-01-221-21/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The "worker" for a newtype is actually a function with a small (compulsory) unfolding, namely a cast. But the construction of this function was plain wrong for newtype /instances/; it cast the arguemnt to the family type rather than the representation type. This never actually bit us because, in the case of a family instance, we immediately cast the result to the family type. So we get \x. (x |> co1) |> co2 where the compositio of co1 and co2 is ill-kinded. However the optimiser (even the simple optimiser) just collapsed those casts, ignoring the mis-match in the middle, so we never saw the problem. Trac #16191 is indeed a dup of #16141; but the resaon these tickets produce Lint errors is not the unnecessary forcing; it's because of the ill-typed casts. This patch fixes the ill-typed casts, properly. I can't see a way to trigger an actual failure prior to this patch, but it's still wrong wrong wrong to have ill-typed casts, so better to get rid of them.
* Extend linker-script workaround to work with musl libcSamuel Holland2019-01-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | GHC has code to handle unsuffixed .so files that are linker scripts pointing to the real shared library. The detection is done by parsing the result of `dlerror()` after calling `dlopen()` and looking for certain error strings. On musl libc, the error message is "Exec format error", which happens to be `strerror(ENOEXEC)`: ``` $ cat tmp.c #include <dlfcn.h> #include <stdio.h> int main(void) { dlopen("libz.so", RTLD_NOW | RTLD_GLOBAL); puts(dlerror()); return 0; } $ gcc -o tmp tmp.c $ ./tmp Error loading shared library libz.so: Exec format error $ ``` This change fixes the workaround to also work on musl libc. Link: https://phabricator.haskell.org/D5474
* Add CODEOWNERSBen Gamari2019-01-211-0/+22
| | | | | | | GitLab uses this file to suggest reviewers based upon the files that a Merge Request touches. [skip-ci]
* gitlab: Add merge request templateBen Gamari2019-01-211-0/+19
| | | | | | This begins to define our expectations of contributions. [skip-ci]
* Fix typo in TcRnTypes.hs [skip ci]wip/tc-rn-types-typoMatthew Pickering2019-01-211-2/+2
|
* Add support for ASM foreign files (.s) in TH (#16180)Sylvain Henry2019-01-206-9/+45
|
* Remove TODO in HsExprMatthew Pickering2019-01-201-1/+0
| | | | It is correct to be `GhcTc` as the data type is for expressions which are inside splices so they can be delayed until desugaring.
* Mention DerivingStrategies in the warning when DAC and GND are both enabledChaitanya Koparkar2019-01-204-1/+17
| | | | | | | | | | | Summary: When DeriveAnyClass and GeneralizedNewtypeDeriving are both enabled, GHC prints out a warning that specifies the strategy it used to derive a class. This patch updates the warning to mention that users may pick a particular strategy by using DerivingStrategies. Test plan: make test TEST=T16179
* [T16199] Adds a verify-packages scriptghc-8.9-startMoritz Angermann2019-01-201-0/+20
|
* Prepare source-tree for base-4.13 MFP bumpHerbert Valerio Riedel2019-01-1822-18/+47
|
* Fix typo in DsExprwip/ds-expr-typoMatthew Pickering2019-01-181-1/+1
|
* Comments in stranal test declarationsÖmer Sinan Ağacan2019-01-181-2/+4
|
* Small refactorSimon Peyton Jones2019-01-171-8/+6
| | | | ...to use the same error message rather than duplicating it
* Remove export of checkValidFamPats, never usedSimon Peyton Jones2019-01-171-1/+1
|
* Comments about data constructor wrappersSimon Peyton Jones2019-01-171-30/+40
|
* 'DynFlag'-free version of 'mkParserFlags'Alec Theriault2019-01-173-330/+296
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is a fixed version of the reverted d2fbc33c4ff3074126ab71654af8bbf8a46e4e11 and 5aa29231ab7603537284eff5e4caff3a73dba6d2. Obtaining a `DynFlags` is difficult, making using the lexer/parser for pure parsing/lexing unreasonably difficult, even with `mkPStatePure`. This is despite the fact that we only really need * language extension flags * warning flags * a handful of boolean options The new `mkParserFlags'` function makes is easier to directly construct a `ParserFlags`. Furthermore, since `pExtsBitmap` is just a footgun, I've gone ahead and made `ParserFlags` an abstract type. Also, we now export `ExtBits` and `getBit` instead of defining/exporting a bunch of boilerplate functions that test for a particular 'ExtBits'. In the process, I also * cleaned up an unneeded special case for `ITstatic` * made `UsePosPrags` another variant of `ExtBits` * made the logic in `reservedSymsFM` match that of `reservedWordsFM` Test Plan: make test Reviewers: bgamari, alanz, tdammers Subscribers: sjakobi, tdammers, rwbarton, mpickering, carter GHC Trac Issues: #11301 Differential Revision: https://phabricator.haskell.org/D5405
* PPC NCG: Rename constructorsPeter Trommler2019-01-171-28/+29
| | | | | Rename constructors in calling convention data type to reflect the fact that they represent an ELF ABI not only a Linux ABI.
* Fix tab and improve whitespacePeter Trommler2019-01-171-7/+8
|
* PPC NCG: Register definitions for all 64-bit systemsPeter Trommler2019-01-171-7/+3
|
* PPC NCG: GOT declaration for all 64-bit ELF systemsPeter Trommler2019-01-171-5/+3
|
* PPC NCG: Make `stackHeaderSize` more generalPeter Trommler2019-01-171-7/+6
|
* PPC NCG: Make calling convention more generalPeter Trommler2019-01-171-6/+5
| | | | | All operating systems except AIX and Darwin follow the ELF specification.
* RTS: Use ELF v1 convention on all powerpc64 systemsPeter Trommler2019-01-171-5/+0
|
* Add test for #16197wip/T16197Ömer Sinan Ağacan2019-01-174-1/+39
|
* Documentation for StgRetFunÖmer Sinan Ağacan2019-01-162-1/+4
|
* Make sure 'haddock' package also copies resourcesAlec Theriault2019-01-166-34/+31
| | | | ...and does so in the lib folder of the right stage
* Hadrian: handle Haddock's resource directoryAlec Theriault2019-01-163-18/+29
| | | | | | | | | | | | | | | | Fixes #16105 * Require Haddock's resource as runtime dependencies of the Haddock builder. This means we no longer have to `need` particular resources in every other documentation rule. * Do a _tracked_ copy of both the 'html' and 'latex' folder resource folders. * Move resources into `stage1/lib` (NB: the `haddock` binary goes in `stage1/bin`). Besides now actually matching the Haddock script wrapper generated by BinaryDist, this also prepares for Haddock in relocatable build folder detecting its own resources.
* Improve clarity of documentation for maybeToListSteve Hart2019-01-161-1/+1
|
* Revert "Fix typo in maybeToList documentation"Steve Hart2019-01-161-1/+1
| | | This reverts commit af210f40ce7ad7b3351abc988b0351446e8b639e
* Fix typo in maybeToList documentationSteve Hart2019-01-161-1/+1
|
* Hadrian: Use the Cabal build script on Windows by defaultAndrey Mokhov2019-01-161-4/+2
| | | | | | | | | | | | | The Stack build script `build.stack.bat` currently fails on Windows when invoked with the `--configure` flag, see: https://ghc.haskell.org/trac/ghc/ticket/15982 The Cabal build script `build.cabal.bat` works reliably on my Windows machine, so I am proposing to switch to it by default, that is, to run it from the default `build.bat` script. The Stack build script can still be run directly if need be.
* Disable Shake Lint by default.Andrey Mokhov2019-01-166-9/+4
|
* Switch to the untracked version of getDirectoryFiles when scanning for GMP ↵Andrey Mokhov2019-01-162-6/+15
| | | | | | | | | objects See https://ghc.haskell.org/trac/ghc/ticket/15971. This is work in progress: this commit does the right thing, but does not yet fix the ticket.
* typoAlp Mestanogullari2019-01-161-1/+1
|
* crosslink hadrian/README.md and hadrian/doc/make.mdAlp Mestanogullari2019-01-162-2/+13
|
* doc: behaviour of +RTS -h depends on profilingBen Price2019-01-162-0/+9
| | | | | | The rts option `-h` behaves as `-hT` when compiled without profiling, and `-hc` when compiled with profiling. Add a note to the user's guide highlighting this inconsistency.
* doc: reorder heap profiling information in +RTS -?Ben Price2019-01-161-6/+5
|
* rts: Allow heap prof by closure type in prof wayBen Price2019-01-161-0/+1
| | | | | | Complete b7b6617a90824303daf555c817f538cd9c792671 (see ticket #15086) to actually enable profiling by closure type in the profiling rts. I.e. +RTS -p -hT is now accepted.
* try to fix CIAlec Theriault2019-01-161-0/+2
|
* Fix tests for `integer-simple`Alec Theriault2019-01-1636-141/+143
| | | | | | | | | | | | A bunch of tests for `integer-simple` were now broken for a foolish reason: unlike the `integer-gmp` case, there is no CorePrep optimization for turning small integers directly into applications of `S#`. Rather than port this optimization to `integer-simple` (which would involve moving a bunch of `integer-simple` names into `PrelNames`), I switched as many tests as possible to use `Int`. The printing of `Integer` is already tested in `print037`.
* Remove from `base` obsolete CPP for `integer-gmp`Alec Theriault2019-01-167-162/+26
| | | | | | | | | | * `GHC.Natural` now exports the same functions (regardless of integer backend) * remove unnecessary CPP around instances * remove the 'OPTIMISE_INTEGER_GCD_LCM' flag - almost all of those optimizations now work regardless of which integer backend is used Note that some CPP still remains for situations where there are backend-specific optimization hacks (like a more efficient GMP-only `gcd` for `Int#` and `Word#`).
* Match `integer-simple`'s API with `integer-gmp`Alec Theriault2019-01-164-8/+99
| | | | | | | | In `integer-simple`: * Added an efficient `popCountInteger` and `bitInteger` * Added an efficient `gcdInteger` and `lcmInteger` * Made `testBitInteger` more efficient
* Support printing `integer-simple` Integers in GHCiAlec Theriault2019-01-167-2/+80
| | | | | | | | | | This means that `:p` no longer leaks the implementation details of `Integer` with `integer-simple`. The `print037` test case should exercise all possible code paths for GHCi's code around printing `Integer`s (both in `integer-simple` and `integer-gmp`). `ghc` the package now also has a Cabal `integer-simple` flag (like the `integer-gmp` one).
* Create folder if missing for .hie filesAlec Theriault2019-01-161-3/+5
| | | | | | | | | | | | | | | Summary: This matches the existing behaviour for .hi files: if the user requests the interface file be written in some location, we should create the parent folder if it doesn't already exist. Reviewers: bgamari, sjakobi Reviewed By: sjakobi Subscribers: sjakobi, rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5463
* Hadrian: support extra libraries + OSX rpathAlec Theriault2019-01-165-24/+34
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This fixes some of the issues that surfaced when trying to build dynamic GHC on OSX. Unfortunately, due some other `libffi` issues, this doesn't completely fix dynamic builds on OSX. - Use 'extra-libraries' from .cabal files instead of hardcoding which packages need which extra libs. Also add support for 'extra-lib-dirs'. - Make sure Hadrian looks in the right places to support both plain '<pkg>.buildinfo' and '<pkg>.buildinfo.in' files. - Make the '-rpath' support more robust across OS's (it previously didn't work on OSX and possibly windows either). Reviewers: angerman, alpmestan, adamse, DavidEichmann, bgamari, Phyx Subscribers: rwbarton, carter GHC Trac Issues: #15990 Differential Revision: https://phabricator.haskell.org/D5409
* Introduce ghci command wrapperZejun Wu2019-01-162-33/+76
| | | | | | | | | | Introduce ghci command wrapper, which can be used to cutomize ghci: * process additionals actions before/after the command * handle particular exceptions in given ways * logging stats We also split the timing and printing part of `timeIt` into different functions.
* Fix filename in comment againPeter Trommler2019-01-161-1/+1
|
* Fix reference to stack code in commentPeter Trommler2019-01-161-1/+1
|
* PPC NCG: Refactor stack allocation codePeter Trommler2019-01-162-26/+15
| | | | | There is only one place where UPDATE_SP was used. Instead of the UPDATE_SP pseudo instruction build the list of instructions directly.