- 15 Apr, 2019 7 commits
-
-
Gabor Greif authored
When a new closure identifier is being established to a local or exported closure already emitted into the same module, refrain from adding an IND_STATIC closure, and instead emit an assembly-language alias. Inter-module IND_STATIC objects still remain, and need to be addressed by other measures. Binary-size savings on nofib are around 0.1%.
-
Fraser Tweedale authored
Document the ':set local-config' command and add a warning about sourcing untrusted local .ghci scripts. Related: ghc/ghc#6017 Related: ghc/ghc#14250
-
Fraser Tweedale authored
Add the ':set local-config { source | ignore }' setting to control whether .ghci file in current directory will be sourced or not. The directive can be set in global config or $HOME/.ghci, which are processed before local .ghci files. The default is "source", preserving current behaviour. Related: ghc/ghc#6017 Related: ghc/ghc#14250
-
Fraser Tweedale authored
Update users guide to match the new startup script order. Also clarify that -ignore-dot-ghci does not apply to scripts specified via the -ghci-script option. Part of: ghc/ghc#14689
-
Fraser Tweedale authored
Directives in .ghci files in the current directory ("local .ghci") can be overridden by global files. Change the order in which the configs are loaded: global and $HOME/.ghci first, then local. Also introduce a new field to GHCiState to control whether local .ghci gets sourced or ignored. This commit does not add a way to set this value (a subsequent commit will add this), but the .ghci sourcing routine respects its value. Fixes: ghc/ghc#14689 Related: ghc/ghc#6017 Related: ghc/ghc#14250
-
Giles Anderson authored
-
Giles Anderson authored
-O2 is the highest value of optimization. -O3 will be reverted to -O2.
-
- 14 Apr, 2019 9 commits
-
-
Alp Mestanogullari authored
-
Ben Gamari authored
I suspect this is why @simonmar wasn't notified of !706. [skip ci]
-
Krzysztof Gogolewski authored
Lint returns a pair (Maybe a, WarnsAndErrs). The Maybe monad allows to handle an unrecoverable failure. In case of such a failure, the error should be added to the second component of the pair. If this is not done, Lint will silently accept bad programs. This situation actually happened during development of linear types. This adds a safeguard.
-
Simon Jakobi authored
[ci skip]
-
Artem Pyanykh authored
-
Artem Pyanykh authored
-
Krzysztof Gogolewski authored
-
Sylvain Henry authored
This patch adds an Hadrian target "binary-dist-dir". Compared to "binary-dist", it only builds a binary distribution directory without creating the Tar archive. It makes the use/test of the bindist installation script easier.
-
David Eichmann authored
Fixes test T3807 when building with Hadrian. Trac #16370
-
- 13 Apr, 2019 3 commits
-
-
Ben Gamari authored
As noted in #16546 timeout uses asynchronous exceptions internally, an implementation detail which can leak out in surprising ways. Note this fact. Also expose the `Timeout` tycon. [skip ci]
-
Ara Adkins authored
This trivial MR updates the CI badge in the readme to point to the new CI on gitlab, rather than the very out-of-date badge from Travis.
-
Ben Gamari authored
This should have used `grep -E`, not `grep -e`
-
- 12 Apr, 2019 7 commits
-
-
Ben Gamari authored
This broke Marge by creating a second pipeline (consisting of only the `lint-submods` job). Marge then looked at this pipeline and concluded that CI for her merge branch passed. However, this is ignores the fact that the majority of the CI jobs are triggered on `merge_request` and are therefore in another pipeline.
-
Ben Gamari authored
Not only is it reliably failing due to #16574 but all of the quickly failing builds also causes the Windows runners to run out of disk space.
-
Alp Mestanogullari authored
-
Alp Mestanogullari authored
When -a or --test-accept is passed, and if one runs the 'test' target, then any test failing because of mismatching output and which is not expected to fail will have its expected output adjusted by the test driver, effectively considering the new output correct from now on. When this flag is passed, hadrian's 'test' target becomes sensitive to the PLATFORM and OS environment variable, just like the Make build system: - when the PLATFORM env var is set to "YES", when accepting a result, accept it for the current platform; - when the OS env var is set to "YES", when accepting a result, accept it for all wordsizes of the current operating system. This can all be combined with `--only="..."` and `TEST="..." to only accept the new output of a subset of tests.
-
Andreas Klebinger authored
Intermediate STG does not contain free variables which can be useful sometimes. So adding a flag to dump that info.
-
Ben Gamari authored
-
Sylvain Henry authored
-
- 11 Apr, 2019 4 commits
-
-
Ömer Sinan Ağacan authored
Point users to the right URL
-
Ömer Sinan Ağacan authored
-
Sylvain Henry authored
Hadrian's "binary-dist" target must check that the "docs" directory exists (it may not since we can disable docs generation).
-
Carter Schonwald authored
* simplifies registers to have GPR, Float and Double, by removing the SSE2 and X87 Constructors * makes -msse2 assumed/default for x86 platforms, fixing a long standing nondeterminism in rounding behavior in 32bit haskell code * removes the 80bit floating point representation from the supported float sizes * theres still 1 tiny bit of x87 support needed, for handling float and double return values in FFI calls wrt the C ABI on x86_32, but this one piece does not leak into the rest of NCG. * Lots of code thats not been touched in a long time got deleted as a consequence of all of this all in all, this change paves the way towards a lot of future further improvements in how GHC handles floating point computations, along with making the native code gen more accessible to a larger pool of contributors.
-
- 10 Apr, 2019 2 commits
-
-
Ryan Scott authored
Using `ghc-prim <= 0.6.1` is somewhat dodgy from a PVP point of view, as it makes it awkward to support new minor releases of `ghc-prim`. Let's instead use `< 0.7`, which is the idiomatic way of expressing PVP-compliant upper version bounds.
-
Joachim Breitner authored
It should be entirely the responsibility of make/Hadrian to ensure that everything that needs this flag gets it. GHC shouldn't be hardcoded to assist with bootstrapping since it builds other things besides itself. Reviewers: Subscribers: TerrorJack, rwbarton, carter GHC Trac Issues: #15548 -- progress towards but not fix Differential Revision: https://phabricator.haskell.org/D5082 -- extract from that
-
- 09 Apr, 2019 6 commits
-
-
Ben Gamari authored
Hopefully fixes Windows Hadrian build.
-
Sylvain Henry authored
GHC now works out-of-the-box (i.e. without any wrapper script) by assuming that @bin@ and @lib@ directories sit next to each other. In particular, its RUNPATH uses $ORIGIN-based relative path to find the libraries. However, to be good citizens we want to support the case where @bin@ and @lib@ directories (respectively BINDIR and LIBDIR) don't sit next to each other or are renamed. To do that the install script simply creates GHC specific @bin@ and @lib@ siblings directories into: LIBDIR/ghc-VERSION/{bin,lib} Then it installs wrapper scripts into BINDIR that call the appropriate programs into LIBDIR/ghc-VERSION/bin/. The issue fixed by this patch is that libraries were not installed into LIBDIR/ghc-VERSION/lib but directly into LIBDIR.
-
Artem Pyanykh authored
-
Artem Pyanykh authored
-
Artem Pyanykh authored
Fixes #16052 When the offset in `setByteArray#` is statically known, we can provide better alignment guarantees then just 1 byte. Also, memset can now do 64-bit wide sets. The current memset intrinsic is not optimal however and can be improved for the case when we know that we deal with (baseAddress at known alignment) + offset For instance, on 64-bit `setByteArray# s 1# 23# 0#` given that bytearray is 8 bytes aligned could be unrolled into `movb, movw, movl, movq, movq`; but currently it is `movb x23` since alignment of 1 is all we can embed into MO_Memset op.
-
Ben Gamari authored
As noted in #16309 this somehow went undocumented.
-
- 08 Apr, 2019 2 commits
-
-
Ryan Scott authored
Currently, the `hpc` submodule is pinned against the `wip/final-mfp` branch, not against `master`. This pins it back against `master`.
-
John Ericson authored
We're might be about to switch to generating it in Hadrian/Make. This reformat makes it easier to programmingmatically generate and end up with the exact same thing, which is good for diffing to ensure no regressions. I had this as part of !712, but given the difficulty of satisfying CI, I figured I should break things up even further.
-