- Apr 04, 2017
-
-
David Feuer authored
This reverts commit da4687f6. It's not entirely trivial to clean up the dead code this patch introduced. In particular, when we see ``` case raiseIO# m s of s' -> e ``` we want to know that `e` is dead. For scrutinees that are properly bottom (which we don't want to consider `raiseIO# m s` to be, this is handled by rewriting `bot` to `case bot of {}`. But if we do that for `raiseIO#`, we end up with ``` case raiseIO# m s of {} ``` which looks a lot like bottom and could confuse demand analysis. I think we need to wait with this change until we have a more complete story. Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3413 (cherry picked from commit e83af07e)
-
Fixes #13508. [skip ci] Test Plan: Read it Reviewers: austin Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3407 (cherry picked from commit 38f9eadd)
-
Ben Gamari authored
Fixes #13514. (cherry picked from commit e815901d)
-
- Apr 03, 2017
-
-
Before this change we installed hp2ps both to inplace/bin/ and ${prefix}/bin/ In both cases we added $(CrossCompilePrefix) as a binary prefix. It's incorrect for inplace install as none of inplace binaries are prefixed. The change it to track 'hp2ps' as unprefixed binary. $(CrossCompilePrefix) prefix is only added to the installed shell wrapper. Now 'hp2ps' is handled in a similar way to 'hpc' and 'ghc-pkg'. Signed-off-by:
Sergei Trofimovich <slyfox@gentoo.org> (cherry picked from commit 1e58efb1)
-
Ben Gamari authored
Previously these were considered to be framework failures, meaning that validate would fail. For better or worse, Windows lacks a good number of metrics and I don't see this changing any time soon. Let's consider these to be non-fatal. (cherry picked from commit 597ea1cd)
-
Ben Gamari authored
(cherry picked from commit f8ecc584)
-
Ben Gamari authored
This will make it a bit easier to maintain consistent output in the testsuite. (cherry picked from commit 23011765)
-
Ben Gamari authored
ghc-8.2 and master disagreed on the order of the instances. Normalise this difference away. Updates array submodule. (cherry picked from commit 60307cb8)
-
Edward Z. Yang authored
Summary: I observed a bug where if I modified the module which implemented an hsig in another package, GHC would not recompile the signature in this situation. The root cause was that we were conflating modules from user imports, and "system" module dependencies (from signature merging and instantiation.) So this patch handles them separately. Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: simonpj, bgamari, austin Subscribers: rwbarton, thomie, snowleopard Differential Revision: https://phabricator.haskell.org/D3381 (cherry picked from commit 5fb485a3)
-
Edward Z. Yang authored
Summary: To handle wired in packages, we must rewrite all occurrences of unit ids like base-4.9.0.0 to base. However, I forgot to do this on unit ids that occurred in unit identifiers passed via -instantiated-with. This patch handles that case, plus a test. Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: bgamari, austin Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3385 (cherry picked from commit 852a43f3)
-
David Feuer authored
Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3406 (cherry picked from commit 115e7ebf)
-
Similar to 'arm' 'aarch64' has working llvm codegen, no need to fallback to unregisterised buld by default. Signed-off-by:
Sergei Trofimovich <slyfox@gentoo.org> (cherry picked from commit 91105568)
-
Before this change attempt to build a crosscompiler on registerised platform (--host=x86_64-pc-linux-gnu) targeting UNREG platform failed: $ ./configure --target=ia64-unknown-linux-gnu utils/genapply/../../includes/stg/MachRegs.h:608:2: error: #error Cannot find platform to give register info for The change is to check --target= for NCG availability, not --host=. Signed-off-by:
Sergei Trofimovich <slyfox@gentoo.org> (cherry picked from commit cb18447c)
-
Ben Gamari authored
This was horribly, horribly wrong. (cherry picked from commit 4ed33975)
-
Test Plan: validate Reviewers: angerman, austin, bgamari, erikd Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3395 (cherry picked from commit dfac365f)
-
Now that we throw an exception for heap overflow, we should only print the heap overflow message in the main thread when the HeapOverflow exception is caught, rather than as a side effect in the GC. Stack overflows were already done this way, I just made heap overflow consistent with stack overflow, and did some related cleanup. Fixes broken T2592(profasm) which was reporting the heap overflow message twice (you would only notice when building with profiling libs enabled). Test Plan: validate Reviewers: bgamari, niteria, austin, DemiMarie, hvr, erikd Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3394 (cherry picked from commit 61ba4518)
-
Similar to https://ghc.haskell.org/trac/ghc/ticket/13491 https://phabricator.haskell.org/D3122 SIZEOF_HSINT and SIZEOF_VOID_P are sizes of target platform. These values are usually not correct when stage1 is built. It means the code ```haskell newFastMutInt = IO $ \s -> case newByteArray# size s of { (# s, arr #) -> (# s, FastMutInt arr #) } where !(I# size) = SIZEOF_HSINT ``` would try to allocate only 4 bytes on 64-bit-host targeting 32-bit system. It does not matter in practice as newByteArray# implementation rounds up passed value to host's word size. But one day it might not. To prevent this class of problems in compiler/ directory 'MachDeps.h' contents is hidden when ghc-stage1 (-DSTAGE=1) is built. Signed-off-by:
Sergei Trofimovich <slyfox@gentoo.org> Reviewers: austin, rwbarton, simonmar, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D3405 (cherry picked from commit d89b0471)
-
When GhcWithInterpreter=NO is set in mk/build.mk build fails as: $ inplace/bin/dll-split compiler/stage2/build/.depend-v-dyn.haskell "DynFlags" ... Reachable modules from DynFlags out of date Please fix compiler/ghc.mk, or building DLLs on Windows may break (#7780) Extra modules: ByteCodeTypes InteractiveEvalTypes Signed-off-by:
Sergei Trofimovich <slyfox@gentoo.org> (cherry picked from commit 03e34256)
-
Ben Gamari authored
This reverts commit 662c6422.
-
Ben Gamari authored
This test has been fluctuating wildly recently. Moreover, it's not even clear to me that this is a particularly useful thing to be testing. (cherry picked from commit 899fb880)
-
Ben Gamari authored
Both the OS X build machine and my local builds have been failing. Unfortunately, our x86_64 Linux machine has been succeeding. (cherry picked from commit 34f9172f)
-
This reduces peak memory usage by ~30% on my test case (DynFlags), and (probably as a result of reduced GC work) decreases compilation time by a few percent as well. Also fix a bug in seqStrDmd so that demeand info is fully evaluated. Reviewers: simonpj, austin, bgamari Reviewed By: bgamari Subscribers: dfeuer, thomie Differential Revision: https://phabricator.haskell.org/D3400 (cherry picked from commit f2b10f35)
-
- Apr 01, 2017
-
-
* If the package flags haven't changed, don't do initPackages (which might take multiple seconds in extreme cases) * Provide a way to change the log_action without invalidating the summary cache. Test Plan: validate Reviewers: niteria, bgamari, austin, erikd, ezyang Reviewed By: bgamari Subscribers: mpickering, rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3392 (cherry picked from commit f7cc1fdebd6aa8b5cb0498ae245a5e8cf3e38f6f)
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu> (cherry picked from commit 40b65db4)
-
This factors out the repetition of (log_action dflags dflags) and will hopefully allow us to someday better abstract log output. Test Plan: Validate Reviewers: austin, hvr, goldfire Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3334 (cherry picked from commit 086b514b)
-
Ben Gamari authored
(cherry picked from commit 6928d8019cd2cdd1c0b9d6e1fe1a0c8c07e57595)
-
Unregisterised GHC can only use C as a target backend (option used to be called -fvia-C). -fasm option was ignored with a warhing, but not -fllvm. jms noticed the failure when tried to use quick-cross build flavour. quick-cross enables -fllvm in makefile. "inplace/bin/ghc-stage1" ... -fllvm ghc-stage1: panic! (the 'impossible' happened) (GHC version 8.0.2 for powerpc-unknown-linux): LlvmCodeGen.Ppr: Cross compiling without valid target info. This change ignores -fllvm as well. Signed-off-by:
Sergei Trofimovich <slyfox@gentoo.org> (cherry picked from commit 74615f41)
-
It was expensive, as the simplifier runs for many iterations, and probably not very useful. Test Plan: harbormaster Reviewers: austin, bgamari, dfeuer Reviewed By: dfeuer Subscribers: dfeuer, thomie Differential Revision: https://phabricator.haskell.org/D3391 (cherry picked from commit 71916e1c)
-
When GHCi tries to find a shared lib, it calls "gcc --print-file-name" to ask gcc where to find it. But since we're looking for libraries, we're really using the linker here, not the C compiler, so we should be respecting the values of -pgml and -optl rather than -pgmc and -optc. Test Plan: validate Reviewers: bgamari, niteria, austin, hvr, erikd Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3393 (cherry picked from commit 30828799)
-
Ben Gamari authored
(cherry picked from commit 546c2a17)
-
Ben Gamari authored
As previously documented (88f5add0) wc's output is inconsistent between Linux and BSDs. Use grep -c instead. (cherry picked from commit cf74b677)
-
- Mar 31, 2017
-
-
Ben Gamari authored
At long last fixes OS X build. (cherry picked from commit 2f2622c6)
-
Ben Gamari authored
-
Ben Gamari authored
-
Ben Gamari authored
(cherry picked from commit fb7e5bd3)
-
The Join points commit (8d5cf8bf) introduced a space leak somewhere in the simplifier. The extra strictness added in this commit fixes the leak. Unfortunately I don't really understand the details. Unfortunately, the extra strictness appears to result in more overall allocations in some cases, even while the peak heap size decreases in others. Test Plan: harbormaster Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D3399 (cherry picked from commit e13419c5)
-
Ben Gamari authored
In Core, Constraint should be considered fully equal to TYPE LiftedRep, in all ways. Accordingly, coreView should unwrap Constraint to become TYPE LiftedRep. Of course, this would be a disaster in the type checker. So, where previously we used coreView in both the type checker and in Core, we now have coreView and tcView, which differ only in their treatment of Constraint. Historical note: once upon a past, we had tcView distinct from coreView. Back then, it was because newtypes were unwrapped in Core but not in the type checker. The distinction is back, but for a different reason than before. This had a few knock-on effects: * The Typeable solver must explicitly handle Constraint to ensure that we produce the correct evidence. * TypeMap now respects the Constraint/Type distinction Finished by: bgamari Test Plan: ./validate Reviewers: simonpj, austin, bgamari Reviewed By: simonpj Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3316 (cherry picked from commit 6575f4b6)
-
Simon Peyton Jones authored
This small refactoring, provoked by comment:18 on Trac #13426, makes it so that simplExprF never gets a (Type ty) expression to simplify, which in turn means that calls to exprType on its argument will always succeed. No change in behaviour. (cherry picked from commit 29645274)
-
These checks, introduced in cea71418 hugely inflated build logs, which incapitated perf.haskell.org. According to Richard, the checks are useless and wrong, and that Ben plans to investigate. (https://phabricator.haskell.org/rGHCcea7141851ce653cb20207da3591d09e73fa396d#64647) Until that happens, I remove them from the code. (cherry picked from commit 03c7dd09)
-
- Mar 29, 2017
-
-
Core Lint shouldn't check representations of types that don't have representations. test case: typecheck/should_compile/T13458 (cherry picked from commit cea71418)
-