summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Revert "testsuite/T9379: Use GHC.Conc instead of Control.Concurrent.STM"ghc-7.8Ben Gamari2015-07-061-3/+1
| | | | | This reverts commit be8556ff4ce8039a6cad59db9fe37ac971d6a31e which was accidentally pushed.
* Merge branch 'ghc-7.8' of https://github.com/ghc/ghc into ghc-7.8Ben Gamari2015-03-3066-322/+1112
|\
| * Set VERSION=7.8.4, RELEASE=YESghc-7.8.4-releaseAustin Seipp2014-12-231-2/+2
| | | | | | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
| * One _more_ documentation note.Austin Seipp2014-12-191-0/+7
| | | | | | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
| * One more documentation note.Austin Seipp2014-12-191-0/+9
| | | | | | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
| * Further improvements to floating equalitiesSimon Peyton Jones2014-12-193-120/+279
| | | | | | | | | | | | | | | | | | | | | | | | | | This equality-floating stuff is horribly delicate! Trac #9316 showed up yet another corner case. The main changes are * include CTyVarEqs when "growing" the skolem set * do not include the kind argument to (~) when growing the skolem set I added a lot more comments as well (cherry picked from commit 4b3df0bb705c9287046c07bbc6c038960fbf8d53)
| * Add package flags to --show-options outputLennart Kolmodin2014-12-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: --show-options will now include the package flags. Test Plan: Pass --show-options to ghc, it should include -package-id. Reviewers: austin, jstolarek Subscribers: carter, thomie Differential Revision: https://phabricator.haskell.org/D554 GHC Trac Issues: #9860
| * More release notesAustin Seipp2014-12-191-0/+48
| | | | | | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
| * Fix support for deriving Generic1 for data families (FIX #9563)Jose Pedro Magalhaes2014-12-153-4/+24
| | | | | | | | (cherry picked from commit 946cbcefab9bc02e12b741e5b070d7521b37ba1a)
| * Set llc and opt commands on all platformsAustin Seipp2014-12-151-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: LLVM llc and opt commands should be set on all platforms, including Windows. If they're not, GHC tries to execute an unnamed executable, resulting in error messages such as: Error (figuring out LLVM version): : runInteractiveProcess: invalid argument (Invalid argument) <no location info>: Warning: Couldn't figure out LLVM version! Make sure you have installed LLVM This regression was introduced in e6bfc596. Test Plan: Build GHC and test if --info shows sensible values of "LLVM llc command" and "LLVM opt command" Reviewers: austin, #ghc Reviewed By: austin, #ghc Subscribers: austin Projects: #ghc Differential Revision: https://phabricator.haskell.org/D190 GHC Trac Issues: #7143 (cherry picked from commit 918719b936b878ab660f20ceef8afc9e3a898c5a)
| * Test Trac #9390Simon Peyton Jones2014-12-153-0/+29
| | | | | | | | (cherry picked from commit 2990e97f008c9703eb4b47e24a29d052d5735f00)
| * When desugaring Use the smart mkCoreConApps and friendsSimon Peyton Jones2014-12-155-11/+11
| | | | | | | | | | | | | | | | | | | | This is actually the bug that triggered Trac #9390. We had an unboxed tuple (# writeArray# ..., () #), and that writeArray# argument isn't ok-for-speculation, so disobeys the invariant. The desugaring of unboxed tuples was to blame; the fix is easy. (cherry picked from commit 1fc60ea1f1fd89b90c2992d060aecb5b5a65f8c0)
| * Test #9371 (indexed-types/should_fail/T9371)Richard Eisenberg2014-12-153-0/+31
| | | | | | | | (cherry picked from commit a09508b792eed24fc4d8a363df2635026bfa2de6)
| * Fix Trac #9371.Richard Eisenberg2014-12-151-1/+21
| | | | | | | | | | | | | | This was very simple: lists of different lengths are *maybe* apart, not *surely* apart. (cherry picked from commit f29bdfbcedda6cb33ab05d884c151f2b31f4e4e0)
| * Test #9415 (typecheck/should_fail/T9415)Richard Eisenberg2014-12-153-0/+14
| | | | | | | | (cherry picked from commit 1a3e19d061c1e5a1db9789572eca3a0ade450954)
| * Fix #9415.Richard Eisenberg2014-12-151-1/+16
| | | | | | | | | | | | | | | | Abort typechecking when we detect a superclass cycle error, as ambiguity checking in the presence of superclass cycle errors can cause a loop. (cherry picked from commit 1b1388697e687154c2bf1943639e75f3ccf5bc59)
| * fix inconsistency in exported functions from TcSplice.lhs/lhs-boot files ↵Karel Gardas2014-12-151-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when GHCI is not defined Summary: This patch fixes inconsistency in exported functions from TcSplice.lhs and TcSplice.lhs-boot files. It looks like only GHC HEAD is sensitive to it and complains about it while bootstraping another HEAD. At least this is what happening on Solaris/AMD64 builder machine where GHC 7.9.20140620 is used as a boostrap compiler. The failure does not happen on another builders. Test Plan: validate Reviewers: austin Reviewed By: austin Subscribers: phaskell, simonmar, relrod, carter Differential Revision: https://phabricator.haskell.org/D74 (cherry picked from commit d996a1bb4db84727fbf1a8e9461a032e04e544e7)
| * ghc.mk: fix list for dll-split on GHCi-less buildsSergei Trofimovich2014-12-151-42/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To reproduce build failure it's enough to try to build GHC on amd64 with the following setup: $ cat mk/build.mk # for #9552 GhcWithInterpreter = NO It gives: Reachable modules from DynFlags out of date Please fix compiler/ghc.mk, or building DLLs on Windows may break (#7780) Redundant modules: Bitmap BlockId ... <list of 42 modules> <make error> dll-split among other things makes sure all mentioned modules are used by DynFlags. '#ifdef GHCI' keeps is from happening. Patch moves those 42 modules under 'GhcWithInterpreter' guard. Fixes Issue #9552 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> (cherry picked from commit 2a8ea4745d6ff79d6ce17961a64d9013243fc3c6)
| * Fix detection of GNU gold linker if invoked via gcc with parametersSebastian Dröge2014-12-151-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | Previously the linker was called without any commandline parameters to detect whether bfd or gold is used. However the -fuse-ld parameter can be used to switch between gold and bfd and should be taken into account here. Trac #9336 Signed-off-by: Austin Seipp <austin@well-typed.com> (cherry picked from commit e7b414a3cc0e27049f2608f5e0a00c47146cc46d)
| * Make libffi install into a predictable directory (#9620)Reid Barton2014-12-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | On some systems (depending on gcc multilib configuration) libffi would install into libffi/build/inst/lib64 even though we configure it with --libdir=libffi/build/inst/lib. There appears to be no way to get libffi to install to a predictable directory "out of the box", so we apply a small patch to Makefile.in. This is the same fix used in Gentoo's ebuild (https://bugs.gentoo.org/show_bug.cgi?id=462814). (cherry picked from commit 835d874df1973b7e1c602a747b42b77095592a9c)
| * cabal: Update to fix notorious '-fPIC' bugAustin Seipp2014-12-151-0/+0
| | | | | | | | | | | | This sentence contains the word 'submodule' because it is a requirement. Signed-off-by: Austin Seipp <austin@well-typed.com>
| * compiler: fix trac issue #9817Austin Seipp2014-12-154-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When we call runHandlers, we must pass it a ForeignPtr. To ensure that this happens, we introduce a wrapper that receives a plain Ptr and converts it into a ForeignPtr. Then we adjust startSignalHandlers in rts/posix/Signals.c to call the wrapper instead of calling runHandlers directly. Reviewers: hvr, austin, rwbarton, simonmar Reviewed By: austin, simonmar Subscribers: simonmar, thomie, carter Differential Revision: https://phabricator.haskell.org/D515 GHC Trac Issues: #9817 (cherry picked from commit 7ca5bb090ff78141fbe275b058a9e35ee496bd58)
| * Link pre-ARMv6 spinlocks into all RTS variantsJoachim Breitner2014-12-152-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: For compatibility with ARM machines from pre v6, the RTS provides implementations of certain atomic operations. Previously, these were only included in the threaded RTS. But ghc (the library) contains the code in compiler/cbits/genSym.c, which uses these operations if there is more than one capability. But there is only one libHSghc, so the linker wants to resolve these symbols in every case. By providing these operations in all RTSs, the linker is happy. The only downside is a small amount of dead code in the non-threaded RTS on old ARM machines. Test Plan: It helped here. Reviewers: bgamari, austin Reviewed By: bgamari, austin Subscribers: carter, thomie Differential Revision: https://phabricator.haskell.org/D564 GHC Trac Issues: #8951 (cherry picked from commit df1307f079ae69dcd735e0973de987b141d509da)
| * configure.ac: fix test == bashismTuncer Ayaz2014-11-261-4/+4
| | | | | | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
| * Remove release notes for IO manager bugAustin Seipp2014-11-201-7/+0
| | | | | | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
| * Revert "Revert "Revert "rts/base: Fix #9423"" and resolve issue that caused ↵Austin Seipp2014-11-195-79/+34
| | | | | | | | | | | | | | | | the revert." This reverts commit 55d2522bd0c48e4c5dac1526cdf53459270baf96. Signed-off-by: Austin Seipp <austin@well-typed.com>
| * Undo release notes (re: precedence fix)Austin Seipp2014-11-051-6/+0
| | | | | | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
| * Revert "Use correct precedence when printing contexts with class operators"Austin Seipp2014-11-0519-106/+97
| | | | | | | | | | | | | | This breaks the build because I am a nincompoop and TyOpPrec doesn't exit here. This reverts commit d71f316ef4acb6a967a1f07bc4c1144e553a3ac9.
| * Update release notesAustin Seipp2014-11-051-0/+7
| | | | | | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
| * Revert "Revert "rts/base: Fix #9423"" and resolve issue that caused the revert.Andreas Voellmy2014-11-055-34/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This reverts commit 4748f5936fe72d96edfa17b153dbfd84f2c4c053. The fix for #9423 was reverted because this commit introduced a C function setIOManagerControlFd() (defined in Schedule.c) defined for all OS types, while the prototype (in includes/rts/IOManager.h) was only included when mingw32_HOST_OS is not defined. This broke Windows builds. This commit reverts the original commit and resolves the problem by only defining setIOManagerControlFd() when mingw32_HOST_OS is defined. Hence the missing prototype error should not occur on Windows. In addition, since the io_manager_control_wr_fd field of the Capability struct is only usd by the setIOManagerControlFd, this commit includes the io_manager_control_wr_fd field in the Capability struct only when mingw32_HOST_OS is not defined. Test Plan: Try to compile successfully on all platforms. Reviewers: austin Reviewed By: austin Subscribers: simonmar, ezyang, carter Differential Revision: https://phabricator.haskell.org/D174 (commit cherry picked from 7e658bc14e2dd6baf208deebbdab9e1285ce4c72)
| * Release note blurb for #9433Austin Seipp2014-11-031-0/+6
| | | | | | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
| * Check for un-saturated type family applicationsSimon Peyton Jones2014-11-034-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch corrects an egregious error introduced by: commit 022f8750edf6f413fba31293435dcc62600eab77 Author: Simon Peyton Jones <simonpj@microsoft.com> Date: Thu May 15 16:07:04 2014 +0100 Refactoring around TyCon.isSynTyCon * Document isSynTyCon better * Add isTypeSyonymTyCon for regular H98 type synonyms * Use isTypeSynonymTyCon rather than isSynTyCon where the former is really intended At this particular spot in TcValidity we really do mean isSynTyCon and not isTypeSynonymTyCon. Fixes Trac #9433 (cherry picked from commit ee4501bbad6480509e8a60b5ff89c0b0b228b66d) Conflicts: testsuite/tests/indexed-types/should_fail/all.T
| * Make Core Lint check for un-saturated type applicationsSimon Peyton Jones2014-11-031-4/+11
| | | | | | | | | | | | | | | | | | | | | | Un-saturated type-family and type-synonym applications are detected in the front end, but for some reason Lint wasn't looking for them. I came across this when wondering why Trac #9433 didn't give a Core Lint error (cherry picked from commit 8ff4671422090acf9146e3a90dd38e2c6f72aebb)
| * Fix a typo in an error messageGabor Greif2014-11-031-1/+1
| | | | | | | | (cherry picked from commit 3c5648afff13e9f6e94dea4094cc3a3fb97baeea)
| * Flesh out release notes.Austin Seipp2014-11-031-1/+83
| | | | | | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
| * Add skeleton 7.8.4 release notesAustin Seipp2014-11-033-0/+23
| | | | | | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
| * rnMethodBind: reject pattern synonyms in instance definitions (fixes #9705)Dr. ERDI Gergo2014-11-034-0/+18
| | | | | | | | (cherry picked from commit e5ba36080d08791f44e3bed37721f702e242af96)
| * Do not duplicate call information in SpecConstr (Trac #8852)Simon Peyton Jones2014-11-031-23/+49
| | | | | | | | | | | | | | | | | | | | | | | | This long-standing and egregious bug meant that call information was being gratuitously copied, leading to an exponential blowup in the number of calls to be examined when function definitions are deeply nested. That is what has been causing the blowup in SpecConstr's running time, not (as I had previously supposed) generating very large code. See Note [spec_usg includes rhs_usg] (cherry picked from commit af4bc31c50c873344a2426d4be842f92edf17019)
| * Introduce the Call data typesSimon Peyton Jones2014-11-031-3/+16
| | | | | | | | | | | | | | This is just a small refactoring that makes the code a bit clearer, using a data type instead of a triple. We get better pretty-printing too. (cherry picked from commit c0fe1d9e7a9f23d050319c77f3a38264f3aa22f8)
| * Improve comments and tracing in SpecConstrSimon Peyton Jones2014-11-031-22/+31
| | | | | | | | (cherry picked from commit 675c5478793ac8cede5daca4f70cd09846879837)
| * Use correct precedence when printing contexts with class operatorsSimon Peyton Jones2014-11-0319-97/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | Fixes Trac #9658 (cherry picked from commit 48089ccf4f1f239b3268b2cb52b8aa0f7356485b) Conflicts: compiler/types/TypeRep.lhs testsuite/tests/ghci/scripts/all.T testsuite/tests/perf/compiler/T5837.stderr testsuite/tests/typecheck/should_fail/ContextStack2.stderr testsuite/tests/typecheck/should_fail/T8392a.stderr
| * testsuite: mark testwsdeque mark as faulty on NOSMP buildsSergei Trofimovich2014-11-031-0/+1
| | | | | | | | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> (cherry picked from commit 2fcb36e41f46f80f75e2f245a1a45457f0f7d6d2)
| * testsuite: disable gcc's warnings about casts of incompatible prototypes in ↵Sergei Trofimovich2014-11-031-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | UNREG Haskell's 'foreign import' declaraion does not have a way to extress exact C prototypes (it ignores 'const' modifiers, exact pointer types, etc.) which leads to warnings when C backend generates calls to such functions: /tmp/ghc32698_0/ghc32698_10.hc:52:5: warning: conflicting types for built-in function ‘strlen’ [enabled by default] EF_(strlen); ^ Patch disables builtin functions for UNREG build to workaround test failures due to stderr mismatch. Fixes the following test failures: TEST="safePkg01 T5423 T7574 T3736" Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> (cherry picked from commit fcdd58d2ddcfd8d420adbcb3f20c1d666bc834e6)
| * testsuite: T7815 requires SMP support from ghcSergei Trofimovich2014-11-031-0/+1
| | | | | | | | | | Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> (cherry picked from commit ff9f4ad38521e54c5284f9bf4599c3baaefeb228)
| * x86: zero extend the result of 16-bit popcnt instructions (#9435)Reid Barton2014-10-271-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The 'popcnt r16, r/m16' instruction only writes the low 16 bits of the destination register, so we have to zero-extend the result to a full word as popCnt16# is supposed to return a Word#. For popCnt8# we could instead zero-extend the input to 32 bits and then do a 32-bit popcnt, and not have to zero-extend the result. LLVM produces the 16-bit popcnt sequence with two zero extensions, though, and who am I to argue? Test Plan: - ran "make TEST=cgrun071 EXTRA_HC_OPTS=-msse42" - then ran again adding "WAY=optasm", and verified that the popcnt sequences we generate match the ones produced by LLVM for its @llvm.ctpop.* intrinsics Reviewers: austin, hvr, tibbe Reviewed By: austin, hvr, tibbe Subscribers: phaskell, hvr, simonmar, relrod, ezyang, carter Differential Revision: https://phabricator.haskell.org/D147 GHC Trac Issues: #9435 (cherry picked from commit 64151913f1ed32ecfe17fcc40f7adc6cbfbb0bc1)
| * Include pattern synonyms as AConLikes in the type environment,Dr. ERDI Gergo2014-10-272-13/+10
| | | | | | | | | | | | even for simplified/boot ModDetails (fixes #9417) (cherry picked from commit f0db1857b053597e9ac43d9ce578e5f5fa0545cb)
| * Take account of the AvailTC invariant when importingSimon Peyton Jones2014-10-275-32/+59
| | | | | | | | | | | | | | | | In the rather gnarly filterImports code, someone had forgotten the AvailTC invariant: in AvailTC n [n,s1,s2], the 'n' is itself included in the list of names. (cherry picked from commit f964cd9c5c411f8a2383cf2b080581a5c3349661)
| * systools: fix gcc version detecton on non-english localeSergei Trofimovich2014-10-271-4/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: ghc runs 'gcc -v' to check if we run under vanilla gcc or disaguised clang by checking for string "gcc version <something>" But this check does not always work as gcc has that string localized via gettext mechanism: (some gcc's locale strings) be.po-msgstr "версія gcc %s\n" da.po-msgstr "GCC version %s\n" de.po-msgstr "gcc-Version %s %s\n" el.po-msgstr "έκδοση gcc %s\n" ... To ping gcc to English locale we now override environment variable with 'LANGUAGE=en' value. Fixes Issue #8825 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> Test Plan: validate Reviewers: austin Reviewed By: austin Subscribers: simonmar, ezyang, carter Differential Revision: https://phabricator.haskell.org/D185 GHC Trac Issues: #8825 (cherry picked from commit 4d4d07704ee78221607a18b8118294b0aea1bac4)
| * Fix a rare parallel GC bugSimon Marlow2014-10-271-1/+6
| | | | | | | | | | | | | | | | | | | | | | When there's a conflict between two threads evacuating the same TSO, in some cases we would update the incall->tso pointer to point to the wrong copy of the TSO. This would get fixed during the next GC, but if the thread completed in the meantime, it would likely crash. We're seeing this about once per day on a heavily loaded machine (it varies a lot though). (cherry picked from commit a11f71eff15ba2706cbb2ee29aaf7350909e0d2f)
| * pprC: declare extern cmm primitives as functions, not dataSergei Trofimovich2014-10-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The commit fixes incorrect code generation of integer-gmp package on ia64 due to C prototypes mismatch. Before the patch prototypes for "foreign import prim" were: StgWord poizh[]; After the patch they became: StgFunPtr poizh(); Long story: Consider the following simple example: {-# LANGUAGE MagicHash, GHCForeignImportPrim, UnliftedFFITypes #-} module M where import GHC.Prim -- Int# foreign import prim "poizh" poi# :: Int# -> Int# Before the patch unregisterised build generated the following 'poizh' reference: EI_(poizh); /* StgWord poizh[]; */ FN_(M_poizh_entry) { // ... JMP_((W_)&poizh); } After the patch it looks this way: EF_(poizh); /* StgFunPtr poizh(); */ FN_(M_poizh_entry) { // ... JMP_((W_)&poizh); } On ia64 it leads to different relocation types being generated: incorrect one: addl r14 = @ltoffx(poizh#) ld8.mov r14 = [r14], poizh# ; r14 = address-of 'poizh#' correct one: addl r14 = @ltoff(@fptr(poizh#)), gp ; r14 = address-of-thunk 'poizh#' ld8 r14 = [r14] '@fptr(poizh#)' basically instructs assembler to creates another obect consisting of real address to 'poizh' instructions and module address. That '@fptr' object is used as a function "address" This object is different for every module referencing 'poizh' symbol. All indirect function calls expect '@fptr' object. That way call site reads real destination address and set destination module address in 'gp' register from '@fptr'. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> (cherry picked from commit e18525fae273f4c1ad8d6cbe1dea4fc074cac721)