- 14 Apr, 2015 8 commits
-
-
Simon Peyton Jones authored
Trac #10218 reports a subtle bug that turned out to be: - CSE invalidated the usage information computed by earlier demand analysis, by increasing sharing - that made a single-entry thunk into a multi-entry thunk - and with -feager-blackholing, that led to <<loop>> The patch fixes it by making the CSE pass zap usage information for let-bound identifiers. It can be restored by -flate-dmd-anal. (But making -flate-dmd-anal the default needs some careful work; see Trac #7782.)
-
Alan Zimmerman authored
The opt_sig production is defined as opt_sig :: { ([AddAnn],Maybe (LHsType RdrName)) } : {- empty -} { ([],Nothing) } | '::' sigtype { ([mj AnnDcolon $1],Just $2) } It is used in the alt and decl_no_th productions, but neither of them add the returned annotations. This commit captures the annotations in the calling productions. Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D822 GHC Trac Issues: #10254
-
Alan Zimmerman authored
The `guardquals1` production includes : guardquals1 ',' qual {% addAnnotation (gl $ last $ unLoc $1) AnnComma (gl $2) >> return (sLL $1 $> ($3 : unLoc $1)) } The AnnComma should be attached to `(gl $ head $ unLoc $1)`, rather than `last`. Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D818 GHC Trac Issues: #10256
-
Alan Zimmerman authored
The production for opt_kind_sig is opt_kind_sig :: { Located (Maybe (LHsKind RdrName)) } : { noLoc Nothing } | '::' kind {% ajl (sLL $1 $> (Just $2)) AnnDcolon (gl $1) } The outer Location is used only to get the full span for the enclosing declration, and is then stripped. The inner LHsKind then has a SrcSpan that does not include the '::' Extend the SrcSpan on $2 to include $1 Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D813 GHC Trac Issues: #10209
-
Luite Stegeman authored
Reviewed By: edsko, austin Differential Revision: https://phabricator.haskell.org/D824 GHC Trac Issues: #10232
-
Herbert Valerio Riedel authored
Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D827
-
Herbert Valerio Riedel authored
Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D830
-
Austin Seipp authored
GHC build system have custom autoconf check for `create_timer()` function from librt. Check description says that it checks for `CLOCK_REALTIME` timer, but checking code also checks for `CLOCK_PROCESS_CPUTIME_ID` timer, which is not commonly present (for example, FreeBSD doesn't have it). This makes whole check fail despite the fact that FreeBSD have `create_timer()` call and supports `CLOCK_REALTIME`. As a consequence, GHC RTS falls back to using SIGALRM for its timing machinery. Not only it's very ancient codepath, it also break some FFI bindings to C code that isn't prepared for syscall interruption caused by SIGALRM delivery. Grepping through ghc source code reveals that `USE_TIMER_CREATE` defininition in the config.h doesn't imply having `CLOCK_PROCESS_CPUTIME_ID`. The only place where `CLOCK_PROCESS_CPUTIME_ID` is used is rts/posix/GetTime.c and this code handles the absence of `CLOCK_PROCESS_CPUTIME_ID` gracefully. This patch makes autoconf checking code to check only for `timer_create(CLOCK_REALTIME, ...)` and fixes check description. Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D831
-
- 10 Apr, 2015 2 commits
-
-
Erik de Castro Lopo authored
* distrib/configure.ac.in : Detect correct version of LLVM tools as was done for the top level configure.ac in 42448e37. * aclocal.m4 : Add a FIND_LD macro that can be used in both configure scripts. * Use new FIND_LD macro in both configure scripts. Signed-off-by:
Erik de Castro Lopo <erikd@mega-nerd.com> Test Plan: validate on amd64-linux and armhf-linux. Reviewers: rwbarton, austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D828 GHC Trac Issues: #10234
-
Gabor Greif authored
-
- 09 Apr, 2015 5 commits
-
-
Simon Peyton Jones authored
Note [Bind new Givens immediately] in TcRnTypes We were never using the generality. Result: less code, more efficient. Cake for everyone.
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
rwbarton authored
Summary: Android has no rand symbol (it's a static inline function there). Test Plan: ghc-android builds Reviewers: trofi, austin, hvr Reviewed By: hvr Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D826 GHC Trac Issues: #10274
-
- 08 Apr, 2015 2 commits
-
-
Dave Laing authored
Test Plan: validate Reviewers: austin, ezyang, erikd, rwbarton Reviewed By: ezyang, erikd, rwbarton Subscribers: erikd, thomie Differential Revision: https://phabricator.haskell.org/D821 GHC Trac Issues: #10265
-
Simon Peyton Jones authored
-
- 07 Apr, 2015 23 commits
-
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
Edward Z. Yang authored
Summary: We're getting rid of -sig-of foo:A usage, because it doesn't make sense in any compilation mode besides one-shot, and we don't expect users to use it anyway. Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: simonpj, austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D789
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu>
-
Edward Z. Yang authored
Summary: A common pattern when programming with signatures is to combine multiple signatures together (signature linking). We achieve this by making it not-an-error to have multiple, distinct interface files for the same module name, as long as they have the same backing implementation. When a user imports a module name, they get ALL matching signatures dumped into their scope. On the way, I refactored the module finder code, which now distinguishes between exact finds (when you had a 'Module') and regular finds (when you had a 'ModuleName'). I also refactored the package finder code to use a Monoid instance on LookupResult to collect together various results. ToDo: At the moment, if a signature is declared in the local package, it completely overrides any remote signatures. Eventually, we'll want to also pull in the remote signatures (or even override the local signature, if the full implementation is available.) There are bunch of ToDos in the code for what to do once this is done. ToDo: At the moment, whenever a module name lookup occurs in GHCi and we would have seen a signature, we instead continue and return the Module for the backing implementation. This is correct for most cases, but there might be some situations where we want something a little more fine-grained (e.g. :browse should only list identifiers which are available through the in-scope signatures, and not ALL of them.) Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: simonpj, hvr, austin Subscribers: carter, thomie Differential Revision: https://phabricator.haskell.org/D790 GHC Trac Issues: #9252
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
..due to suppressing base-package module names. Needs a submodule update on array.
-
Simon Peyton Jones authored
-
Alan Zimmerman authored
This diff depends on D803. Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D806 GHC Trac Issues: #10214
-
Alan Zimmerman authored
Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D803 GHC Trac Issues: #10207
-
Edward Z. Yang authored
Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu> Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D802
-
Sergei Trofimovich authored
The patch is a last major piece to make unregisterised GHC build under GCC's link-time optimizer. Before the patch we imported everything external as functions. Now we distinct between global variables and functions. The difference is crucial on ia64 and a complement to fixes: > d82f5925 > CMM: add a mechanism to import C .data labels > e18525fa > pprC: declare extern cmm primitives as functions, not data Signed-off-by:
Sergei Trofimovich <siarheit@google.com> Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D797
-
Peter Trommler authored
In commit 3f30912f an include `ghcconfig.h` was added for `WORDS_BIGENDIAN`. Converting the floating point array to a `Word64` array avoids using the preprocessor altogether and leads to smaller code. Fixes #10239 Reviewed By: rwbarton, austin Differential Revision: https://phabricator.haskell.org/D795 GHC Trac Issues: #10239
-
Simon Peyton Jones authored
This fixes Trac #10194
-
Simon Peyton Jones authored
This fixes Trac #10195 For some reason we considered untouchability before, but Trac #10195 shows that this is positively worng. See Note [Instance and Given overlap] in TcInteract. Looking at the Git log, it seems that this bug was introduced at the same time that we introduced the Given/Wanted overlap check in the first place.
-
Simon Peyton Jones authored
Cosmetic consistency only
-
Simon Peyton Jones authored
We were erroneously quantifying over the function when it had a dictionary type. A bit pathological, but possible. This fixes Trac #10251
-
Simon Peyton Jones authored
This fixes Trac #10233
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
The change is in HscTypes.mkPrintUnqualified, and suppresses the module qualifier on Names from ghc-prim, base, and template-haskell, where no ambiguity can aries. It's somewhat arbitrary, but helps with things like 'Constraint' which are often not in scope, but occasionally show up in error messages.
-
Simon Peyton Jones authored
This patch fixes Trac #10148, an outright and egregious bug in the demand analyser. It is explained in Note [Demand on case-alternative binders] in Demand.hs. I did some other minor refactoring. To my astonishment I got some big compiler perf changes * perf/compiler/T5837: bytes allocated -76% * perf/compiler/T5030: bytes allocated -10% * perf/compiler/T3294: max bytes used -25% Happy days
-
whisky authored
``` chmod 664 $PATH_TO_GHCI_CONF/.ghci ``` Run ghci. You will now get a warning + a suggestion: ``` *** WARNING: $PATH_TO_GHCI_CONF/.ghci is writable by someone else, IGNORING! Suggested fix: execute 'chmod 644 $PATH_TO_GHCI_CONF/.ghci' ``` Execute fix and the warning should disappear. Reviewed By: mboes, thomie Differential Revision: https://phabricator.haskell.org/D805
-
thomie authored
And mention more prominently that `-DDEBUG` and tests that call `compiler_stats_num_fields` don't play well together Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D799
-
thomie authored
* don't call `nlHsPar`, as `genOpApp` already does so. * don't reimplement `isUnboxedTupleTyCon` and `isBoxedTupleTyCon`. Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D798
-