- Jan 04, 2016
-
-
Ben Gamari authored
-
Ben Gamari authored
This ends up being important since there is a subtle difference between two CmmUnwinds and one in the presence of the (-1) offset applied to frame information for blocks with info tables. This is because the offset will only be applied to the first CmmUnwind within a block, even if the two nodes apply to the same address.
-
Ben Gamari authored
-
Ben Gamari authored
We now wrap the set of unwinding points within a block in a newtype to mark the fact that they must be sorted by the order that the labels occur in the block. Moreover, we fix an oversight in the previous design where unwind information would be duplicated while propagating unwinding information from predecessor blocks.
-
Ben Gamari authored
-
Ben Gamari authored
Otherwise we might end up with a reference to a block that was eliminated during flow control. Ideally we would just ensure that these unwindings are dropped along with the block itself.
-
- Jan 03, 2016
-
-
Ben Gamari authored
-
Ben Gamari authored
-
- Jan 02, 2016
-
-
Ben Gamari authored
-
Ben Gamari authored
-
Ben Gamari authored
This actually just gives us the *ability* to produce unwind information. The unwind information itself will be implemented next.
-
Ben Gamari authored
Fixes #11337.
-
Ben Gamari authored
-
Ben Gamari authored
Previously we can only use unwind information at the beginning of a block since we otherwise have no label to apply it to. This, of course, isn't nearly expressive enough to properly encode unwinding for general programs. For this reason, we want to be able to include unwind information at arbitrary points within a block. This is a first step in this direction, ensuring that all unwind nodes We accomplish this by making `CmmUnwind` carry a label, which the NCG will emit into the block and which the Dwarf generator can refer to in the unwind tables it produces.
-
Ben Gamari authored
-
If a procedure has an info table we should also assume that its first block does lest it will not get the necessary offset to ensure that C-debugging tools find valid debug information. This was manifested as backtrace acquisition entering an infinite loop while attempting to unwind `stg_forceIO`, which had invalid call frame information on account this bug. Test Plan: Validate Reviewers: scpmw, austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1532
-
Ben Gamari authored
The interfaces to {save,load}ThreadState were quite messy due to the need to pass in local registers (produced with draws from a unique supply) since they were used from both FCode and UniqSM. This, however, is entirely unnecessary as we already have an abstraction to capture this effect: MonadUnique. Use it.
-
- Jan 01, 2016
-
-
Alan Zimmerman authored
In T10689a.hs, the fragment data instance Sing (z :: [a]) = z ~ '[] => SNil | forall (m :: a) (n :: [a]). z ~ (:) m n => SCons (Sing m) (Sing n) ends up with the AnnTilde annotations for the two tildes not attached to the final AST. This patch moves the AnnTilde to the right place. Closes #11321
-
Simon Peyton Jones authored
runRW# isn't inlined until CorePrep, so it's good to expose its strictness. Moreover, if we don't we can get obscure failures in coreToStg; see Note [runRW arg] in CorePrep. This fixes Trac #11291, and makes DfltProb1 compile with -O always in order to expose it more vigorously
-
Alan Zimmerman authored
Troublesome commit in Cabal was reverted.
-
Herbert Valerio Riedel authored
This fixes the instance to be semantically cleaner but other than that this fix has no practical consequences as the implementations of `Monad(fail)` and `MonadFail(fail)` for `ReadP` coincide.
-
Herbert Valerio Riedel authored
This refactoring exploits the fact that since AMP, in most cases, `instance MonadPlus` can be automatically derived from the respective `Alternative` instance. This is because `MonadPlus`'s default method implementations are fully defined in terms of `Alternative(empty, (<>))`.
-
- Dec 31, 2015
-
-
Herbert Valerio Riedel authored
-
Herbert Valerio Riedel authored
This pulls in a fix to suppress a `hsc2hs`-related warning in the windows backend.
-
Herbert Valerio Riedel authored
As we're requiring GHC >= 7.10 now, the conditional handling introduced in 9e133b9d for addressing #8182 can be made unconditional, and thus simplify the build-system a little bit.
-
Herbert Valerio Riedel authored
This code was introduced in 66218d15 to use `-package-name` for GHC 7.8, whereas GHC 7.10 needs the new `-this-package-key` flag.
-
Herbert Valerio Riedel authored
Starting with GHC 7.10 and base-4.8, `Monad` implies `Applicative`, which allows to simplify some definitions to exploit the superclass relationship. This a first refactoring to that end.
-
Herbert Valerio Riedel authored
Since GHC 8.1/8.2 only needs to be bootstrap-able by GHC 7.10 and GHC 8.0 (and GHC 8.2), we can now finally drop all that pre-AMP compatibility CPP-mess for good! Reviewers: austin, goldfire, bgamari Subscribers: goldfire, thomie, erikd Differential Revision: https://phabricator.haskell.org/D1724
-
Herbert Valerio Riedel authored
Quoting the POSIX standard for the `-D` C compiler flag: -D name[=value] Define name as if by a C-language #define directive. If no `=value` is given, a value of 1 shall be used. [...] Removing this explicit `=1` definition from `-D` flags which are used to define boolean macro constants makes the CLI invocation a bit more idiomatic and reduces visual noise in debugging output (flags containing `=`s are additionally put in single-quotes by GHC)
-
Herbert Valerio Riedel authored
Using `YES`/`NO` causes all sorts of problems as CPP doesn't work on symbolic tokens but rather on scalar values. A use like #if __GLASGOW_HASKELL_TH__==YES {-# LANGUAGE TemplateHaskell #-} #endif doesn't do what one may naively expect, and neither does #if __GLASGOW_HASKELL_TH__ {-# LANGUAGE TemplateHaskell #-} #endif *unless* `YES` happens to evaluate to a non-zero scalar. `__GLASGOW_HASKELL_TH__ was originally introduced via D396 / #9734. Fixes #11322 Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D1723
-
Herbert Valerio Riedel authored
In 3549c952 a `include/ghcversions.h` include file was introduced which defines `__GLASGOW_HASKELL__` as well. So there's no need to define it twice.
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
This fixes Trac #11290, by being sligthtly cleverer about finding what expressions are bottom. Actually this might have minor other side benefits.
-
Sergei Trofimovich authored
Observed failure on ia64 as: "inplace/bin/hsc2hs" \ ... \ --cflag=-Dia64_HOST_ARCH=1 --cflag=-Dlinux_HOST_OS=1 \ ... \ libraries/ghci/./GHCi/InfoTable.hsc \ -o libraries/ghci/dist-install/build/GHCi/InfoTable.hs InfoTable.hsc:84:2: error: #error Unknown architecture Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Alan Zimmerman authored
- Export unicodeAnn from GHC - unicodeAnn for Annlarrowtail was wrong - Use actual source for a CImport SourceText
-
- Dec 30, 2015
-
-
When there is an uncovered vector of length 0 (which in turn means that it represents a guard failure) print "(incomplete guards)" instead of an empty list of non-covered vectors. Test Plan: validate Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1717 GHC Trac Issues: #11245
-
Herbert Valerio Riedel authored
This updates the haddock submodule
-
Sergei Trofimovich authored
Detected by sphinx as: ERROR: Unexpected indentation. Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Sergei Trofimovich authored
Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-