- 01 Nov, 2019 13 commits
-
-
Adam Sandberg Eriksson authored
-
Ben Gamari authored
As described in #16588.
-
Ben Gamari authored
Previously the test relied on `id` not inlining. Fix this.
-
Ben Gamari authored
failIO has useful information in its demand signature (specifically that it bottoms) which is hidden if it is SOURCE imported, as noted in #16588. Rejigger things such that we don't SOURCE import it. Metric Increase: T13701
-
Simon Peyton Jones authored
This patch fixes #17395, a very subtle and hard-to-trigger bug in tcMatchTy. It's all explained in Note [Matching in the presence of casts (2)] I have not added a regression test because it is very hard to trigger it, until we have the upcoming mkAppTyM patch, after which lacking this patch means you can't even compile the libraries.
-
Simon Peyton Jones authored
This one came in a comment from James Payor
-
Simon Peyton Jones authored
I found in #17415 that Lint was printing out truly gigantic warnings, unmanageably huge, with repeated copies of the same thing. This patch makes Lint less chatty, especially for warnings: * For **warnings**, I don't print details of the location, unless you add `-dppr-debug`. * For **errors**, I still print all the info. They are fatal and stop exection, whereas warnings appear repeatedly. * I've made much less use of `AnExpr` in `LintLocInfo`; the expression can be gigantic.
-
Ben Gamari authored
MacOS Catalina is finally going to force our hand in forbidden writable exeutable mappings. Unfortunately, this is quite incompatible with the current global m32 allocator, which mixes symbols from various objects in a single page. The problem here is that some of these symbols may not yet be resolved (e.g. had relocations performed) as this happens lazily (and therefore we can't yet make the section read-only and therefore executable). The easiest way around this is to simply create one m32 allocator per ObjectCode. This may slightly increase fragmentation for short-running programs but I suspect will actually improve fragmentation for programs doing lots of loading/unloading since we can always free all of the pages allocated to an object when it is unloaded (although this ability will only be implemented in a later patch).
-
Ben Gamari authored
-
taylorfausak authored
-
taylorfausak authored
-
taylorfausak authored
-
taylorfausak authored
-
- 31 Oct, 2019 4 commits
-
-
Ben Gamari authored
Just a few things I found while looking at #17383.
-
Ben Gamari authored
-
Ben Gamari authored
As reported in #17414, Darwin throws EINVAL in response to large writes.
-
Ömer Sinan Ağacan authored
Before: 0x0000004200c86888 After: 0x42000224f8 This is more concise and consistent with the RTS's printer (which uses %p formatter, and at least on Linux gcc prints the short form) and gdb's pointer formatter.
-
- 30 Oct, 2019 8 commits
-
-
Ben Gamari authored
Previously we were configuring the ARMv7 builds with a host/target triple of arm-linux-gnueabihf, which caused us to target ARMv6 and consequently rely on the old CP15 memory barrier implementation. This barrier has to be emulated on ARMv8 machines which is glacially slow. Hopefully this should fix the ARMv7 builds which currently consistently time out.
-
Vladislav Zavialov authored
GHC Proposal #229 changes the lexical rules of Haskell, which may require slight whitespace adjustments in certain cases. This patch changes formatting in a few places in GHC and its testsuite in a way that enables it to compile under the proposed rules.
-
Ben Gamari authored
-
Ömer Sinan Ağacan authored
AP_NOUPD entry code doesn't use the arity field, but not initializing this field confuses printers/debuggers, and also makes testing harder as the field's value changes randomly.
-
Ben Gamari authored
-
Ben Gamari authored
The configuration in the installation environment (as determined by `autoconf`) may differ from the build environment and therefore we need to be sure to rebuild the settings file. Fixes #17374.
-
Ben Gamari authored
-
Ben Gamari authored
This had silently regressed due to 81860281 and the variable renaming performed in b55ee979, as noted in #17374.
-
- 29 Oct, 2019 15 commits
-
-
Ben Gamari authored
This reverts commit aa31ceaf as suggested in #17392.
-
Ben Gamari authored
Not only is it now unused but we generally can't assume that we are compiling with GCC, so it really shouldn't be used.
-
Ben Gamari authored
This makes the CPP significantly easier to follow.
-
Ben Gamari authored
The OFD locking path introduced in 3b784d44 due to #13945 appears to have never actually worked but we never noticed due to an oversight in the autoconf check. Fix it. Thanks to Oleg Grenrus for noticing this.
-
Ben Gamari authored
Previously `hadrian` would pass `-optc-Werror=unused-but-set-variable` to all GHC invocations. This was a difference from the make build system and cause the unregisterised build to fail as the C that GHC produces contains many unused functions. Drop it from the GHC flags. Note, however, that the flag is still present in `Settings.Builders.Common.cWarnings` and therefore will still be applied during compilation of C sources.
-
Ben Gamari authored
Some of these flags wanted to be passed to .cmm builds as well as C builds.
-
Ben Gamari authored
It seems that NOSMP was previously only defined when compiling the compiler, not the RTS. Fix this. In addition do some spring-cleaning and make the logic match that of the Make build system.
-
Ben Gamari authored
-
Ben Gamari authored
-
Ben Gamari authored
-
Ömer Sinan Ağacan authored
-
Ömer Sinan Ağacan authored
-
Ömer Sinan Ağacan authored
-
Ömer Sinan Ağacan authored
The compilation phases now optionally return ModIface (for phases that generate an interface, currently only HscOut when (re)compiling a file). The value is then used by compileOne' to return the generated interface with HomeModInfo (which is then used by the batch mode compiler when building rest of the tree). hscIncrementalMode also returns a DynFlags with plugin info, to be used in the rest of the pipeline. Unfortunately this introduces a (perhaps less bad) hack in place of the previous IORef: we now record the DynFlags used to generate the partial infterface in HscRecomp and use the same DynFlags when generating the full interface. I spent almost three days trying to understand what's changing in DynFlags that causes a backpack test to fail, but I couldn't figure it out. There's a FIXME added next to the field so hopefully someone who understands this better than I do will fix it leter.
-
Ömer Sinan Ağacan authored
Make it evident in the constructors that the final interface is only available when HscStatus is not HscRecomp. (When HscStatus == HscRecomp we need to finish the compilation to get the final interface) `Maybe ModIface` return value of hscIncrementalCompile and the partial `expectIface` function are removed.
-