summaryrefslogtreecommitdiff
path: root/ghc.mk
Commit message (Collapse)AuthorAgeFilesLines
* Support printing `integer-simple` Integers in GHCiAlec Theriault2019-01-161-0/+1
| | | | | | | | | | 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).
* Update `Cabal` submoduleHerbert Valerio Riedel2019-01-141-3/+0
| | | | | | | This also requires adapting `ghc-pkg` to use the new Cabal parsing API as the old ReadP-based one has finally been evicted for good. Hadrian bit finished by: Ben Gamari <ben@smart-cactus.org>
* Fix bindist for ghci libraryZejun Wu2019-01-061-2/+5
| | | | | | | | | | | | | | | | | | | | Summary: https://phabricator.haskell.org/D5169 built libghci for both vanilla way and profiling way. We need to include both in the bindist list so they will be installed. Test Plan: ``` $ grep '^BuildFlavour' mk/build.mk BuildFlavour=perf $ make test_bindist $ grep HSghc-prim bindist-list.uniq ghc-8.7.20190101/libraries/ghc-prim/dist-install/build/HSghc-prim-0.5.3.o ghc-8.7.20190101/libraries/ghc-prim/dist-install/build/HSghc-prim-0.5.3.p_o ghc-8.7.20190101/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3.a ghc-8.7.20190101/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3-ghc8.7.20190101.so ghc-8.7.20190101/libraries/ghc-prim/dist-install/build/libHSghc-prim-0.5.3_p.a ```
* Support the GHCi debugger with -fexternal-interpreterSimon Marlow2018-07-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * All the tests in tests/ghci.debugger now pass with -fexternal-interpreter. These tests are now run with the ghci-ext way in addition to the normal way so we won't break it in the future. * I removed all the unsafeCoerce# calls from RtClosureInspect. Yay! The main changes are: * New messages: GetClosure and Seq. GetClosure is a remote interface to GHC.Exts.Heap.getClosureData, which required Binary instances for various datatypes. Fortunately this wasn't too painful thanks to DeriveGeneric. * No cheating by unsafeCoercing values when printing them. Now we have to turn the Closure representation back into the native representation when printing Int, Float, Double, Integer and Char. Of these, Integer was the most painful - we now have a dependency on integer-gmp due to needing access to the representation. * Fixed a bug in rts/Heap.c - it was bogusly returning stack content as pointers for an AP_STACK closure. Test Plan: * `cd testsuite/tests/ghci.debugger && make` * validate Reviewers: bgamari, patrickdoc, nomeata, angerman, hvr, erikd, goldfire Subscribers: alpmestan, snowleopard, rwbarton, thomie, carter GHC Trac Issues: #13184 Differential Revision: https://phabricator.haskell.org/D4955
* Remove random submoduleBen Gamari2018-07-141-1/+1
| | | | | I believe this was originally introduced to help test DPH, which is now gone.
* Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`Moritz Angermann2018-06-071-6/+7
| | | | | | | | | | | | | | | | | | This is done for consistency. We usually call the package file the same name the folder has. The move into `utils` is done so that we can move the library into `libraries/iserv` and the proxy into `utils/iserv-proxy` and then break the `iserv.cabal` apart. This will make building the cross compiler with TH simpler, because we can build the library and proxy as separate packages. Test Plan: ./validate Reviewers: bgamari, goldfire, erikd Reviewed By: bgamari Subscribers: rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4436
* vectorise: Put it out of its miseryBen Gamari2018-06-021-19/+2
| | | | | | | | | | | | | | | | | | | | | Poor DPH and its vectoriser have long been languishing; sadly it seems there is little chance that the effort will be rekindled. Every few years we discuss what to do with this mass of code and at least once we have agreed that it should be archived on a branch and removed from `master`. Here we do just that, eliminating heaps of dead code in the process. Here we drop the ParallelArrays extension, the vectoriser, and the `vector` and `primitive` submodules. Test Plan: Validate Reviewers: simonpj, simonmar, hvr, goldfire, alanz Reviewed By: simonmar Subscribers: goldfire, rwbarton, thomie, mpickering, carter Differential Revision: https://phabricator.haskell.org/D4761
* Extract hard-coded LLVM opt flags into a fileKavon Farvardin2018-05-301-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | To resolve ticket #11295, I think it makes sense to stop hard-coding the pass sequences used by GHC when compiling with LLVM into the compiler itself. This patchset introduces a companion to the existing `llvm-targets` file called `llvm-passes`. The passes file is a simple association list that holds the default LLVM `opt` pass sequence used by GHC. This allows end users to easily save their favorite optimization flags when compiling with LLVM. The main benefit for ticket #11295 is that when adding a custom pass sequence, it tends to be an extremely long string that would be unsightly in the code. This is essentially part 1 of 2 for ticket #11295. Test Plan: ./validate Reviewers: bgamari, angerman Reviewed By: angerman Subscribers: rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4695
* Add HeapView functionalityPatrick Dougherty2018-05-201-1/+2
| | | | | | | | | | | | | | | | | | | | | This pulls parts of Joachim Breitner's ghc-heap-view library inside GHC. The bits added are the C hooks into the RTS and a basic Haskell wrapper to these C hooks. The main reason for these to be added to GHC proper is that the code needs to be kept in sync with the closure types defined by the RTS. It is expected that the version of HeapView shipped with GHC will always work with that version of GHC and that extra functionality can be layered on top with a library like ghc-heap-view distributed via Hackage. Test Plan: validate Reviewers: simonmar, hvr, nomeata, austin, Phyx, bgamari, erikd Reviewed By: bgamari Subscribers: carter, patrickdoc, tmcgilchrist, rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3055
* Remove MAX_PATH restrictions from RTS, I/O manager and various utilitiesTamar Christina2018-03-311-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This shims out fopen and sopen so that they use modern APIs under the hood along with namespaced paths. This lifts the MAX_PATH restrictions from Haskell programs and makes the new limit ~32k. There are only some slight caveats that have been documented. Some utilities have not been upgraded such as lndir, since all these things are different cabal packages I have been forced to copy the source in different places which is less than ideal. But it's the only way to keep sdist working. Test Plan: ./validate Reviewers: hvr, bgamari, erikd, simonmar Reviewed By: bgamari Subscribers: rwbarton, thomie, carter GHC Trac Issues: #10822 Differential Revision: https://phabricator.haskell.org/D4416
* Revert "Move `iserv` into `utils` and change package nameBen Gamari2018-02-201-7/+6
| | | | | | See Phab:D4377 for the rationale. We will try this again. This reverts commit 7c173b9043f7a9a5da46c5b0cc5fc3b38d1a7019.
* Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv`Moritz Angermann2018-02-151-6/+7
| | | | | | | | | | | | | | | | This is done for consistency. We usually call the package file the same name the folder has. The move into `utils` is done so that we can move the library into `libraries/iserv` and the proxy into `utils/iserv-proxy` and then break the `iserv.cabal` apart. This will make building the cross compiler with TH simpler, because we can build the library and proxy as separate packages. Reviewers: bgamari, simonmar, goldfire, erikd Reviewed By: simonmar Subscribers: tdammers, rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4377
* Don't call alex for Cabal lib during GHC buildTobias Dammers2017-11-271-1/+9
| | | | | | | | | | | | | | | | | | The Cabal library now commits `Lexer.hs` directly to the source tree, so the build step where we'd call alex ourselves to generate that file is no longer necessary, nor will it work. See also: https://ghc.haskell.org/trac/ghc/ticket/14459 Reviewers: bgamari, hvr Reviewed By: bgamari Subscribers: rwbarton, thomie, carter GHC Trac Issues: #14459 Differential Revision: https://phabricator.haskell.org/D4240
* GHC.Prim use virtual-modulesMoritz Angermann2017-11-181-8/+2
| | | | | | | | | | | | | | | Stop the GHC.Prim madness with `virtual-module` support from cabal. Needs https://github.com/haskell/cabal/pull/4875. Bumps submodule libraries/Cabal to include the necessary logic for `virtual-module`. Reviewers: bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D4179
* Revert "Move check-ppr and check-api-annotations to testsuite/utils"Ben Gamari2017-11-021-28/+6
| | | | | | | | Unfortunately this (ironically) ended up breaking bindist testing since we didn't have a package-data.mk. Unfortunately there is no easy way to fix this. This reverts commit 1e9f90af7311c33de0f7f5b7dba594725596d675.
* Move check-ppr and check-api-annotations to testsuite/utilsBen Gamari2017-09-271-6/+28
| | | | | | | | | | | | | | | | | These are needed by the testsuite and consequently must be shipped in the testsuite tarball to ensure that we can test binary distributions. See #13897. Test Plan: Validate Reviewers: austin Subscribers: snowleopard, rwbarton, thomie GHC Trac Issues: #13897 Differential Revision: https://phabricator.haskell.org/D4039
* Remove 'stm' from EXTRA_PACKAGES setHerbert Valerio Riedel2017-09-221-1/+1
| | | | | | | | | | This effectively broke `make sdist`; the surprising thing is that ./validate didn't catch this (and thus the buildbots didn't either). Also, I would have expected `EXTRA_PACKAGES` to be populated by the data in `./packages` which already encodes that information... This is a follow-up to 02ff70563e490d2a7f3141eab7229803c523da57
* Add 'stm' package to the global package databaseHerbert Valerio Riedel2017-09-201-0/+1
| | | | | | | | | | | | | | | | | | This is a preparation for `haskeline` picking up a dependency on `stm` real soon now. See https://github.com/judah/haskeline/pull/61 for details. If we figure out a way to not bundle the libraries depended upon by the GHCi executable in the global package database (see #8919 for the original reason why we had to start bundling terminfo/haskeline in the first place) we can get rid of `stm` again... On the bright side, we were able to avoid uploading new `stm` releases for over two years already, so it shouldn't cause too much trouble if GHC imposes a strong preference on the `stm` package's version (this most likely will mostly affect Linux distributions & similiar). While at it, this also update the stm submodule to include relaxed bounds to allow the upcoming base-4.11 version.
* Clean up opt and llcMoritz Angermann2017-09-061-3/+4
| | | | | | | | | | | | | | | | | | | | | The LLVM backend shells out to LLVMs `opt` and `llc` tools. This clean up introduces a shared data structure to carry the arguments we pass to each tool so that corresponding flags are next to each other. It drops the hard coded data layouts in favor of using `-mtriple` and have LLVM infer them. Furthermore we add `clang` as a proper tool, so we don't rely on assuming that `clang` is called `clang` on the `PATH` when using `clang` as the assembler. Finally this diff also changes the type of `optLevel` from `Int` to `Word`, as we do not have negative optimization levels. Reviewers: erikd, hvr, austin, rwbarton, bgamari, kavon Reviewed By: kavon Subscribers: michalt, Ericson2314, ryantrinkle, dfeuer, carter, simonpj, kavon, simonmar, thomie, erikd, snowleopard Differential Revision: https://phabricator.haskell.org/D3352
* Add gen-dll as replacement for dll-splitTamar Christina2017-08-291-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This tool can be used to generate dll's for any list of object files given to it. It will then repartition them automatically to fit within a dll and generates as many dll's as needed to do this. Cyclic dependencies between these generated dlls are handle automatically so there is no need to tell it how to partition. It is also a lot more general than `dll-split` as it is able to split any package not just `libGHC`. It also uses a trick using GNU style import libraries to hide the splitting from the rest of the pipeline. Which means come linking time you don't need to know which dll contains what symbol or how many split dlls were created. The import libraries are by default created with libtool. However since libtool is BFD based it is very slow. So if present and detected by configure the `genlib` tool from the msys2 project is used. This makes a difference of about ~45 minutes when compiling. To install `genlib` run `pacman -Sy mingw-w64-$(uname -m)-tools-git`. More detailed explaination of the process can be found here https://ghc.haskell.org/trac/ghc/wiki/WindowsDynamicLinking Test Plan: ./validate Reviewers: austin, hvr, bgamari, erikd, simonmar Reviewed By: bgamari Subscribers: snowleopard, rwbarton, thomie, erikd, #ghc_windows_task_force GHC Trac Issues: #5987 Differential Revision: https://phabricator.haskell.org/D3883
* Remove dll-split.Tamar Christina2017-08-291-1/+0
| | | | | | | | | | | | | | | | | | | | This patch removes dll-split from the code base, the reason is dll-split no longer makes any sense. It was designed to split a dll in two, but we now already have many more symbols than would fit inside two dlls. So we need a third one. This means there's no point in having to maintain this list as it'll never work anyway and the solution isn't scalable. Test Plan: ./validate Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie, #ghc_windows_task_force GHC Trac Issues: #5987 Differential Revision: https://phabricator.haskell.org/D3882
* Rip out mkUserGuidePartBen Gamari2017-08-251-16/+2
| | | | | | | | Reviewers: austin, hvr Subscribers: rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D3886
* Move validate cleaning from distclean to cleanDouglas Wilson2017-08-221-3/+2
| | | | | | | | | | | | | | | | | This bit me today: I was in validate mode without realising it and "make clean" didn't help. I don't see a reason for this to be in distclean, as it isn't generated by ./configure, which is the rule described in https://ghc.haskell.org/trac/ghc/wiki/Building/Using Test Plan: Is there a reason for this to be in distclean? Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3814
* Enable building Cabal with parsecHerbert Valerio Riedel2017-08-011-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Cabal's parser has been rewritten in terms of Parsec (which is not enabled yet in Cabal-2.0 by default, but can be enabled by a cabal flag). The plan for Cabal is to drop support for the non-parsec parser, so we need to prepare GHC to cope with new situation. However, this means that lib:Cabal requires three new library dependency submodules, - parsec - text - mtl What complicates matters is that we need to build `ghc-cabal` early on during the bootstrap phase which currently needs to invoke `ghc --make` directly. So these additional dependencies need to be integrated into the monolithic `ghc --make` invocation which produces the `ghc-cabal` executable. Test Plan: `./validate --fast` passed Reviewers: austin, bgamari Subscribers: erikd, phadej, rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3757
* build system: Ensure there are no duplicate files in bindist listBen Gamari2017-07-201-1/+3
| | | | | | | | | | | | | | | | | | | Several executables inexplicably appear twice in bindist.list, which ends up producing multiple tar file entries, consequently breaking BSD tar during extraction. I spent a fair amount of time trying to work out where these duplicates were coming from to no avail. Since Hadrian is right around the corner I'm satisfied with a terrible hack: just uniq bindist.list before producing the bindist tarball. Test Plan: Validate Reviewers: austin Subscribers: rwbarton, thomie GHC Trac Issues: #13979, #13974 Differential Revision: https://phabricator.haskell.org/D3767
* Hoopl: remove dependency on Hoopl packageMichal Terepeta2017-06-231-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This copies the subset of Hoopl's functionality needed by GHC to `cmm/Hoopl` and removes the dependency on the Hoopl package. The main motivation for this change is the confusing/noisy interface between GHC and Hoopl: - Hoopl has `Label` which is GHC's `BlockId` but different than GHC's `CLabel` - Hoopl has `Unique` which is different than GHC's `Unique` - Hoopl has `Unique{Map,Set}` which are different than GHC's `Uniq{FM,Set}` - GHC has its own specialized copy of `Dataflow`, so `cmm/Hoopl` is needed just to filter the exposed functions (filter out some of the Hoopl's and add the GHC ones) With this change, we'll be able to simplify this significantly. It'll also be much easier to do invasive changes (Hoopl is a public package on Hackage with users that depend on the current behavior) This should introduce no changes in functionality - it merely copies the relevant code. Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com> Test Plan: ./validate Reviewers: austin, bgamari, simonmar Reviewed By: bgamari, simonmar Subscribers: simonpj, kavon, rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3616
* ghc.mk: Ensure that ghc-pkg path is quotedBen Gamari2017-06-021-1/+1
| | | | | | | | | | | | | Otherwise this will fail if the prefix path contains spaces. Thanks to marinelli for pointing this out. Test Plan: Validate Reviewers: austin Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3604
* ghc.mk: rename installed ghc-stage1 on non-windowsSergei Trofimovich2017-05-231-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When user installs _native_ build ghc executable is renamed from '$(libexec)/bin/ghc-stage<N>' to '$(libexec)/bin/ghc'. But not on windows! In case of _cross-compiler_ rename should happen only for '$(libexec)/bin/ghc-stage<N>' runnable on non-windows platform. Before the change '$(libexec)/bin/ghc-stage<N>' rename happened for any compiler not targeting windows. After the patch rename also happens for '$(libexec)/bin/ghc-stage1' cross-compiler built for linux targeting windows (Stage1Only=YES case). Or on a concrete example: # host is x86_64-pc-linux-gnu $ ./configure --target=i686-w64-mingw32 $ make install Stage1Only=YES Before the change the layout was: - '$(libexec)/bin/ghc-stage1' was installed - bin/ghc contained 'exec $(libexec)/bin/ghc' # missing file! After the change: - '$(libexec)/bin/ghc' was installed - bin/ghc contained 'exec $(libexec)/bin/ghc' # present file Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Ensure package.cache is newer than registration files after make installBen Gamari2017-05-221-0/+4
| | | | | | | | | | | | | | | | | Rebuild package.cache to ensure that it's newer than the package database registration files, avoiding out-of-date cache warnings from ghc-pkg. See #13375. Test Plan: `make install`, run `ghc-pkg list`, look for out-of-date cache warning Reviewers: austin Subscribers: rwbarton, thomie GHC Trac Issues: #13375 Differential Revision: https://phabricator.haskell.org/D3569
* Guard yet another /bin/sh `for in` loop against empty varsHerbert Valerio Riedel2017-04-241-0/+2
| | | | | This is a follow-up to df6794035f1e4397d89896f329525e5368b7d1cc which missed `INSTALL_BINS`
* Disable terminfo, if we don’t build it.Moritz Angermann2017-04-241-0/+3
| | | | | | | | | | | | | | | This is a derivation of a patch from @jophish. This is necessary due to `haskeline`'s `terminfo` flag being marked as `Manual` as of 43d7fa106027fcd4ec7f443923a8dd5b8c169f9c. Reviewers: jophish, bgamari, austin Reviewed By: bgamari Subscribers: rwbarton, thomie, jophish Differential Revision: https://phabricator.haskell.org/D3493
* ghc.mk: fix 'make install' for cross-mingw32Sergei Trofimovich2017-04-231-1/+1
| | | | | | | | | | | | | | | | Attempt to install cross-compiled mingw32 GHC built on linux failed as: $ make install DESTDIR=$(pwd)/__i__ "mv" "$(pwd)/__i__/usr/local/lib/ghc-8.3.20170422/bin/ghc-stage2" \ "$(pwd)/__i__/usr/local/lib/ghc-8.3.20170422/bin/ghc" mv: failed to stat '$(pwd)/__i__/usr/local/lib/ghc-8.3.20170422/bin/ghc-stage2': \ No such file or directory The rename should not be performed for windows targets. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Build system: fix bindist for cross-build GHCFangrui Song2017-04-211-1/+1
| | | | | | | | | | | | The change fixes case of installing cross-built GHC from bindist (BINDIST=YES) on TARGET. In this case we need to use TARGET tools in `INSTALLED_GHC{,_PKG}_REAL`. The original change is provided by Fangrui Song as pull request https://github.com/ghc/ghc/pull/34 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* fix 'make install' for cross-stage2Sergei Trofimovich2017-04-081-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When cross-built GHC is being installed one of latest steps is to register installed libraries with 'ghc-pkg'. GHC uses freshly installed 'ghc-pkg' and 'ghc-stage2' for that. Tested as: ./configure --target=aarch64-unknown-linux-gnu make install DESTDIR=$(pwd)/__s2 STRIP_CMD=: Before the change install failed on ghc-pkg execution phase: ".../ghc-cross/__s2/usr/local/lib/ghc-8.3.20170406/bin/ghc-pkg" \ --force \ --global-package-db \ ".../ghc-cross/__s2/usr/local/lib/ghc-8.3.20170406/package.conf.d" \ update rts/dist/package.conf.install /bin/sh: .../ghc-cross/__s2/usr/local/lib/ghc-8.3.20170406/bin/ghc-pkg: \ No such file or directory To avoid breakage we use 'ghc' and 'ghc-pkg' built by stage0. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> Test Plan: run 'make install' on stage2 crosscompiler Reviewers: rwbarton, austin, bgamari Subscribers: thomie, snowleopard Differential Revision: https://phabricator.haskell.org/D3432
* Again disable stage0 terminfo on WindowsBen Gamari2017-02-281-0/+2
| | | | This accidentally regressed in D3177.
* Add flag allowing convenient disabling of terminfo supportBen Gamari2017-02-281-3/+1
| | | | | | | | | | | | | This is a common thing that users who cross-compile must fight against. It turns out that it's pretty straightforward to make is convenient. Test Plan: Cross compile without a target `ncurses` available Reviewers: danharaj, hvr, erikd, austin, rwbarton Subscribers: rwbarton, thomie, snowleopard Differential Revision: https://phabricator.haskell.org/D3177
* build system: Persist CrossCompiling in binary distributionsBen Gamari2017-02-261-0/+18
| | | | | | | | | | | | | | | | | | | | The build system uses the CrossCompiling variable to decide whether or not we should build various packages that must be built using the compiler. Consequently, it is important that we persist its value in the binary distribution so we know during `make install` not to go looking for files that would have been built for these packages. Failing to do this causes #13325. Test Plan: Cross compile, `make binary-dist`, and try installing the binary distribution on the target Reviewers: hvr, austin, trofi, rwbarton Reviewed By: trofi, rwbarton Subscribers: carter, trofi, rwbarton, erikd, thomie, snowleopard, davean Differential Revision: https://phabricator.haskell.org/D3187
* Rename compact to ghc-compact.Edward Z. Yang2017-02-261-1/+1
| | | | | | | | | | | | | | | | | Summary: The plan is to release a separate library, 'compact', which gives a friendly user-facing interface. This library is just enough so that we can make sure the functionality is working in GHC. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: bgamari, dfeuer, austin, simonmar, hvr Subscribers: thomie, erikd, snowleopard Differential Revision: https://phabricator.haskell.org/D3206
* Allow use of the external interpreter in stage1.Shea Levy2016-12-201-1/+4
| | | | | | | | | | | | | | | | | | | Summary: Now that we have -fexternal-interpreter, we can lose most of the GHCI ifdefs. This was originally added in https://phabricator.haskell.org/D2826 but that led to a compatibility issue with ghc 7.10.x on Windows. That's fixed here and the revert reverted. Reviewers: goldfire, hvr, austin, bgamari, Phyx Reviewed By: Phyx Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2884 GHC Trac Issues: #13008
* Revert "Allow use of the external interpreter in stage1."Tamar Christina2016-12-191-4/+1
| | | | This reverts commit 52ba9470a7e85d025dc84a6789aa809cdd68b566.
* Allow use of the external interpreter in stage1.Shea Levy2016-12-171-1/+4
| | | | | | | | | | | | Now that we have -fexternal-interpreter, we can lose most of the GHCI ifdefs. Reviewers: simonmar, goldfire, austin, hvr, bgamari Reviewed By: simonmar Subscribers: RyanGlScott, mpickering, angerman, thomie Differential Revision: https://phabricator.haskell.org/D2826
* Build terminfo on iOS.Shea Levy2016-12-151-4/+0
| | | | | | | | | | Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2830
* Add HsSyn prettyprinter testsAlan Zimmerman2016-12-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Add prettyprinter tests, which take a file, parse it, pretty print it, re-parse the pretty printed version and then compare the original and new ASTs (ignoring locations) Updates haddock submodule to match the AST changes. There are three issues outstanding 1. Extra parens around a context are not reproduced. This will require an AST change and will be done in a separate patch. 2. Currently if an `HsTickPragma` is found, this is not pretty-printed, to prevent noise in the output. I am not sure what the desired behaviour in this case is, so have left it as before. Test Ppr047 is marked as expected fail for this. 3. Apart from in a context, the ParsedSource AST keeps all the parens from the original source. Something is happening in the renamer to remove the parens around visible type application, causing T12530 to fail, as the dumped splice decl is after the renamer. This needs to be fixed by keeping the parens, but I do not know where they are being removed. I have amended the test to pass, by removing the parens in the expected output. Test Plan: ./validate Reviewers: goldfire, mpickering, simonpj, bgamari, austin Reviewed By: simonpj, bgamari Subscribers: simonpj, goldfire, thomie, mpickering Differential Revision: https://phabricator.haskell.org/D2752 GHC Trac Issues: #3384
* Fix doc build inconsistencyHarendra Kumar2016-08-251-0/+1
| | | | | | | | | | | | | | Remove the doc targets completely not partially when disabled. Otherwise even though we are able to build the targets but we will see some strange errors. Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2470
* Compact RegionsGiovanni Campagna2016-07-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This brings in initial support for compact regions, as described in the ICFP 2015 paper "Efficient Communication and Collection with Compact Normal Forms" (Edward Z. Yang et.al.) and implemented by Giovanni Campagna. Some things may change before the 8.2 release, but I (Simon M.) wanted to get the main patch committed so that we can iterate. What documentation there is is in the Data.Compact module in the new compact package. We'll need to extend and polish the documentation before the release. Test Plan: validate (new test cases included) Reviewers: ezyang, simonmar, hvr, bgamari, austin Subscribers: vikraman, Yuras, RyanGlScott, qnikst, mboes, facundominguez, rrnewton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D1264 GHC Trac Issues: #11493
* Move Extension type to ghc-boot-thBen Gamari2016-05-161-1/+2
| | | | | | | | | | | | | | | | | | | | This creates a new package, `ghc-boot-th`, to contain the `Extension` type, which now lives in `GHC.LanguageExtension.Type`. This ensures that the transitive dependency set of the `template-haskell` package remains minimal. The `GHC.LanguageExtensions.Type` module is also re-exported by `ghc-boot`, which provides an orphan `binary` instance as well. Test Plan: Validate Reviewers: goldfire, thomie, hvr, austin Reviewed By: thomie Subscribers: RyanGlScott, thomie, erikd, ezyang Differential Revision: https://phabricator.haskell.org/D2224
* Fix installation of static sphinx assetsBen Gamari2016-04-071-7/+1
| | | | | Previously the `_static` and `_sources` directories were installed in the wrong parents. See #11803
* Unset GREP_OPTIONS in build systemBen Gamari2016-02-091-1/+1
| | | | | | | | | | | | Test Plan: GREP_OPTIONS=--blah ./validate Reviewers: austin, thomie Reviewed By: thomie Differential Revision: https://phabricator.haskell.org/D1887 GHC Trac Issues: #11530
* Early error when crosscompiling + haddock/docsThomas Miedema2016-02-091-4/+19
| | | | | | | | | | | | | | | | | | | | When CrossCompiling=YES or Stage1Only=YES, building the haddocks and the User's Guide should be skipped, because haddock and mkUserGuidePart depend on the GHC API. See Note [No stage2 packages when CrossCompiling or Stage1Only] for details. There are several places in the build system where the variables HADDOCK_DOCS and BUILD_SPHINX_* are checked. Instead of also checking for the variables CrossCompiling or Stage1Only in all those places, `make` will now exit with a nice error message when the user requests the impossible. Reviewers: rwbarton, austin, bgamari Reviewed By: bgamari Differential Revision: https://phabricator.haskell.org/D1882
* Enable RemoteGHCi on WindowsTamar Christina2016-01-271-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes the needed changes to make RemoteGHCi work on Windows. The approach passes OS Handles areound instead of the Posix Fd as on Linux. The reason is that I could not find any real documentation about the behaviour of Windows w.r.t inheritance and Posix FDs. The implementation with Fd did not seem to be able to find the Fd in the child process. Instead I'm using the much better documented approach of passing inheriting handles. This requires a small modification to the `process` library. https://github.com/haskell/process/pull/52 Test Plan: ./validate On Windows x86_64 Reviewers: thomie, erikd, bgamari, simonmar, austin, hvr Reviewed By: simonmar Subscribers: #ghc_windows_task_force Differential Revision: https://phabricator.haskell.org/D1836 GHC Trac Issues: #11100