summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix warningsbenl@ouroborus.net2010-10-132-2/+0
|
* RegAlloc: Track slot liveness over jumps in spill cleanerbenl@ouroborus.net2010-10-135-74/+196
|
* Bump Cabal depIan Lynagh2010-10-121-1/+1
|
* Remove __HASKELL1__, __HASKELL98__, __CONCURRENT_HASKELL__Ian Lynagh2010-10-122-59/+1
| | | | | | We used to define these CPP symbols, but nothing on hackage uses them and the first 2 are no longer correct (as we support multiple Haskell versions).
* Follow Cabal changes: Cabal no longer has a docbook userguideIan Lynagh2010-10-122-1/+2
| | | | | For now we don't build the Cabal userguide, but we should add markdown support so that we can do so.
* Fix build on Windows: ghc-pkg/Main.hs needs ForeignFunctionInterfaceIan Lynagh2010-10-121-1/+1
|
* Remove unnecessary importIan Lynagh2010-10-101-1/+0
|
* Make "./validate --slow" run the full testsuiteIan Lynagh2010-10-071-1/+8
|
* Fix build following haskell98 and -fglasgow-exts changesIan Lynagh2010-10-067-9/+10
|
* Don't automatically link the haskell98 packageIan Lynagh2010-10-064-12/+3
| | | | | The default language is now Haskell2010, so this was a little odd. Also, --make is now on by default, so this was largely irrelevant.
* Deprecate -fglasgow-extsIan Lynagh2010-10-061-2/+2
|
* Remove Opt_GADTs and Opt_TypeFamilies from -fglasgow-extsIan Lynagh2010-10-061-3/+1
| | | | This means most code doesn't get caught by monomorphic local bindings.
* Fix Trac #4360: omitted case in combineCtLocsimonpj@microsoft.com2010-10-082-15/+9
|
* Beautiful new approach to the skolem-escape check and untouchablesimonpj@microsoft.com2010-10-0812-89/+130
| | | | | | | | | | | | Instead of keeping a *set* of untouchable variables in each implication contraints, we keep a *range* of uniques for the *touchable* variables of an implication. This are precisely the ones we would call the "existentials" if we were French. It turns out that the code is more efficient, and vastly easier to get right, than the set-based approach. Fixes Trac #4355 among others
* Do less simplification when doing let-generalisationsimonpj@microsoft.com2010-10-081-23/+33
| | | | | | | | This fixes Trac #4361. In a rather delicate way, but no more delicate than before. A more remoseless typechecker would reject #4361 altogether. See Note [Avoid unecessary constraint simplification]
* Suppress ambiguity errors if any other errors occursimonpj@microsoft.com2010-10-081-4/+3
|
* Fix Trac #4361: be more discerning when inferring typessimonpj@microsoft.com2010-10-081-3/+41
| | | | Note [Avoid unecessary constraint simplification] in TcSimplify
* Float out partial applicationsSimon Marlow2010-10-083-22/+82
| | | | | | | | | | This fixes at least one case of performance regression in 7.0, and is nice win on nofib: Program Size Allocs Runtime Elapsed Min +0.3% -63.0% -38.5% -38.7% Max +1.2% +0.2% +0.9% +0.9% Geometric Mean +0.6% -3.0% -6.4% -6.6%
* Suppress knock-on typechecker errorssimonpj@microsoft.com2010-10-081-6/+17
| | | | | | The error cascade caused puzzling errors in T4093b, and suppressing some seems like a good plan. Very few test outputs change.
* Some refactoring and simplification in TcInteract.occurChecksimonpj@microsoft.com2010-10-077-53/+56
|
* Comments onlysimonpj@microsoft.com2010-10-071-12/+14
|
* Implement auto-specialisation of imported Idssimonpj@microsoft.com2010-10-0727-332/+557
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This big-ish patch arranges that if an Id 'f' is * Type-class overloaded f :: Ord a => [a] -> [a] * Defined with an INLINABLE pragma {-# INLINABLE f #-} * Exported from its defining module 'D' then in any module 'U' that imports D 1. Any call of 'f' at a fixed type will generate (a) a specialised version of f in U (b) a RULE that rewrites unspecialised calls to the specialised on e.g. if the call is (f Int dOrdInt xs) then the specialiser will generate $sfInt :: [Int] -> [Int] $sfInt = <code for f, imported from D, specialised> {-# RULE forall d. f Int d = $sfInt #-} 2. In addition, you can give an explicit {-# SPECIALISE -#} pragma for the imported Id {-# SPECIALISE f :: [Bool] -> [Bool] #-} This too generates a local specialised definition, and the corresponding RULE The new RULES are exported from module 'U', so that any module importing U will see the specialised versions of 'f', and will not re-specialise them. There's a flag -fwarn-auto-orphan that warns you if the auto-generated RULES are orphan rules. It's not in -Wall, mainly to avoid lots of error messages with existing packages. Main implementation changes - A new flag on a CoreRule to say if it was auto-generated. This is persisted across interface files, so there's a small change in interface file format. - Quite a bit of fiddling with plumbing, to get the {-# SPECIALISE #-} pragmas for imported Ids. In particular, a new field tgc_imp_specs in TcGblEnv, to keep the specialise pragmas for imported Ids between the typechecker and the desugarer. - Some new code (although surprisingly little) in Specialise, to deal with calls of imported Ids
* Make NameEnv back into type NameEnv a = UniqFM asimonpj@microsoft.com2010-10-071-24/+20
| | | | | | | | I don't think the type distinction of declaring NameEnv with a newtype (as it was) is really useful to us. Moreover, VarEnv is a UniqFM, and I do sometimes want to build an envt with Ids and look up with Names. This may not be the last word on the subject.
* Improve the rule-matchersimonpj@microsoft.com2010-10-072-19/+41
| | | | | | | | | | | | | | | Previously it was rejecting the match Template: forall s t. map s t Actual: map Int t which should obviously be fine. It turns out that this kind of match comes up when specialising. By freshening that t we could avoid the difficulty, but morally the (forall t) binds t and the rule should be alpha-equivalent regardless of the forall'd variables. This patch makes it so, and incidentally makes matching a little more efficient. See Note [Eta expansion] in VarEnv.
* Fix Trac #4345: simplifier bugsimonpj@microsoft.com2010-10-071-8/+25
| | | | | | | | | | This is another long-standing bug, in which there was a possibility that a loop-breaker could lose its loop-breaker-hood OccInfo, and then the simplifer re-simplified the expression. Result, either non-termination or, in the case of #4345, an unbound identifier. The fix is very simple, in Id.transferPolyIdInfo. See Note [transferPolyIdInfo].
* Avoid redundant simplification simonpj@microsoft.com2010-10-072-24/+58
| | | | | | | | | When adding specialisation for imported Ids, I noticed that the Glorious Simplifier was repeatedly (and fruitlessly) simplifying the same term. It turned out to be easy to fix this, because I already had a flag in the ApplyTo and Select constructors of SimplUtils.SimplCont. See Note [Avoid redundant simplification]
* Make the occurrence analyser deal correctly with RULES for imported Idssimonpj@microsoft.com2010-10-071-58/+148
| | | | | | | | | | This patch fixes a long-standing lurking bug, but it surfaced when I was adding specialisation for imported Ids. See Note [ImpRuleUsage], which explains the issue. The solution seems more complicated than the problem really deserves, but I could not think of a simpler way, so I just bit the bullet and wrote the code. Improvements welcome.
* Make warning-freesimonpj@microsoft.com2010-10-071-35/+14
|
* This is just white-space and layoutsimonpj@microsoft.com2010-10-071-18/+27
| | | | (At least, I don't think there is anything else.)
* Fix an ASSERT failure in FamInstEnvsimonpj@microsoft.com2010-10-071-21/+48
| | | | | I added a lot of comments too, to explain the preconditions; esp Note [FamInstEnv]
* Fix a looping bug in the new occur-check codesimonpj@microsoft.com2010-10-071-120/+118
|
* Fix test T4235 with -Osimonpj@microsoft.com2010-10-061-14/+10
| | | | | | The tag2Enum rule wasn't doing the right thing for enumerations with a phantom type parameter, like data T a = A | B
* Make warning-freesimonpj@microsoft.com2010-10-061-9/+13
|
* Major bugfixing pass through the type checkerdimitris@microsoft.com2010-10-066-208/+319
|
* Typechecker performance fixes and flatten skolem bugfixingdimitris@microsoft.com2010-10-046-125/+342
|
* Performance bug fixesdimitris@microsoft.com2010-09-232-15/+83
|
* Fix Trac #4371: matching of view patternssimonpj@microsoft.com2010-10-061-83/+94
|
* Remove unused NoMatchContext construtorsimonpj@microsoft.com2010-10-061-1/+0
|
* Refactoring: mainly rename ic_env_tvs to ic_untchsimonpj@microsoft.com2010-10-066-29/+29
| | | | Plus remember to zonk the free_tvs in TcUnify.newImplication
* remove unnecessary/broken definition of mask_Simon Marlow2010-10-021-5/+0
|
* -fwarn-tabs: add "Warning" to the messageSimon Marlow2010-10-021-1/+1
|
* give a better error message in the non-threaded RTS for out-of-range FDsSimon Marlow2010-09-291-2/+10
| | | | | | # ./aw aw: file descriptor 1027 out of range for select (0--1024). Recompile with -threaded to work around this.
* Fix a very rare crash in GHCiSimon Marlow2010-10-051-13/+11
| | | | | | | | | | When a BCO with a zero-length bitmap was right at the edge of allocated memory, we were reading a word of non-existent memory. This showed up as a segfault in T789(ghci) for me, but the crash was extremely sensitive and went away with most changes. Also, optimised scavenge_large_bitmap a bit while I was in there.
* Using 'stdcall' when it is not supported is only a warning now (#3336)Simon Marlow2010-09-242-2/+4
|
* remove unnecessary stg_noForceIO (#3508)Simon Marlow2010-09-244-30/+6
|
* Replace an outputStr with putStrLn calls; fixes #4332Ian Lynagh2010-10-031-1/+2
|
* make test and fulltest targets in the main Makefile; fixes #4297Ian Lynagh2010-09-302-2/+11
| | | | | | You can now run "make test" in the root, and the fast testsuite will be run with cleaning enabled. It will also put the summary in testsuite_summary.txt.
* Don't show the loaded packages in ":show packages"; fixes #4300Ian Lynagh2010-09-301-5/+0
| | | | It's never worked properly, and the information is in ":show linker".
* Handle EXTRA_LIBRARIES when building programsIan Lynagh2010-09-302-3/+3
| | | | And set hp2ps's EXTRA_LIBRARIES. Based on a patch from Sergei Trofimovich.
* Fix the doc directory on WindowsIan Lynagh2010-09-291-1/+1
|