- Oct 02, 2014
-
-
Edward Z. Yang authored
Summary: In preparation for indirecting all references to closures, we rename _closure to _static_closure to ensure any old code will get an undefined symbol error. In order to reference a closure foobar_closure (which is now undefined), you should instead use STATIC_CLOSURE(foobar). For convenience, a number of these old identifiers are macro'd. Across C-- and C (Windows and otherwise), there were differing conventions on whether or not foobar_closure or &foobar_closure was the address of the closure. Now, all foobar_closure references are addresses, and no & is necessary. CHARLIKE/INTLIKE were not changed, simply alpha-renamed. Part of remove HEAP_ALLOCED patch set (#8199) Depends on D265 Signed-off-by:
Edward Z. Yang <ezyang@mit.edu> Test Plan: validate Reviewers: simonmar, austin Subscribers: simonmar, ezyang, carter, thomie Differential Revision: https://phabricator.haskell.org/D267 GHC Trac Issues: #8199
-
Edward Z. Yang authored
Summary: Previously, we assumed all objects declared in C-- were not-static, even ones which were CONSTR_NOCAF_STATIC. This used to be harmless, but now we need this information to be correct. Part of remove HEAP_ALLOCED patch set (#8199) Depends on D264 Signed-off-by:
Edward Z. Yang <ezyang@mit.edu> Test Plan: validate Reviewers: simonmar, austin Subscribers: simonmar, ezyang, carter, thomie Differential Revision: https://phabricator.haskell.org/D265 GHC Trac Issues: #8199
-
Edward Z. Yang authored
Summary: Previously, there were two variants of CLOSURE in C--: - Top-level CLOSURE(foo_closure, foo, lits...), which defines a new static closure and gives it a name, and - Array CLOSURE(foo, lits...), which was used for the static char and integer arrays. They used the same name, were confusing, and didn't even generate the correct internal label representation! So now, we have two new forms: - Top-level CLOSURE(foo, lits...) which automatically generates foo_closure (along with foo_info, which we were doing already) - Array ANONYMOUS_CLOSURE(foo, lits...) which doesn't generate a foo_closure identifier. Part of remove HEAP_ALLOCED patch set (#8199) Signed-off-by:
Edward Z. Yang <ezyang@mit.edu> Test Plan: validate Reviewers: simonmar, austin Subscribers: simonmar, ezyang, carter, thomie Differential Revision: https://phabricator.haskell.org/D264 GHC Trac Issues: #8199
-
Edward Z. Yang authored
Summary: The primary reason for doing this is assisting debuggability: if static closures are all in the same section, they are guaranteed to be adjacent to one another. This will help later when we add some code that takes section start/end and uses this to sanity-check the sections. Part of remove HEAP_ALLOCED patch set (#8199) Signed-off-by:
Edward Z. Yang <ezyang@mit.edu> Test Plan: validate Reviewers: simonmar, austin Subscribers: simonmar, ezyang, carter, thomie Differential Revision: https://phabricator.haskell.org/D263 GHC Trac Issues: #8199
-
Edward Z. Yang authored
Part of remove HEAP_ALLOCED patch set (#8199) Summary: Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: simonmar, austin Subscribers: simonmar, ezyang, carter, thomie Differential Revision: https://phabricator.haskell.org/D262 GHC Trac Issues: #8199
-
- Oct 01, 2014
-
-
Krzysztof Gogolewski authored
Summary: Most of the changes is adaptation of old Python 2 only code. My priority was not breaking Python 2, and so I avoided bigger changes to the driver. In particular, under Python 3 the output is a str and buffering cannot be disabled. To test, define PYTHON=python3 in testsuite/mk/boilerplate.mk. Thanks to aspidites <emarshall85@gmail.com> who provided the initial patch. Test Plan: validate under 2 and 3 Reviewers: hvr, simonmar, thomie, austin Reviewed By: thomie, austin Subscribers: aspidites, thomie, simonmar, ezyang, carter Differential Revision: https://phabricator.haskell.org/D233 GHC Trac Issues: #9184
-
Summary: Using `dropWhileEndLE` tends to be faster and easier to read than the `reverse . dropWhile p . reverse` idiom. This also cleans up some other, nearby, messes. Fix #9616 (incorrect number formatting potentially leading to incorrect numbers in output). Test Plan: Run validate Reviewers: thomie, rwbarton, nomeata, austin Reviewed By: nomeata, austin Subscribers: simonmar, ezyang, carter, thomie Projects: #ghc Differential Revision: https://phabricator.haskell.org/D259 GHC Trac Issues: #9623, #9616 Conflicts: compiler/basicTypes/OccName.lhs
-
Austin Seipp authored
Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
Austin Seipp authored
Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
Austin Seipp authored
Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
Austin Seipp authored
After 23bb9046, these were slightly busted for `c-mode`. Signed-off-by:
Austin Seipp <austin@well-typed.com>
-
kgardas authored
-
Austin Seipp authored
Summary: When we run `./validate`, we are typically given an incredibly large heap of information, a large majority of which isn't really necessary. In particular, we don't really care about what `make` is doing, nor `ghc` itself most of the time. This reduces some of the output by making `./validate` quietier. By running: $ ./validate --quiet you'll enable `V=0` in the build, suppressing compiler messages, and you will suppress `make` commands by running `make` in 'silent mode'. It also runs the testsuite with `VERBOSE=2` to avoid extra lines. This alone makes quite a difference for build log sizes. Furthermore, by making the build logs less verbose, life is easier for systems like Harbormaster and Travis-CI, which dislike dealing with logs that are 10k lines or more. Signed-off-by:
Austin Seipp <austin@well-typed.com> Test Plan: iiam Reviewers: hvr, nomeata, ezyang Reviewed By: ezyang Subscribers: simonmar, ezyang, carter, thomie Projects: #ghc Differential Revision: https://phabricator.haskell.org/D298
-
Closes #9561.
-
analogously to mapM. Fixes #9546.
-
There seem to be various issues with general fold/cons and even cons/build rules, but it seems pretty clear to me that the simple fold/cons/build rule is a good idea. It doesn't do much for nofib allocation, but it seems to improve some other analyses and speed several benchmarks up. Implements #9536.
-
This fixes #9502.
-
This fixes #9355.
-
in order to make its RULES semantics preserving. This fixes #9495.
-
Herbert Valerio Riedel authored
-
Simon Peyton Jones authored
The code is smaller and simpler now. Thanks to Richard for raising the question.
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Joachim Breitner authored
to get David’s code improvements (#9654).
-
- Sep 29, 2014
-
-
Simon Marlow authored
-
Simon Marlow authored
This reverts commit 39b5c1cb.
-
Simon Marlow authored
-
Simon Marlow authored
-
Herbert Valerio Riedel authored
-
- Sep 28, 2014
-
-
Herbert Valerio Riedel authored
This completes the `Foldable` class by two important operations which this way can be optimised for the underlying structure more easily. A minor fix for the `containers` submodule was needed to due name clash Addresses #9621 Reviewed By: ekmett, dfeuer, austin Differential Revision: https://phabricator.haskell.org/D250
-
Herbert Valerio Riedel authored
This was missed in D253 / a07ce165
-
Herbert Valerio Riedel authored
Generalise `when`/`unless`from `Monad` to `Applicative` and `guard` from `MonadPlus` to `Alternative` respectively. This was made possible by the AMP and is somewhat related to #9586 (but generalising in the context of the AMP instead of the FTP) Reviewed By: ekmett, austin Differential Revision: https://phabricator.haskell.org/D253
-
rwbarton authored
The previous fix was incorrectly eta-reduced.
-
- Sep 27, 2014
-
-
Herbert Valerio Riedel authored
This is made possible by the AMP, as we don't need the `WrappedMonad` helper for that anymore. Approved-by:
Edward Kmett <ekmett@gmail.com>
-
Don't export `getUs` and `getUniqueUs`. `UniqSM` has a `MonadUnique` instance: instance MonadUnique UniqSM where getUniqueSupplyM = getUs getUniqueM = getUniqueUs getUniquesM = getUniquesUs Commandline-fu used: git grep -l 'getUs\>' | grep -v compiler/basicTypes/UniqSupply.lhs | xargs sed -i 's/getUs/getUniqueSupplyM/g git grep -l 'getUniqueUs\>' | grep -v combiler/basicTypes/UniqSupply.lhs | xargs sed -i 's/getUniqueUs/getUniqueM/g' Follow up on b522d3a3 Reviewed By: austin, hvr Differential Revision: https://phabricator.haskell.org/D220
-
Herbert Valerio Riedel authored
This also updates a few submodules
-
- Sep 26, 2014
-
-
Herbert Valerio Riedel authored
-
Herbert Valerio Riedel authored
This was done in d94de872 to avoid orphans but since a94dc4c3 moved `Alternative` into GHC.Base, this isn't needed anymore. This is important, as otherwise this would require a non-neglectable amount of `Control.Monad hiding ((<|>), empty)` imports in user code. The Haddock submodule is updated as well Test Plan: partial local ./validate --fast, let Harbormaster doublecheck it Reviewed By: ekmett, austin Differential Revision: https://phabricator.haskell.org/D248
-
Herbert Valerio Riedel authored
-
Simon Peyton Jones authored
-