| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Apparently GitLab CI defaults to declaring all jobs of the previous
stage as dependencies of a job. This meant that we would end up
downloading all of our binary distributions during the `cleanup` stage,
eating up a truly remarkable amount of S3 tranfers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
GitLab uses this file to suggest reviewers based upon the files that a Merge
Request touches.
[skip-ci]
|
|
|
|
|
|
| |
This begins to define our expectations of contributions.
[skip-ci]
|
| |
|
| |
|
|
|
|
| |
It is correct to be `GhcTc` as the data type is for expressions which are inside splices
so they can be delayed until desugaring.
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
...to use the same error message rather than duplicating it
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Rename constructors in calling convention data type to reflect the
fact that they represent an ELF ABI not only a Linux ABI.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
All operating systems except AIX and Darwin follow the ELF
specification.
|
| |
|
| |
|
| |
|
|
|
|
| |
...and does so in the lib folder of the right stage
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
This reverts commit af210f40ce7ad7b3351abc988b0351446e8b639e
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
Complete b7b6617a90824303daf555c817f538cd9c792671 (see ticket #15086) to
actually enable profiling by closure type in the profiling rts. I.e.
+RTS -p -hT is now accepted.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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`.
|
|
|
|
|
|
|
|
|
|
| |
* `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#`).
|
|
|
|
|
|
|
|
| |
In `integer-simple`:
* Added an efficient `popCountInteger` and `bitInteger`
* Added an efficient `gcdInteger` and `lcmInteger`
* Made `testBitInteger` more efficient
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 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.
|
| |
|
| |
|
|
|
|
|
| |
There is only one place where UPDATE_SP was used. Instead of the
UPDATE_SP pseudo instruction build the list of instructions directly.
|