summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* StgCmmForeign: Kill erroneous dereferencewip/libdw-unwindBen Gamari2016-01-041-1/+1
|
* Encode multiple registers per CmmUnwindBen Gamari2016-01-0410-23/+30
| | | | | | | | 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.
* PprCmm: Print label in CmmUnwind outputBen Gamari2016-01-041-1/+2
|
* Debug: Refactor handling of unwinding pointsBen Gamari2016-01-043-36/+60
| | | | | | | | 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.
* CmmNode: Add Outputable for NewOrExistingLabelBen Gamari2016-01-041-0/+4
|
* REVISIT: CmmLayoutStack: Always use new labelBen Gamari2016-01-041-4/+6
| | | | | | | | 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.
* HACK: "Fix" labelsBen Gamari2016-01-032-4/+9
|
* iFix "Allow anywhere"Ben Gamari2016-01-031-1/+1
|
* Produce unwind information in lowerSafeForeignCallBen Gamari2016-01-021-3/+32
|
* StgCmmForeign: Break up long lineBen Gamari2016-01-021-1/+7
|
* StgCmmForeign: Produce unwind information in {load,save}ThreadStateBen Gamari2016-01-023-9/+35
| | | | | This actually just gives us the *ability* to produce unwind information. The unwind information itself will be implemented next.
* CmmLayoutStack: Fix unwind information after Sp adjustmentBen Gamari2016-01-021-30/+40
| | | | Fixes #11337.
* Use MonadUnique for newBlockIdBen Gamari2016-01-024-8/+14
|
* Debug: Allow Unwind nodes anywhere in a blockBen Gamari2016-01-0211-65/+104
| | | | | | | | | | | | | 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.
* Dwarf: Add support for labels in unwind expressionsBen Gamari2016-01-023-1/+6
|
* Dwarf: Assume first block in a proc has an info tableBen Gamari2016-01-021-2/+16
| | | | | | | | | | | | | | | | | | 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
* StgCmmForeign: Push local register creation into code generationBen Gamari2016-01-024-68/+64
| | | | | | | | | 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.
* API Annotations: AnnTilde missingAlan Zimmerman2016-01-018-15/+114
| | | | | | | | | | | | | | | | | | 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
* Add strictness for runRW#Simon Peyton Jones2016-01-013-2/+22
| | | | | | | | | 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
* Update Cabal submodule, Fixes #11326Alan Zimmerman2016-01-011-0/+0
| | | | Troublesome commit in Cabal was reverted.
* Minor fix of MonadFail instance for `ReadPrec`Herbert Valerio Riedel2016-01-011-1/+1
| | | | | | 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.
* Canonicalise `MonadPlus` instancesHerbert Valerio Riedel2016-01-0110-56/+32
| | | | | | | 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, (<>))`.
* travis: use GHC 7.10.3Herbert Valerio Riedel2015-12-311-2/+2
|
* Update haskeline submodule to latest snapshotHerbert Valerio Riedel2015-12-311-0/+0
| | | | | This pulls in a fix to suppress a `hsc2hs`-related warning in the windows backend.
* Simplify -fcmm-sink handling for Parser.hsHerbert Valerio Riedel2015-12-313-15/+2
| | | | | | As we're requiring GHC >= 7.10 now, the conditional handling introduced in 9e133b9dccec0553c6ec302d6ca0d3bc5eea06c4 for addressing #8182 can be made unconditional, and thus simplify the build-system a little bit.
* Remove ghc-7.8 `-package-name`-compat handlingHerbert Valerio Riedel2015-12-313-20/+1
| | | | | | This code was introduced in 66218d15b7c27a4a38992003bd761f60bae84b1f to use `-package-name` for GHC 7.8, whereas GHC 7.10 needs the new `-this-package-key` flag.
* Remove some redundant definitions/constraintsHerbert Valerio Riedel2015-12-3146-60/+10
| | | | | | 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.
* Drop pre-AMP compatibility CPP conditionalsHerbert Valerio Riedel2015-12-3176-297/+11
| | | | | | | | | | | | 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
* Drop redundant/explicit `=1` in `-DFOO=1` flagsHerbert Valerio Riedel2015-12-313-19/+19
| | | | | | | | | | | | | | | 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)
* Use 0/1 instead of YES/NO as `__GLASGOW_HASKELL_TH__` macro valueHerbert Valerio Riedel2015-12-313-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Drop redundant `-D__GLASGOW_HASKELL__=...` flagHerbert Valerio Riedel2015-12-312-10/+3
| | | | | | | In 3549c952b535803270872adaf87262f2df0295a4 a `include/ghcversions.h` include file was introduced which defines `__GLASGOW_HASKELL__` as well. So there's no need to define it twice.
* Test Trac #11245Simon Peyton Jones2015-12-313-0/+18
|
* Comments onlySimon Peyton Jones2015-12-311-30/+39
|
* Improve exprIsBottomSimon Peyton Jones2015-12-313-2/+16
| | | | | | This fixes Trac #11290, by being sligthtly cleverer about finding what expressions are bottom. Actually this might have minor other side benefits.
* fix ghci build on ArchUnknown targetsSergei Trofimovich2015-12-311-3/+20
| | | | | | | | | | | | | | | 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>
* Various API Annotations fixesAlan Zimmerman2015-12-314-3/+4
| | | | | | - Export unicodeAnn from GHC - unicodeAnn for Annlarrowtail was wrong - Use actual source for a CImport SourceText
* Address #11245: Ensure the non-matched list is always non-emptyGeorge Karachalias2015-12-301-3/+5
| | | | | | | | | | | | | | | | | | 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
* Bump GHC HEAD's Version from 7.11 to 8.1ghc-8.1-startHerbert Valerio Riedel2015-12-305-4/+4
| | | | This updates the haddock submodule
* glasgow_exts.rst: fix code blockSergei Trofimovich2015-12-301-0/+1
| | | | | | | Detected by sphinx as: ERROR: Unexpected indentation. Signed-off-by: Sergei Trofimovich <siarheit@google.com>
* rts/Linker.c: mark ia64 as 64-bit ELF, drop unused branchesSergei Trofimovich2015-12-301-4/+6
| | | | Signed-off-by: Sergei Trofimovich <siarheit@google.com>
* rts/PrimOps.cmm: fix UNREG profiled buildSergei Trofimovich2015-12-301-0/+3
| | | | | | | | | | | | | | | Brought 'CCS_MAIN' into scope, otherwise UNREG prof build is unhappy: rts_dist_HC rts/dist/build/PrimOps.p_o /tmp/ghc25593_0/ghc_3.hc: In function 'clB_entry': /tmp/ghc25593_0/ghc_3.hc:2983:24: error: error: 'CCS_MAIN' undeclared (first use in this function) *((P_)(_cly+8)) = (W_)&CCS_MAIN; ^ Signed-off-by: Sergei Trofimovich <siarheit@google.com>
* Fix some typosGabor Greif2015-12-303-4/+4
|
* Testsuite: mark T7653 with high_memory_usageThomas Miedema2015-12-301-1/+2
|
* users_guide/ghci: Fix headingBen Gamari2015-12-301-1/+1
|
* T11303: Set maximum heap sizeBen Gamari2015-12-301-1/+1
| | | | As suggested by @thomie.
* Make iserv-bin compatible with GHC version bump to 8.0Herbert Valerio Riedel2015-12-301-1/+1
|
* Fix #11305.Richard Eisenberg2015-12-293-25/+90
| | | | | | | | | | | | | | | | | | | | | Summary: In the fallthrough case when doing a subsumption case, we need to deeply instantiate to remove any buried foralls in the "actual" type. Once this validates, please feel free to commit it; I may not have the chance to do this on Tuesday. Back in full action on Wed. Test Plan: ./validate, typecheck/should_compiler/T11305 Reviewers: austin, bgamari, hvr Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1715 GHC Trac Issues: #11305
* testsuite: normalise away `ld`-warning on AIXHerbert Valerio Riedel2015-12-301-0/+4
| | | | | | | On AIX, `ld` doesn't support `-x` and ignores it. However, a warning is emitted to stderr which ends up triggering false positives in some of GHC's testsuite tests. So we simply filter out that noise as part of normalising stderr.
* Remove `cabal07`-test broken by e4cc19de4bdbccHerbert Valerio Riedel2015-12-298-58/+0
| | | | | | | This test is no longer legitimate as the feature it tests was removed from Cabal via https://git.haskell.org/packages/Cabal.git/commitdiff/5d20551e44e565bad6335fa213fc4ad592db7225
* Update Cabal submodule to latest snapshotHerbert Valerio Riedel2015-12-291-0/+0
|