summaryrefslogtreecommitdiff
path: root/mk
Commit message (Collapse)AuthorAgeFilesLines
* Update validate settings now that containers and process have beenDavid Terei2014-11-161-2/+0
| | | | updated to handle `-fwarn-trustworthy-safe`.
* Update to (unreleased) `deepseq-1.4.0.0`Herbert Valerio Riedel2014-11-151-0/+3
| | | | | | | | | | | | | | | | | | | This pulls in the new `Generic`-based `-XDefaultSignature`-based default implementation for `rnf`[1], and will be interesting to use in combination with the soon to be merged `-XDeriveAnyClass` extension. This requires updating several other submodules as well in order to relax the upper bound on `deepseq` and/or in a few cases to avoid relying on the default method implementation of `rnf`: - `Cabal` - `bytestring` - `containers` - `parallel` - `process` - `time` [1]: http://permalink.gmane.org/gmane.comp.lang.haskell.libraries/23031
* Add `--fwarn-trustworthy-safe` to `-Wall`David Terei2014-11-121-0/+7
| | | | | Update submodule haskell2010, haskell98, hoop, hpc and stm to fix new warnings.
* Implement new integer-gmp2 from scratch (re #9281)Herbert Valerio Riedel2014-11-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is done as a separate `integer-gmp2` backend library because it turned out to become a complete rewrite from scratch. Due to the different (over)allocation scheme and potentially different accounting (via the new `{shrink,resize}MutableByteArray#` primitives), some of the nofib benchmarks actually results in increased allocation numbers (but not necessarily an increase in runtime!). I believe the allocation numbers could improve if `{resize,shrink}MutableByteArray#` could be optimised to reallocate in-place more efficiently. Here are the more apparent changes in the latest nofib comparision between `integer-gmp` and `integer-gmp2`: ------------------------------------------------------------------ Program Size Allocs Runtime Elapsed TotalMem ------------------------------------------------------------------ ... bernouilli +1.6% +15.3% 0.132 0.132 0.0% ... cryptarithm1 -2.2% 0.0% -9.7% -9.7% 0.0% ... fasta -0.7% -0.0% +10.9% +10.9% 0.0% ... kahan +0.6% +38.9% 0.169 0.169 0.0% ... lcss -0.7% -0.0% -6.4% -6.4% 0.0% ... mandel +1.6% +33.6% 0.049 0.049 0.0% ... pidigits +0.8% +8.5% +3.9% +3.9% 0.0% power +1.4% -23.8% -18.6% -18.6% -16.7% ... primetest +1.3% +50.1% 0.085 0.085 0.0% ... rsa +1.6% +53.4% 0.026 0.026 0.0% ... scs +1.2% +6.6% +6.5% +6.6% +14.3% ... symalg +1.0% +9.5% 0.010 0.010 0.0% ... transform -0.6% -0.0% -5.9% -5.9% 0.0% ... ------------------------------------------------------------------ Min -2.3% -23.8% -18.6% -18.6% -16.7% Max +1.6% +53.4% +10.9% +10.9% +14.3% Geometric Mean -0.3% +1.9% -0.8% -0.8% +0.0% (see P35 / https://phabricator.haskell.org/P35 for full report) By default, `INTEGER_LIBRARY=integer-gmp2` is active now, which results in the package `integer-gmp-1.0.0.0` being registered in the package db. The previous `integer-gmp-0.5.1.0` can be restored by setting `INTEGER_LIBRARY=integer-gmp` (but will probably be removed altogether for GHC 7.12). In-tree GMP support has been stolen from the old `integer-gmp` (while unpatching the custom memory-allocators, as well as forcing `-fPIC`) A minor hack to `ghc-cabal` was necessary in order to support two different `integer-gmp` packages (in different folders) with the same package key. There will be a couple of follow-up commits re-implementing some features that were dropped to keep D82 minimal, as well as further clean-ups/improvements. More information can be found via #9281 and https://ghc.haskell.org/trac/ghc/wiki/Design/IntegerGmp2 Reviewed By: austin, rwbarton, simonmar Differential Revision: https://phabricator.haskell.org/D82
* Avoid setting -Werror=unused-but-set-variable on Windows.Gintautas Miliauskas2014-10-291-0/+3
| | | | | | | | | | | | | | | | | | | Summary: The option is not needed (it was only intended to override Debian's default) and causes an error if the host ghc's mingw is too old (which the script does not detect). Fixes T9727 Reviewers: austin Reviewed By: austin Subscribers: thomie, carter, simonmar Differential Revision: https://phabricator.haskell.org/D373 GHC Trac Issues: #9727
* Enabled warn on tabs by default (fixes #9230)Mateusz Lenik2014-10-211-0/+9
| | | | | | | | | | | | | | | | | | | | | | Summary: This revision enables -fwarn-tabs by default and add a suppression flag, so that GHC compilation won't fail when some files contain tab characters. Test Plan: Additional test case, T9230, was added to cover that change. Reviewers: austin Reviewed By: austin Subscribers: simonmar, ezyang, carter, thomie, mlen Differential Revision: https://phabricator.haskell.org/D255 GHC Trac Issues: #9230 Conflicts: testsuite/driver/testlib.py
* Remove RAWCPP_FLAGSThomas Miedema2014-10-071-9/+0
| | | | | | | | | | | | | | | | | | | | Summary: #9094 mentions to "remove the RAW_CPP bits from the ghc build system because they're not longer needed", "once the CPP settings ticket is merged #8683" #8683 was merged with 34f7e9a3c99850859901ca74370f55f1d4e2279a, Phab:D26. Test Plan: harbormaster Reviewers: carter, austin Reviewed By: austin Subscribers: simonmar, ezyang, carter Differential Revision: https://phabricator.haskell.org/D240 GHC Trac Issues: #9094
* Implement `MIN_VERSION_GLASGOW_HASKELL()` macroHerbert Valerio Riedel2014-10-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This exposes the `cProjectPatchLevel{1,2}` value at the CPP level to allow it to be used in CPP conditionals. Concretely, GHC 7.10.2.20150623 would result in #define __GLASGOW_HASKELL__ 710 #define __GLASGOW_HASKELL_PATCHLEVEL1__ 2 #define __GLASGOW_HASKELL_PATCHLEVEL2__ 20150623 while GHC 7.10.3 results in #define __GLASGOW_HASKELL__ 710 #define __GLASGOW_HASKELL_PATCHLEVEL1__ 3 and finally GHC 7.9.20141009 results in #define __GLASGOW_HASKELL__ 709 #define __GLASGOW_HASKELL_PATCHLEVEL1__ 20141009 As it's error-prone to properly express CPP conditionals for testing GHC multi-component versions, a new macro `MIN_VERSION_GLASGOW_HASKELL()` is provided (also via the new CPP include file `ghcversion.h`) Finally, in order to make it easier to define the new CPP macro `MIN_VERSION_GLASGOW_HASKELL()`, a new default-included `include/ghcversion.h` is used for the new CPP definitions. Reviewed By: ekmett, austin, #ghc Differential Revision: https://phabricator.haskell.org/D66
* Export `Monoid(..)`/`Foldable(..)`/`Traversable(..)` from PreludeHerbert Valerio Riedel2014-09-211-0/+9
| | | | | | | | | | | | | | | This finally exposes also the methods of these 3 classes in the Prelude in order to allow to define basic class instances w/o needing imports. This almost completes the primary goal of #9586 NOTE: `fold`, `foldl'`, `foldr'`, and `toList` are not exposed yet, as they require upstream fixes for at least `containers` and `bytestring`, and are not required for defining basic instances. Reviewed By: ekmett, austin Differential Revision: https://phabricator.haskell.org/D236
* build.mk.sample: Stage1 needn't be built with -fllvmBen Gamari2014-09-091-2/+2
| | | | | | | | | | | | | | Summary: We can use the native codegen for stage 1 as it is to run on the host platform. Test Plan: Reviewers: Subscribers: GHC Trac Issues:
* Make Applicative a superclass of MonadAustin Seipp2014-09-091-1/+7
| | | | | | | | | | | | | | | | | | | | | Summary: This includes pretty much all the changes needed to make `Applicative` a superclass of `Monad` finally. There's mostly reshuffling in the interests of avoid orphans and boot files, but luckily we can resolve all of them, pretty much. The only catch was that Alternative/MonadPlus also had to go into Prelude to avoid this. As a result, we must update the hsc2hs and haddock submodules. Signed-off-by: Austin Seipp <austin@well-typed.com> Test Plan: Build things, they might not explode horribly. Reviewers: hvr, simonmar Subscribers: simonmar Differential Revision: https://phabricator.haskell.org/D13
* Re-export Word from Prelude (re #9531)Herbert Valerio Riedel2014-08-311-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original proposal text can be found at http://www.haskell.org/pipermail/libraries/2014-August/023491.html The proposal passed with a clear majority, and was additionally confirmed by the core libraries committee. *Compatibility Note* Only code that imports `Data.Word` for the sole purpose of using `Word` *and* requires to be `-Werror`-clean (due to `-fwarn-unused-imports`) is affected by this change. In order to write warning-free forward/backward compatible against `base`, a variant of the following CPP-based snippet can be used: -- Starting with base>4.7.0 or GHC>7.8 Prelude re-exports 'Word' -- The following is needed, if 'Word' is the *only* entity needed from Data.Word #ifdef MIN_VERSION_base # if !MIN_VERSION_base(4,7,1) import Data.Word (Word) # endif -- no cabal_macros.h -- fallback to __GLASGOW_HASKELL__ #elif __GLASGOW_HASKELL__ < 709 import Data.Word (Word) #endif This also updates the haddock submodule in order to avoid a compile warning
* Suppress binary warnings for bootstrapping as well as stage1.Edward Z. Yang2014-08-291-0/+1
| | | | | | | This was missed when we added binary to the list of boot packages. But note: the warnings binary are *legitimate* and really should be fixed! Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
* Revert "disable shared libs on sparc (linux/solaris) (fixes #8857)"Sergei Trofimovich2014-08-271-3/+1
| | | | | | | | | | | | This reverts commit 623883f1ed0ee11cc925c4590fb09565403fd231. The commit a93ab43ab5f40cadbedea2f6342b93c245e91434 driver: pass '-fPIC' option to assembler as well fixes shared libraries on sparc at least on linux. Properly fixes Issue #8857 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Bug #9439: Ensure that stage 0 compiler isn't affectedBen Gamari2014-08-181-0/+3
| | | | | | | | | | | | | | | | Summary: Bug #9439 will cause miscompilation of GHC's LLVM backend. Here we ensure that an affected compiler isn't used to bootstrap. Test Plan: Attempt to bootstrap GHC with an affected stage 0 compiler. Reviewers: rwbarton, austin Reviewed By: austin Subscribers: simonmar, relrod, ezyang, carter Differential Revision: https://phabricator.haskell.org/D159
* Explicitly version test for package key support.Edward Z. Yang2014-08-131-0/+2
| | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
* Don't build or test dph by defaultAustin Seipp2014-08-102-3/+3
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* Add BUILD_DPH variable to GHC build-systemHerbert Valerio Riedel2014-06-292-0/+6
| | | | | | | | | | | | | | | | | | | Now that the `libraries/dph` submodule is checked out always we need a different way to disable building DPH to save compile-time while developing GHC. This commit adds a new YES/NO Make variable `BUILD_DPH` that can be used inside mk/build.mk to control whether to build libraries/dph or not. The default setting is `BUILD_DPH=YES` (via `mk/config.mk.in`). This also changes `validate`'s flag `--no-dph` to explicitly disable DPH for the current validation run. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org> Test Plan: successful validates with `--fast --no-dph` Differential Revision: https://phabricator.haskell.org/D31
* Prevent line wrapping after the dash of an option.Sjoerd Visscher2014-06-061-0/+2
|
* Remove external coreAustin Seipp2014-05-031-19/+0
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* Remove -fno-warn-amp sledgehammers for validateAustin Seipp2014-04-201-2/+0
| | | | | | | | GHC should now fully compliant with respect to the Applicative Monad proposal (including all upstream libraries), and does not need to suppress this warning anymore. Signed-off-by: Austin Seipp <austin@well-typed.com>
* add --with-ar and --with-ranlib configure parametersKarel Gardas2014-03-221-0/+1
| | | | | | | | Both --with-ar and --with-ranlib are usable on non-GNU/Linux systems where GNU tools are usually installed (or possible to install), but not into standard location nor with standard name. Tested on Solaris 10. Signed-off-by: Austin Seipp <austin@well-typed.com>
* config.mk.in: ARM now supports dynamic linking with the LLVM backendBen Gamari2014-03-131-2/+1
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* disable shared libs on sparc (linux/solaris) (fixes #8857)Karel Gardas2014-03-131-1/+3
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* fix SHELL makefile variable to be set by the configure script (fixes #8783)Karel Gardas2014-03-131-1/+1
| | | | | | The patch provided by Christian Maeder <Christian.Maeder@dfki.de> Signed-off-by: Karel Gardas <karel.gardas@centrum.cz> Signed-off-by: Austin Seipp <austin@well-typed.com>
* Fix copy-paste error in build system commentJohan Tibell2014-03-101-2/+2
|
* Add "bench" build flavour to build systemJohan Tibell2014-03-101-0/+64
| | | | | | | This build generates the same code as the "perf" build and is thus good for compiling benchmarks and inspecting the generated code. However, it compiles the stage2 compiler faster at the expense of compiler user programs more slowly.
* binary-dist: when using xz, use extreme compression.Austin Seipp2014-02-281-1/+1
| | | | | | | | | | | | When building a binary distribution with TAR_COMP=xz, using the -9e flag (extremely high compression) results in substantial savings: for the Mavericks builds, bzip2 scores in at about 120mb, while xz at level 9 scores about 60mb - a huge reduction! This of course takes significantly longer - but it does not affect decompression speed for end users, so it's certainly worth it. Signed-off-by: Austin Seipp <austin@well-typed.com>
* Follow-up to 32f41c79Herbert Valerio Riedel2014-02-261-2/+2
| | | | | | | These parts were forgotten to be committed together with the rest of 32f41c79960ffc1d04c4573acb37756109d279a5 Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Make distribution tarball compression format configurableHerbert Valerio Riedel2014-02-261-0/+18
| | | | | | | | | | | | | By default, bzip2 compression is selected (which is what has been used till now). Additionally, by setting the TAR_COMP make variable to one of the values "bzip2", "gzip", or "xz", an explicit compression format can be requested for the distribution tarballs. For instance, invoking make TAR_COMP=xz sdist-ghc will result in a tarball `./sdistprep/ghc-7.9.20140226-src.tar.xz` Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* mk/config.mk.in: lower -O2 optimization down to -O1 on UNREGSergei Trofimovich2014-02-171-0/+10
| | | | | | | | | | | | | Disable -O2 optimization. Otherwise amount of generated C code makes things very slow to compile (~5 minutes on core-i7 for 'compiler/hsSyn/HsExpr.lhs') And sometimes not compile at all (powerpc64 overflows something on 'compiler/hsSyn/HsExpr.lhs'). Issue #8748 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> Signed-off-by: Austin Seipp <austin@well-typed.com>
* Add a perf-cross build setting.Luke Iannini2014-01-301-0/+26
| | | | | | | This is for building performance-optimized cross compilers (e.g. the iOS target.) Signed-off-by: Austin Seipp <austin@well-typed.com>
* build.mk.sample: Don't disable dynamic linking for LLVM flavoursBen Gamari2014-01-271-6/+0
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* Re-enable DYNAMIC_GHC_PROGRAMS for FreeBSD.Gabor Pali2014-01-171-4/+0
| | | | | All actively supported releases (8.4-RELEASE, 9.2-RELEASE and the upcoming 10.0-RELEASE) now support resolution of $ORIGIN properly.
* Disable -dynamic-too on WindowsAustin Seipp2014-01-141-0/+1
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* Add Windows to NoSharedLibsPlatformListAustin Seipp2014-01-131-15/+4
| | | | | | | | | | We're punting on full -dynamic and -dynamic-too support for Windows right now, since it's still unstable. Also, ensure "Support dynamic-too" in `ghc --info` is set to "NO" for Cabal. See issues #7134, #8228, and #5987 Signed-off-by: Austin Seipp <austin@well-typed.com>
* Lower unfolding threshold for windows (again.)Austin Seipp2014-01-071-1/+1
| | | | | | | | We creeped back up again past the symbol threshold on my test x86_64 win2k8 test machine. This brings it down to 60600 symbols in split windows DLL. Signed-off-by: Austin Seipp <austin@well-typed.com>
* Temporarily lower unfolding threshold on WindowsAustin Seipp2013-11-221-0/+14
| | | | | | | | | | | | | | | | | This is a very temporary, very unsatisfactory hack to fix #5987 (for now.) The included comments essentially say it all: we lower the unfolding threshold to minimize some amount of exported symbols from the GHC stage2 DLL. I unfortunately had to lower it quite substantially for the dynamic stage2 build to pass. As of this writing, the DLL split between ghc.dll and ghc-0.dll is something like 26,000 vs 63,000 exported symbols, respectively. So we're still quite in danger of tripping it, but I think we will be OK at this exact moment. Signed-off-by: Austin Seipp <austin@well-typed.com>
* Add build.mk.sample entry for Cross CompilationAustin Seipp2013-10-251-0/+24
| | | | | | | This is suitable e.g. for iOS. Authored-by: Authored-by: Luke Iannini <lukexi@me.com> Signed-off-by: Austin Seipp <austin@well-typed.com>
* Globally replace "hackage.haskell.org" with "ghc.haskell.org"Simon Marlow2013-10-011-2/+2
|
* Implement the AMP warning (#8004)Austin Seipp2013-09-111-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements a warning when definitions conflict with the Applicative-Monad Proposal (AMP), described in #8004. Namely, this will cause a warning iff: * You have an instance of Monad, but not Applicative * You have an instance of MonadPlus, but not Alternative * You locally defined a function named join, <*>, or pure. In GHC 7.10, these warnings will actually be enforced with superclass constraints through changes in base, so programs will fail to compile then. This warning is enabled by default. Unfortunately, not all of our upstream libraries have accepted the appropriate patches. So we temporarily fix ./validate by ignoring the AMP warning. Dan Rosén made an initial implementation of this change, and the remaining work was finished off by David Luposchainsky. I finally made some minor refactorings. Authored-by: Dan Rosén <danr@chalmers.se> Authored-by: David Luposchainsky <dluposchainsky@gmail.com> Signed-off-by: Austin Seipp <austin@well-typed.com>
* Make sure -fcmm-sink is passed to Parser properlyAustin Seipp2013-09-041-0/+2
| | | | | | | | | | | | | | | | | | | Parser.hs needs to be compiled with -fcmm-sink on x86 platforms, so the register allocator doesn't run out of stack slots. Previously, we had to do some CPP hacks in order to emit an #ifdef into the file - this is because we preprocess it once up front, and run the preprocessor again when we compile it. There's two cases: the boostrap compiler is > 7.8, and the stage1 parser needs the flag, or the stage1 compiler is compiling the stage2 Parser.hs, and needs the flag.. The previous approach was super fragile with Clang. The more principled fix is to instead do this through the build system. This fixes #8182. Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Hack-fix build breakage on Linux/GCC from fc4856f9Herbert Valerio Riedel2013-09-041-1/+1
| | | | | | | | For some reason, the new `GccIsClang` variable introduced via fc4856f9e811d9a23ae9212f43a09ddf5ef12b26 for addressing #8148 isn't set explicitly to `NO`; so this simply changes the test `ifeq $(GccIsClang) NO` to `ifneq $(GccIsClang) YES` which should fix the build with and w/o Clang.
* Make validate play nice with clang (for Xcode 5 command line tools)Manuel M T Chakravarty2013-09-042-0/+10
| | | | * This partially fixes #8148. However, --with-ghc-4.8 will still not work given the rather dubious m4 macros and the failures in the test suite due to '-nodefaultlibs' still need to be fixed.
* Patch by lukexi.Gabor Greif2013-09-031-1/+1
| | | | Fixing #8217 for the unix(-like) case.
* Delete trailing whitespace in mk/config.mk.inAustin Seipp2013-08-241-12/+12
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Add support for iOS simulator (issue #8152).Austin Seipp2013-08-241-2/+2
| | | | | | | | The iOS simulator is essentially an iOS target but for an x86 machine instead. It doesn't support the native code generator either, though. Authored-by: Stephen Blackheath <...@blacksapphire.com> Signed-off-by: Austin Seipp <aseipp@pobox.com>
* iOS: generate archive files when compiling.Austin Seipp2013-08-141-5/+5
| | | | | | | | | | | When cross compiling to iOS, we generate archive files which are linked into the final executable. We already *did* generate archive files - just with the wrong suffix. Fixes #8125. Authored-by: Stephen Blackheath <...@blacksapphire.com> Signed-off-by: Austin Seipp <aseipp@pobox.com>
* mk/config.mk.in : Add powerpc-unknown-linux to NoSharedLibsPlatformList.Erik de Castro Lopo2013-08-051-1/+1
| | | | | Dynamic libraries on powerpc linux are currently broken. See: http://hackage.haskell.org/trac/ghc/ticket/8024
* Merge branch 'master' of http://darcs.haskell.org/ghcIan Lynagh2013-07-031-4/+0
|\