- 23 Jun, 2017 5 commits
-
-
Matthew Pickering authored
The naughty record selector check means to limit selectors which would lead to existential tyvars escaping their scope. With record pattern synonyms, there are situations where universal tyvars don't appear in the result type, for example: ``` pattern ReadP :: Read a => a -> String pattern ReadP{readp} <- (read -> readp) ``` This is a similar issue to #11224 where we assumed that we can decide which variables are universal and which are existential by the syntactic check of seeing which appear in the result type. The fix is to use `univ_tvs` from `conLikeFullSig` rather than the previous approximation. But we must also remember to apply `EqSpec`s so we use the free variables from `inst_tys` which is precisely `univ_tvs` with `EqSpecs` applied. Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3649
-
Ryan Scott authored
Using Template Haskell, one can construct lambda expressions with no arguments. The pretty-printer isn't aware of this fact, however. This changes that. Test Plan: make test TEST=T13856 Reviewers: bgamari, austin, goldfire Reviewed By: bgamari Subscribers: rwbarton, thomie GHC Trac Issues: #13856 Differential Revision: https://phabricator.haskell.org/D3664
-
Ryan Scott authored
We have `infixl 9 !!` for `Data.List.!!`, but not for `Data.List.NonEmpty.!!`. We ought to. Test Plan: Read it Reviewers: bgamari, austin, hvr Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3666
-
Ben Gamari authored
The other-modules field listed things that weren't in fact modules, causing this test to fail. See Cabal #4567. Test Plan: Validate Reviewers: hvr, austin Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3665
-
Ben Gamari authored
Test Plan: Load program with StaticPointers into GHCi, ensure no tracing output makes it in. Reviewers: austin Subscribers: rwbarton, thomie, RyanGlScott GHC Trac Issues: #12356 Differential Revision: https://phabricator.haskell.org/D3663
-
- 22 Jun, 2017 2 commits
-
-
Sergei Trofimovich authored
Noticed when was building UNREG ghc with -optc{-Wall,-Werror}: rts/sm/Storage.c:1359:3: error: error: implicit declaration of function '__clear_cache' [-Werror=implicit-function-declaration] __clear_cache((void*)begin, (void*)end); ^~~~~~~~~~~~~ | 1359 | __clear_cache((void*)begin, (void*)end); | ^ Left direct '__clear_cache' usage gcc toolchain before 4.4. Signed-off-by:
Sergei Trofimovich <slyfox@gentoo.org>
-
Benjamin Kovach authored
-
- 21 Jun, 2017 7 commits
-
-
Ben Gamari authored
This reverts commit d1d3e984.
-
Ben Gamari authored
-
Sergei Trofimovich authored
This reverts commit 6dd1257f. Change fails vaildation: rts/sm/Storage.c:1351:20: error: error: ‘gcc_clear_cache’ defined but not used [-Werror=unused-function] STATIC_INLINE void gcc_clear_cache(void * begin, void * end)
-
carlostome authored
Reviewers: austin, bgamari, goldfire Reviewed By: bgamari Subscribers: rwbarton, thomie GHC Trac Issues: #13782 Differential Revision: https://phabricator.haskell.org/D3641
-
bitonic authored
Reviewers: bgamari, austin, simonmar Reviewed By: bgamari Subscribers: mpickering, rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3651
-
Ben Gamari authored
Reviewers: dfeuer, austin, hvr Reviewed By: dfeuer Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3660
-
Sergei Trofimovich authored
Noticed when was building UNREG ghc with -optc{-Wall,-Werror}: rts/sm/Storage.c:1359:3: error: error: implicit declaration of function '__clear_cache' [-Werror=implicit-function-declaration] __clear_cache((void*)begin, (void*)end); ^~~~~~~~~~~~~ | 1359 | __clear_cache((void*)begin, (void*)end); | ^ Signed-off-by:
Sergei Trofimovich <slyfox@gentoo.org>
-
- 20 Jun, 2017 1 commit
-
-
Gabor Greif authored
-
- 19 Jun, 2017 12 commits
-
-
Simon Peyton Jones authored
See Trac #13827.
-
erdeszt authored
-
Andrew Martin authored
-
Michal Terepeta authored
This tries to be more precise when generating reloads of local registers in proc points. Previously we'd reload all local registers that were live. But we used liveness information that assumed local registers survive native calls. For the purpose of reloading registers this is an overapproximation and might lead to generating huge amounts of unnecessary reloads (in case there's another proc point before the register is used). This change takes the approach of moving the generation of reloads to a second pass over the Cmm, which allows to recompute the liveness and can use the knowledge that local registers do *not* survive calls. This leads to generating only useful reloads. For an extreme example where this helps a lot please see T3294. This should also fix #7198 Finally, this re-introduces the code to do Cmm rewriting using in `Dataflow` module (with the difference that we know operate on a whole block at a time). Signed-off-by:
Michal Terepeta <michal.terepeta@gmail.com> Reviewers: austin, bgamari, simonmar Reviewed By: simonmar Subscribers: kavon, rwbarton, thomie GHC Trac Issues: #7198 Differential Revision: https://phabricator.haskell.org/D3586
-
Ben Gamari authored
deriveConstants requires objdump for both of these operating systems, in addition to Windows. See #13812. Test Plan: Validate on OpenBSD and AIX Reviewers: hvr, austin Reviewed By: hvr Subscribers: rwbarton, thomie, erikd GHC Trac Issues: #13812 Differential Revision: https://phabricator.haskell.org/D3638
-
Douglas Wilson authored
Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie GHC Trac Issues: #13821 Differential Revision: https://phabricator.haskell.org/D3642
-
David Feuer authored
The `Fingerprint` type is not exported from any "public" module. It therefore seems quite strange that `Type.Reflection` exports functions for extracting fingerprints. Remove those exports. If fingerprints are eventually considered public, this can be reconsidered. Reviewers: austin, hvr, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3643
-
Sylvain Henry authored
Test Plan: validate Reviewers: austin, bgamari, erikd, simonmar Reviewed By: bgamari, simonmar Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3648
-
David Feuer authored
This is not the most precise test, unfortunately, but it does demonstrate a modest improvement in compiler residency as a result of the specializer don't-loop patch. A rather less realistic variation on this has somewhat more dramatic effects. Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3656
-
Ryan Scott authored
We have one for `(:~:)`, but not for `(:~~:)`! Let's fix this oversight. Reviewers: bgamari, austin, hvr Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3657
-
Ben Gamari authored
Reviewers: austin Subscribers: rwbarton, thomie GHC Trac Issues: #13822 Differential Revision: https://phabricator.haskell.org/D3655
-
Ben Gamari authored
-
- 18 Jun, 2017 4 commits
-
-
Ben Gamari authored
The Haskell wrapper already checks this but we should also check it in the RTS to catch non-Haskell callers. See #13832.
-
Ryan Scott authored
-
Ryan Scott authored
Summary: This amounts to using `exactTyCoVarsOfType` instead of `tyCoVarsOfType` in the right place. I also fixed a similar issue for `-XDatatypeContexts` while I was in town (but couldn't be bothered to add a test for it). Test Plan: make test TEST=T13813 Reviewers: austin, bgamari, simonpj Reviewed By: simonpj Subscribers: simonpj, rwbarton, thomie GHC Trac Issues: #13813 Differential Revision: https://phabricator.haskell.org/D3635
-
Ryan Scott authored
s/tyVarsOfType/tyCoFVsOfType/g
-
- 17 Jun, 2017 1 commit
-
-
Tamar Christina authored
Summary: This patch drops the GCC driver and instead moves the only remaining path that we need to keep for backwards compatibility to the settings file. It also generalizes the code that expands `$TopDir` so it can expand it within any location in the string and also changes it so `$TopDir` is expanded only after the words call because `$TopDir` can contains spaces which would be horribly broken. Test Plan: ./validate Reviewers: austin, hvr, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie, erikd GHC Trac Issues: #13709 Differential Revision: https://phabricator.haskell.org/D3592
-
- 16 Jun, 2017 3 commits
-
-
Tamar Christina authored
Summary: There are various distros that build GHC using their own C compilers such as MSYS2. Currently they have to patch the build scripts everytime. This patch provides the configure argument `--enable-distro-toolchain` which allows one to build using any C compiler on the path. This is also useful for testing new versions of GCC. Test Plan: ./configure --enable-distro-toolchain && make - && make THREADS=9 test ./validate Reviewers: austin, hvr, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie, erikd, #ghc_windows_task_force GHC Trac Issues: #13792 Differential Revision: https://phabricator.haskell.org/D3637
-
Simon Peyton Jones authored
The IdBindingInfo field of ATcId serves two purposes - to control generalisation when we have -XMonoLocalBinds - to check for floatability when dealing with (static e) These are related, but not the same, and they'd becomme confused. Trac #13804 showed this up via an example like this: f periph = let sr :: forall a. [a] -> [a] sr = if periph then reverse else id sr2 = sr -- The question: is sr2 generalised? -- It should be, because sr has a type sig -- even though it has periph free in (sr2 [True], sr2 "c") Here sr2 should be generalised, despite the free var 'periph' in 'sr' because 'sr' has a closed type signature. I documented all this very carefully this time, in TcRnTypes: Note [Meaning of IdBindingInfo] Note [Bindings with closed types: ClosedTypeId]
-
Ben Gamari authored
Test Plan: validate Reviewers: austin, hvr, erikd, simonmar Subscribers: rwbarton, thomie GHC Trac Issues: #13832 Differential Revision: https://phabricator.haskell.org/D3652
-
- 14 Jun, 2017 2 commits
-
-
niteria authored
Currently GHC exposes the internal details of `ModuleGraph` which inhibits making `ModuleGraph` support faster lookups. Haddock relies on the internal representation by using `map` on `ModuleGraph`. See also https://github.com/haskell/haddock/issues/635 Adding `mapMG` should allow us to make `ModuleGraph` abstract. Test Plan: ./validate Reviewers: simonmar, austin, bgamari, alexbiehl Reviewed By: bgamari, alexbiehl Subscribers: alexbiehl, rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3645
-
Gabor Greif authored
-
- 13 Jun, 2017 1 commit
-
-
Gabor Greif authored
-
- 12 Jun, 2017 2 commits
-
-
sgillespie authored
Previously -w combined with -Wunrecognised-warning-flags would not report unrecognized flags. Reviewers: austin, bgamari, dfeuer Reviewed By: bgamari Subscribers: dfeuer, rwbarton, thomie GHC Trac Issues: #12056 Differential Revision: https://phabricator.haskell.org/D3581
-
David Feuer authored
`coreBindsSize` forced a ton of structure to stop space leaks. Reid Barton has done some work recently to try to stop the leaks at their source instead. Memory residency remains well below the numbers Herbert posted on #13426 originally, but in some cases a ways above the ones from 8.0. I need to figure out how to get the numbers matched up to individual modules and do some profiling. Relates to #13426 Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3606
-