summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Signals: Ensure libdw session is freedBen Gamari2015-10-311-0/+1
|
* Fix documentation build on windowsTamar Christina2015-10-312-4/+17
| | | | | | | | | | | | | | | | | | | Summary: Fix building new Sphinx documenation on Windows in msys2 using Awson's patch on #11021. Install Sphinx using `pacman -S mingw-w64-$(uname -m)-python2-sphinx` Test Plan: Apply patch and ./validate Reviewers: thomie, bgamari, austin Reviewed By: thomie, bgamari Subscribers: erikd Differential Revision: https://phabricator.haskell.org/D1408 GHC Trac Issues: #11021
* Make ghc-cabal's `System.Directory` import more robustHerbert Valerio Riedel2015-10-311-1/+1
| | | | | | | | Starting with directory-1.2.5 there will be a nameclash with `withCurrentDirectory` and `MIN_VERSION_filepath()` isn't available at bootstrap-time with the current GHC build-system. By using explicit import lists we avoid CPP altogether
* Add subWordC# on x86ishNikita Karetnikov2015-10-3114-21/+68
| | | | | | | | | | | | | | | This adds a subWordC# primop which implements subtraction with overflow reporting. Reviewers: tibbe, goldfire, rwbarton, bgamari, austin, hvr Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1334 GHC Trac Issues: #10962
* Update parallel submoduleHerbert Valerio Riedel2015-10-311-0/+0
| | | | | This is needed to prepare for #11026 as this update relaxes the upper bounds on `base` to allow for `base-4.9.0.0`
* Update primitive/vector submodulesHerbert Valerio Riedel2015-10-312-0/+0
| | | | | This is needed to prepare for #11026 as these updates relax the upper bounds on `base` to allow for `base-4.9.0.0`
* unreg: handle CmmStack in C codegen (unbreaks '-g')Sergei Trofimovich2015-10-301-0/+1
| | | | | | | | The patch makes $ make test TEST="debug T10667" not to fail on CmmStack code generation phase Signed-off-by: Sergei Trofimovich <siarheit@google.com>
* testsuite: 'threaded2' tests require '-N' RTS option supportSergei Trofimovich2015-10-301-1/+1
| | | | Signed-off-by: Sergei Trofimovich <siarheit@google.com>
* testsuite: performGC requires SMP support for 'qg' optionSergei Trofimovich2015-10-301-7/+2
| | | | Signed-off-by: Sergei Trofimovich <siarheit@google.com>
* Make type-class dictionary let binds deterministicBartosz Nitka2015-10-309-7/+214
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When generating dictionary let binds in dsTcEvBinds we may end up generating them in arbitrary order according to Unique order. Consider: ``` let $dEq = GHC.Classes.$fEqInt in let $$dNum = GHC.Num.$fNumInt in ... ``` vs ``` let $dNum = GHC.Num.$fNumInt in let $dEq = GHC.Classes.$fEqInt in ... ``` The way this change fixes it is by using `UniqDFM` - a type of deterministic finite maps of things keyed on `Unique`s. This way when you pull out evidence variables corresponding to type-class dictionaries they are in deterministic order. Currently it's the order of insertion and the way it's implemented is by tagging the values with the time of insertion. Test Plan: I've added a new test case to reproduce the issue. ./validate Reviewers: ezyang, simonmar, austin, simonpj, bgamari Reviewed By: simonmar, simonpj, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1396 GHC Trac Issues: #4012
* Add failing test for #11039Matthew Pickering2015-10-302-0/+8
| | | | | | | | | | Reviewers: austin, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1406 GHC Trac Issues: #11039
* rts: Make MBLOCK_SPACE_SIZE dynamicBen Gamari2015-10-305-39/+50
| | | | | | | | | | | | | | | | | | | | | | | Previously this was introduced in D524 as a compile-time constant. Sadly, this isn't flexible enough to allow for environments where ulimits restrict the maximum address space size (see, for instance, Consequently, we are forced to make this dynamic. In principle this shouldn't be so terrible as we can place both the beginning and end addresses within the same cache line, likely incurring only one or so additional instruction in HEAP_ALLOCED. Test Plan: validate Reviewers: austin, simonmar Reviewed By: simonmar Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1353 GHC Trac Issues: #10877
* Reimplement shadowing on a per database basis.Edward Z. Yang2015-10-305-89/+135
| | | | | | | | | | | | | | | | | | | | | Summary: This commit reimplements shadowing on package databases by doing the shadowing calculation on a per-database basis: specifically, if a later package database shadows a package from the earlier databases, we first remove that package (and its transitive dependencies) before merging the databases together. This should also fix bootstrapping GHC HEAD with HEAD. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: ggreif, bgamari, austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1385
* Generate Typeable info at definition sitesBen Gamari2015-10-30111-1378/+2683
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the second attempt at merging D757. This patch implements the idea floated in Trac #9858, namely that we should generate type-representation information at the data type declaration site, rather than when solving a Typeable constraint. However, this turned out quite a bit harder than I expected. I still think it's the right thing to do, and it's done now, but it was quite a struggle. See particularly * Note [Grand plan for Typeable] in TcTypeable (which is a new module) * Note [The overall promotion story] in DataCon (clarifies existing stuff) The most painful bit was that to generate Typeable instances (ie TyConRepName bindings) for every TyCon is tricky for types in ghc-prim etc: * We need to have enough data types around to *define* a TyCon * Many of these types are wired-in Also, to minimise the code generated for each data type, I wanted to generate pure data, not CAFs with unpackCString# stuff floating about. Performance ~~~~~~~~~~~ Three perf/compiler tests start to allocate quite a bit more. This isn't surprising, because they all allocate zillions of data types, with practically no other code, esp. T1969 * T1969: GHC allocates 19% more * T4801: GHC allocates 13% more * T5321FD: GHC allocates 13% more * T9675: GHC allocates 11% more * T783: GHC allocates 11% more * T5642: GHC allocates 10% more I'm treating this as acceptable. The payoff comes in Typeable-heavy code. Remaining to do ~~~~~~~~~~~~~~~ * I think that "TyCon" and "Module" are over-generic names to use for the runtime type representations used in GHC.Typeable. Better might be "TrTyCon" and "TrModule". But I have not yet done this * Add more info the the "TyCon" e.g. source location where it was defined * Use the new "Module" type to help with Trac Trac #10068 * It would be possible to generate TyConRepName (ie Typeable instances) selectively rather than all the time. We'd need to persist the information in interface files. Lacking a motivating reason I have not done this, but it would not be difficult. Refactoring ~~~~~~~~~~~ As is so often the case, I ended up refactoring more than I intended. In particular * In TyCon, a type *family* (whether type or data) is repesented by a FamilyTyCon * a algebraic data type (including data/newtype instances) is represented by AlgTyCon This wasn't true before; a data family was represented as an AlgTyCon. There are some corresponding changes in IfaceSyn. * Also get rid of the (unhelpfully named) tyConParent. * In TyCon define 'Promoted', isomorphic to Maybe, used when things are optionally promoted; and use it elsewhere in GHC. * Cleanup handling of knownKeyNames * Each TyCon, including promoted TyCons, contains its TyConRepName, if it has one. This is, in effect, the name of its Typeable instance. Updates haddock submodule Test Plan: Let Harbormaster validate Reviewers: austin, hvr, goldfire Subscribers: goldfire, thomie Differential Revision: https://phabricator.haskell.org/D1404 GHC Trac Issues: #9858
* Testsuite: suggest quoting $(TEST_HC)Thomas Miedema2015-10-308-12/+71
| | | | | | | | | | | | Test Plan: it works Reviewers: bgamari, rwbarton, austin Reviewed By: austin Subscribers: rwbarton Differential Revision: https://phabricator.haskell.org/D1377
* driver: use PROGBITS type for .debug-ghc-link-info sectionSylvain HENRY2015-10-301-9/+27
| | | | | | | | | | | | | | | | | | | | Previously the `.debug-ghc-link-info` section was of type `SHT_NOTE` but this is not compliant with the ELF specification, which requires that `NOTE` sections are in a particular record-based format. We mark this section as `PROGBITS` instead, which is defined as implying no particular format. Fixes #11022. Reviewers: bgamari, austin Reviewed By: bgamari, austin Subscribers: thomie, hsyl20 Differential Revision: https://phabricator.haskell.org/D1375 GHC Trac Issues: #11022
* Move win32 tarball download logic to scriptBen Gamari2015-10-302-78/+176
| | | | | | | | | | | | | | | This allows it to be used by users and packagers to grab the tarballs necessary to generate a source tarball. Test Plan: try it Reviewers: thomie, austin, Phyx Reviewed By: thomie, austin, Phyx Subscribers: erikd Differential Revision: https://phabricator.haskell.org/D1378
* Unify: Add Outputable instance for UnifyResultMBen Gamari2015-10-301-0/+7
| | | | | | | | | | Reviewers: simonpj, austin Reviewed By: austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1389
* Insert an empty line between two STG definitions in dump output.Ömer Sinan Ağacan2015-10-301-1/+2
| | | | | | | | | | | | (Simplifier and desugarer do this already) Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1395
* Linker: Clean up USE_MMAP usageErik de Castro Lopo2015-10-301-33/+31
| | | | | | | | | | | | Test Plan: Validate on powerpc/linux, x86_64/linux and x86_64/darwin Reviewers: austin, bgamari, thomie Reviewed By: thomie Subscribers: Phyx, thomie Differential Revision: https://phabricator.haskell.org/D1398
* CmmParse: Expose popcnt operationsBen Gamari2015-10-305-1/+28
| | | | | | | | | | | | | | | Make various population count operations available via C-- syntax under the names %popcnt{8,16,32,64}. Fixes #11037. Reviewers: simonmar, austin, ekmett Reviewed By: austin, ekmett Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1402 GHC Trac Issues: #11037
* Fix segfault due to reading non-existent memorySimon Marlow2015-10-301-2/+14
| | | | | | | | | | | | | | | | | | | It was possible to read non-existent memory, if we try to read the srt_offset field of an info table when there is no SRT, and the info table is right at the start of the text section. This actually happened to me, I'm not sure why it never happened before. Test Plan: validate Reviewers: rwbarton, ezyang, austin, bgamari Reviewed By: austin, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1401
* Build system: cabalise deriveConstants + genprimopcodeThomas Miedema2015-10-305-6/+50
| | | | | | | | | This is needed for #10374 (but doesn't fix it yet). Also rename DeriveConstants.hs to Main.hs, because the build system has trouble with Main modules not called Main.hs. Differential Revision: https://phabricator.haskell.org/D1380
* Build system: cleanup a few .cabal filesThomas Miedema2015-10-304-33/+13
|
* Build system: rename runghc.hs to Main.hsThomas Miedema2015-10-303-7/+1
| | | | | The build system has trouble with Main modules not called Main.hs. This change allows a hack in utils/runghc/ghc.mk to be removed.
* Disambiguate record selectors by type signatureAdam Gundry2015-10-3022-127/+336
| | | | | | | | | | | | | | | This makes DuplicateRecordFields more liberal in when it will accept ambiguous record selectors, making use of type information in a similar way to updates. See Note [Disambiguating record fields] for more details. I've also refactored how record updates are disambiguated. Test Plan: New and amended tests in overloadedrecflds Reviewers: simonpj, goldfire, bgamari, austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1391
* integerConstantFolding: when(compiler_debugged(), expect_broken(#11006))Thomas Miedema2015-10-301-1/+2
|
* Kill redundant importSimon Peyton Jones2015-10-301-1/+0
| | | | | | | | | | | | | | | | | I don't really understand this. GHC.hs had: module GHC( ..., module HsSyn, ... ) where import HsSyn import qualified HsSyn -- hack as we want to reexport the whole module GHC now reports the 'import qualified' line as redundant; and it certainly is, because 'import HsSyn' brings everything into scope qualified *and* unqualified. I have no idea why the "hack" was necessary before, but following my refactoring of tcg_used_gres (previous commit), it's reported as redundant, so I've deleted it. I'm making it a separate commit because it seems a bit mysterious and I wanted to draw attention to it.
* Record usage information using GlobalRdrEltSimon Peyton Jones2015-10-3015-255/+189
| | | | | | | | | | | | | | | | | This patch implements an improvment that I've wanted to do for ages, but never gotten around to. Unused imports are computed based on how imported entities occur (qualified, unqualified). This info was accumulated in tcg_used_rdrnames :: Set RdrName. But that was a huge pain, and it got worse when we introduced duplicate record fields. The Right Thing is to record tcg_used_gres :: [GlobalRdrElt], which records the GRE *after* filtering with pickGREs. See Note [GRE filtering] in RdrName. This is much, much bette. This patch deletes quite a bit of code, and is conceptually much easier to follow. Hooray. There should be no change in functionality.
* Fix unused-import stuff in a better waySimon Peyton Jones2015-10-308-49/+77
| | | | | | | | | | | | | | | | The fix for Trac #10890 in commit 1818b48, namely Fix incorrect import warnings when methods with identical names are imported was wrong, as demonstrated by the new test T10890_2. It suppressed far too many warnings! This patch fixes the original problem in a different way, by making RdrName.greUsedRdrName a bit cleverer. But this too is not really the Right Thing. I think the Right Thing is to store the /GRE/ in the tcg_used_rdrnames, not the /RdrName/. That would be a lot simpler and more direct. But one step at a time.
* Swap prov/req in variable naming in Parser.ySimon Peyton Jones2015-10-301-2/+2
| | | | | This is a follow on to the patch for Trac #10928. It's a local renaming of variables only; no change in behaviour.
* Linker: Fix type in m32_free_internalErik de Castro Lopo2015-10-301-1/+1
| | | | | | | | | | | | | | | | | | | | | The code: uint64_t c = __sync_sub_and_fetch((uint64_t*)addr, 1); was causing GCC to emit atomic instructions for 64 bit values which are not available on PowerPC. However, since PowerPC only has a 32 bit address space, use of a 64 bit value is superflous. Switching the type from `uint64_t` to `uintptr_t` should simply do the correct thing on all 32 and 64 bit architectures. Reviewers: austin, bgamari, simonmar Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1399 GHC Trac Issues: #11036
* x86 codegen: don't generate location commentsSergei Trofimovich2015-10-293-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | The following source snippet 'module A where x */* y = 42' when being compiled with '-g' option emits syntactically invalid comment for GNU as: .text .align 8 .loc 1 3 1 /* */* */ Fixed by not emitting comments at all. We already suppress all asm comments in 'X86/Ppr.hs'. Signed-off-by: Sergei Trofimovich <siarheit@google.com> Test Plan: added test and check it works Reviewers: scpmw, simonmar, austin, bgamari Reviewed By: simonmar Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1386 GHC Trac Issues: #10667
* Revert "Generate Typeable info at definition sites"Ben Gamari2015-10-29109-2637/+1359
| | | | | | | | This reverts commit bef2f03e4d56d88a7e9752a7afd6a0a35616da6c. This merge was botched Also reverts haddock submodule.
* Generate Typeable info at definition sitesBen Gamari2015-10-29109-1359/+2637
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements the idea floated in Trac #9858, namely that we should generate type-representation information at the data type declaration site, rather than when solving a Typeable constraint. However, this turned out quite a bit harder than I expected. I still think it's the right thing to do, and it's done now, but it was quite a struggle. See particularly * Note [Grand plan for Typeable] in TcTypeable (which is a new module) * Note [The overall promotion story] in DataCon (clarifies existing stuff) The most painful bit was that to generate Typeable instances (ie TyConRepName bindings) for every TyCon is tricky for types in ghc-prim etc: * We need to have enough data types around to *define* a TyCon * Many of these types are wired-in Also, to minimise the code generated for each data type, I wanted to generate pure data, not CAFs with unpackCString# stuff floating about. Performance ~~~~~~~~~~~ Three perf/compiler tests start to allocate quite a bit more. This isn't surprising, because they all allocate zillions of data types, with practically no other code, esp. T1969 * T3294: GHC allocates 110% more (filed #11030 to track this) * T1969: GHC allocates 30% more * T4801: GHC allocates 14% more * T5321FD: GHC allocates 13% more * T783: GHC allocates 12% more * T9675: GHC allocates 12% more * T5642: GHC allocates 10% more * T9961: GHC allocates 6% more * T9203: Program allocates 54% less I'm treating this as acceptable. The payoff comes in Typeable-heavy code. Remaining to do ~~~~~~~~~~~~~~~ * I think that "TyCon" and "Module" are over-generic names to use for the runtime type representations used in GHC.Typeable. Better might be "TrTyCon" and "TrModule". But I have not yet done this * Add more info the the "TyCon" e.g. source location where it was defined * Use the new "Module" type to help with Trac Trac #10068 * It would be possible to generate TyConRepName (ie Typeable instances) selectively rather than all the time. We'd need to persist the information in interface files. Lacking a motivating reason I have not done this, but it would not be difficult. Refactoring ~~~~~~~~~~~ As is so often the case, I ended up refactoring more than I intended. In particular * In TyCon, a type *family* (whether type or data) is repesented by a FamilyTyCon * a algebraic data type (including data/newtype instances) is represented by AlgTyCon This wasn't true before; a data family was represented as an AlgTyCon. There are some corresponding changes in IfaceSyn. * Also get rid of the (unhelpfully named) tyConParent. * In TyCon define 'Promoted', isomorphic to Maybe, used when things are optionally promoted; and use it elsewhere in GHC. * Cleanup handling of knownKeyNames * Each TyCon, including promoted TyCons, contains its TyConRepName, if it has one. This is, in effect, the name of its Typeable instance. Requires update of the haddock submodule. Differential Revision: https://phabricator.haskell.org/D757
* DynFlags: Add (another) missing hunk from D1360Ben Gamari2015-10-291-0/+5
| | | | What a disaster this merge was.
* TcTyDecls: Remove redundant import of ApplicativeBen Gamari2015-10-291-4/+0
|
* Move mkDefaultMethodIds, mkRecSelBinds from TcTyClsDecls to TcTyDeclsBen Gamari2015-10-293-230/+238
|
* Revert "Build system: don't create mk/are-validating.mk"Thomas Miedema2015-10-294-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This reverts commit aecf4a5f96d0d3ffcf4cb2c67a20a610d7c64486. It turns out the Simons are relying on 'mk/are-validating.mk', see D1307. The workflow they are using is: * run ./validate * find a bug in the compiler * try to fix the bug, running 'make 1' (or 'make 2') repeatedly. Because of 'mk/are-validating.mk', this uses the same build settings as validate. * continue ./validate (--no-clean) I suggested two alternatives: A. run 'make 1 Validating=YES' instead of 'make 1' Problem: when running `./validate --fast` or `./validate --hpc` instead of a normal `./validate`, validate sets ValidateSpeed and ValdateHpc in mk/are-validating.mk. You would for example have to run 'make 1 Validating=YES ValidateSpeed=FAST' instead of 'make 1' to get the same build settings as `./validate --fast`, which is entirely too long and error prone. B. uncomment `#BuildFlavour=validate` in mk/build.mk, and include 'mk/validate.mk'. Problems: * any other settings you have in build.mk will also get used. * the distinction between 'mk/validate.mk' and 'mk/build.mk' becomes less clear. * it is easy to forget to include 'mk/validate.mk'. * the build system again doesn't have access to the ValidateSpeed and ValdateHpc settings set by validate. Neither of these two options is entirely satisfactory. Reviewers: austin, bgamari Differential Revision: https://phabricator.haskell.org/D1383
* Record pattern synonymsMatthew Pickering2015-10-2960-268/+1061
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements an extension to pattern synonyms which allows user to specify pattern synonyms using record syntax. Doing so generates appropriate selectors and update functions. === Interaction with Duplicate Record Fields === The implementation given here isn't quite as general as it could be with respect to the recently-introduced `DuplicateRecordFields` extension. Consider the following module: {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE PatternSynonyms #-} module Main where pattern S{a, b} = (a, b) pattern T{a} = Just a main = do print S{ a = "fst", b = "snd" } print T{ a = "a" } In principle, this ought to work, because there is no ambiguity. But at the moment it leads to a "multiple declarations of a" error. The problem is that pattern synonym record selectors don't do the same name mangling as normal datatypes when DuplicateRecordFields is enabled. They could, but this would require some work to track the field label and selector name separately. In particular, we currently represent datatype selectors in the third component of AvailTC, but pattern synonym selectors are just represented as Avails (because they don't have a corresponding type constructor). Moreover, the GlobalRdrElt for a selector currently requires it to have a parent tycon. (example due to Adam Gundry) === Updating Explicitly Bidirectional Pattern Synonyms === Consider the following ``` pattern Silly{a} <- [a] where Silly a = [a, a] f1 = a [5] -- 5 f2 = [5] {a = 6} -- currently [6,6] ``` === Fixing Polymorphic Updates === They were fixed by adding these two lines in `dsExpr`. This might break record updates but will be easy to fix. ``` + ; let req_wrap = mkWpTyApps (mkTyVarTys univ_tvs) - , pat_wrap = idHsWrapper } +, pat_wrap = req_wrap } ``` === Mixed selectors error === Note [Mixed Record Field Updates] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Consider the following pattern synonym. data MyRec = MyRec { foo :: Int, qux :: String } pattern HisRec{f1, f2} = MyRec{foo = f1, qux=f2} This allows updates such as the following updater :: MyRec -> MyRec updater a = a {f1 = 1 } It would also make sense to allow the following update (which we reject). updater a = a {f1 = 1, qux = "two" } ==? MyRec 1 "two" This leads to confusing behaviour when the selectors in fact refer the same field. updater a = a {f1 = 1, foo = 2} ==? ??? For this reason, we reject a mixture of pattern synonym and normal record selectors in the same update block. Although of course we still allow the following. updater a = (a {f1 = 1}) {foo = 2} > updater (MyRec 0 "str") MyRec 2 "str"
* Revert "Build system: don't add ALL_HC_OPTS when linking"Ben Gamari2015-10-293-4/+4
| | | | | | | This reverts commit 9fc2d777f53110040f48ab27643a16888fa377f5. This appears to cause interface file issues during rebuilds. Punting back to @thomie for further investigation.
* Testsuite: report and error out on unfound testsThomas Miedema2015-10-293-4/+19
| | | | | | | | | | | | | | | | | | | Users are sometimes confused why their test doesn't run. It is usually because of a misspelled testname, for example using 'TEST=1234' instead of 'TEST=T1234'. After this patch it is hopefully more clear what the problem is, showing: ERROR: tests not found: ['1234'] Instead of: 0 total tests, which gave rise to 0 test cases, of which 0 were skipped Reviewed by: austin, bgamari Differential Revision: https://phabricator.haskell.org/D1388
* Backpack documentation updates for component IDs [no-ci]Edward Z. Yang2015-10-291-160/+188
| | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
* Fix rts/T9579 tests on OS XErik de Castro Lopo2015-10-291-1/+1
| | | | | | | | | | | Sed on OS X does not understand 's/[0-9]\+ bytes/NUM bytes/g' but sed on Linux and OS X do understand 's/[0-9]* bytes/NUM bytes/g'. Test Plan: Run all rts/T9579 tests on Linux and Mac Reviewers: thomie, austin, bgamari Differential Revision: https://phabricator.haskell.org/D1394
* rts/Linker.c: Drop support for legacy OS X dyn loadingErik de Castro Lopo2015-10-291-15/+1
| | | | | | | | | | | | | Drop support for old OS X (OS X 10.2 and earlier) dynamic linking. 10.3 was released in 2003. Test Plan: Validate on OS X and Linux. Reviewers: bgamari, thomie, austin Reviewed By: thomie, austin Differential Revision: https://phabricator.haskell.org/D1393
* Update `deepseq` submoduleHerbert Valerio Riedel2015-10-281-0/+0
| | | | This is done now to prepare for #11026
* Update haskeline/terminfo submodulesHerbert Valerio Riedel2015-10-282-0/+0
| | | | | | | This is needed to prepare for #11026 as these updates relax the upper bounds on `base` to allow for `base-4.9.0.0` This update contains no code-changes to terminfo/haskeline yet
* Pattern synonyms: swap provided/requiredSimon Peyton Jones2015-10-2816-33/+111
| | | | | | | | | | | | | | This patch swaps the order of provided and required constraints in a pattern signature, so it now goes pattern P :: req => prov => t1 -> ... tn -> res_ty See the long discussion in Trac #10928. I think I have found all the places, but I could have missed something particularly in comments. There is a Haddock changes; so a submodule update.
* Build system: don't add ALL_HC_OPTS when linkingThomas Miedema2015-10-283-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The current scheme in rules/distdir-way-opts.mk is something like this: GHC_LD_OPTS = MOST_HC_OPTS + ALL_LD_OPTS MOST_DIR_HC_OPTS = MOST_HC_OPTS + -odir,-hidir,-stubdir ALL_HC_OPTS = MOST_DIR_HC_OPTS + -hisuf,-osuf,-hcsuf,-split-objs,-dynamic-too Notice that both ALL_HC_OPTS and GHC_LD_OPTS include MOST_HC_OPTS, and currently both got added when linking. Adding MOST_HC_OPTS twice results in overly long and hard to decipher command lines (and build logs). This commit fixes that. Afaik, -odir,-hidir,-stubdir,-hisuf,-osuf,-hcsuf,-spit-objs,-dynamic-too are all not needed when linking, so this change should be safe to make. GHC_LD_OPTS is for linking, ALL_HC_OPTS is for compiling. ALL_HC_OPTS was added to the linking commands in 37a6a52facd1c3999ce4472c50b0030568be1e04, to make sure -no-user-package-conf would be in the options list. It still is after this change. Reviewers: austin, bgamari Differential Revision: https://phabricator.haskell.org/D1379
* PrelNames: Fix duplicate uniqueBen Gamari2015-10-271-1/+1
| | | | | Previously unboundKey and fromIntegerClassOpKey were sharing a Unique Reassign unboundKey to `mkPreludeMiscIdUnique 158`