summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Lock the StablePtr table during GCSimon Marlow2009-06-043-0/+26
| | | | Allows hs_free_fun_ptr() to be called by a separate thread
* fix $(TOP)Simon Marlow2009-06-041-1/+1
|
* remove a prototype that shouldn't be hereSimon Marlow2009-06-041-2/+0
|
* Merge the TODO lists in ghc.mkIan Lynagh2009-06-031-5/+0
|
* Tighten up the DocBook XSL stylesheet testSimon Marlow2009-06-031-9/+20
| | | | It wasn't failing even when the DTD was not found.
* fix logic for BUID_DOCBOOK_HTMLSimon Marlow2009-06-031-1/+1
|
* Allow RULES for seq, and exploit themsimonpj@microsoft.com2009-06-038-131/+230
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Roman found situations where he had case (f n) of _ -> e where he knew that f (which was strict in n) would terminate if n did. Notice that the result of (f n) is discarded. So it makes sense to transform to case n of _ -> e Rather than attempt some general analysis to support this, I've added enough support that you can do this using a rewrite rule: RULE "f/seq" forall n. seq (f n) e = seq n e You write that rule. When GHC sees a case expression that discards its result, it mentally transforms it to a call to 'seq' and looks for a RULE. (This is done in Simplify.rebuildCase.) As usual, the correctness of the rule is up to you. This patch implements the extra stuff. I have not documented it explicitly in the user manual yet... let's see how useful it is first. The patch looks bigger than it is, because a) Comments; see esp MkId Note [seqId magic] b) Some refactoring. Notably, I moved the special desugaring for seq from MkCore back into DsUtils where it properly belongs. (It's really a desugaring thing, not a CoreSyn invariant.) c) Annoyingly, in a RULE left-hand side we need to be careful that the magical desugaring done in MkId Note [seqId magic] item (c) is *not* done on the LHS of a rule. Or rather, we arrange to un-do it, in DsBinds.decomposeRuleLhs.
* Remove the unused remains of __decodeFloatIan Lynagh2009-06-026-86/+1
|
* Remove old GUM/GranSim codeSimon Marlow2009-06-0243-4164/+31
|
* tidy up autoconfiguration of docbook stuffSimon Marlow2009-06-024-31/+28
| | | | | | | | * use --nonet, so xmllint and co don't go off trying to download stuff from the web * use the http:// reference for the stylesheet, so we don't have to search the filesystem for it (should speedup ./configure)
* fix 'make sdist'Simon Marlow2009-06-021-2/+2
|
* Add a comment about why RM and RM_OPTS are not in config.mkIan Lynagh2009-06-021-0/+3
|
* Follow the change in RM's definition in distrib/Makefile-bin-vars.inIan Lynagh2009-06-021-1/+2
|
* Fix Trac #3265: type operators in type/class declarationssimonpj@microsoft.com2009-06-021-1/+25
| | | | | | | | | | | | | | | We should accept these: data a :*: b = .... or data (:*:) a b = ... only if -XTypeOperators is in force. And similarly class decls. This patch fixes the problem. It uses the slightly-nasty OccName.isSymOcc, but the only way to avoid that is to cach the result in OccNames which seems overkill to us.
* Use -w when compiling libffi, to stop -Werror failuresIan Lynagh2009-06-021-2/+4
|
* Add a section "Multi-threading and the FFI"Simon Marlow2009-06-022-56/+131
| | | | and collect all the information about multi-threaded FFI use into it.
* emit a helpful message if you say 'make html' and BUILD_DOCBOOK_HTML=NOSimon Marlow2009-06-021-2/+15
|
* mention documentation tools in the summary; tidy up formattingSimon Marlow2009-06-021-7/+10
|
* depend on mk/project.mk appropriatelySimon Marlow2009-05-293-6/+6
|
* fix commentSimon Marlow2009-05-291-1/+1
|
* Unquote a $(LN_S) in ghc/ghc.mkIan Lynagh2009-05-301-1/+1
|
* $(XARGS) might include arguments, so don't quote it in makefilesIan Lynagh2009-05-302-3/+3
|
* Quote commands that we run, so they work if there are space in their pathsIan Lynagh2009-05-3029-255/+256
| | | | | I've also added some missing $s to some makefiles. These aren't technically necessary, but it's nice to be consistent.
* Remove some redundant code from hi-rule.mkIan Lynagh2009-05-301-2/+0
|
* make the clean_libraries target work, so you can "make clean" in libraries/Ian Lynagh2009-05-302-3/+5
|
* fix pprDynamicLinkerAsmLabel for Mac OS X x86_64Austin Seipp2009-05-231-0/+4
|
* Make clean_libraries in the same way that we make all_librariesIan Lynagh2009-05-291-2/+3
|
* Tweak mk/sub-makefile.mkIan Lynagh2009-05-291-3/+1
|
* Implement -XMonoLocalBinds: a radical new flagsimonpj@microsoft.com2009-05-292-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new flag -XMonoLocalBinds tells GHC not to generalise nested bindings in let or where clauses, unless there is a type signature, in which case we use it. I'm thinking about whether this might actually be a good direction for Haskell go to in, although it seems pretty radical. Anyway, the flag is easy to implement (look at how few lines change), and having it will allow us to experiement with and without. Just for the record, below are the changes required in the boot libraries -- ie the places where. Not quite as minimal as I'd hoped, but the changes fall into a few standard patterns, and most represent (in my opinion) sytlistic improvements. I will not push these patches, however. == running darcs what -s --repodir libraries/base M ./Control/Arrow.hs -2 +4 M ./Data/Data.hs -7 +22 M ./System/IO/Error.hs +1 M ./Text/ParserCombinators/ReadP.hs +1 == running darcs what -s --repodir libraries/bytestring M ./Data/ByteString/Char8.hs -1 +2 M ./Data/ByteString/Unsafe.hs +1 == running darcs what -s --repodir libraries/Cabal M ./Distribution/PackageDescription.hs -2 +6 M ./Distribution/PackageDescription/Check.hs +3 M ./Distribution/PackageDescription/Configuration.hs -1 +3 M ./Distribution/ParseUtils.hs -2 +4 M ./Distribution/Simple/Command.hs -1 +4 M ./Distribution/Simple/Setup.hs -12 +24 M ./Distribution/Simple/UserHooks.hs -1 +5 == running darcs what -s --repodir libraries/containers M ./Data/IntMap.hs -2 +2 == running darcs what -s --repodir libraries/dph M ./dph-base/Data/Array/Parallel/Arr/BBArr.hs -1 +3 M ./dph-base/Data/Array/Parallel/Arr/BUArr.hs -2 +4 M ./dph-prim-par/Data/Array/Parallel/Unlifted/Distributed/Arrays.hs -6 +10 M ./dph-prim-par/Data/Array/Parallel/Unlifted/Distributed/Combinators.hs -3 +6 M ./dph-prim-seq/Data/Array/Parallel/Unlifted/Sequential/Flat/Permute.hs -2 +4 == running darcs what -s --repodir libraries/syb M ./Data/Generics/Twins.hs -5 +18
* don't shrink the stack smaller than the value set by +RTS -k<size>Simon Marlow2009-05-292-0/+11
|
* Fix bug in previous change: allocate the correct sizeSimon Marlow2009-05-291-2/+3
|
* Make haddocking depend on the library .a filesimonpj@microsoft.com2009-05-291-0/+4
| | | | | | | | | | | | You can't Haddock a library until it's built. Previously that happened automatically because Haddock itself was built with stage2 And all the libraries were built with stage1 But now DPH is built with stage2, so Haddock can get to work too early. This patch adds the missing dependency (thanks to Simon M)
* Fix Trac #3259: expose 'lazy' only after generating interface filessimonpj@microsoft.com2009-05-293-30/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes an insidious and long-standing bug in the way that parallelism is handled in GHC. See Note [lazyId magic] in MkId. Here's the diagnosis, copied from the Trac ticket. par is defined in GHC.Conc thus: {-# INLINE par #-} par :: a -> b -> b par x y = case (par# x) of { _ -> lazy y } -- The reason for the strange "lazy" call is that it fools the -- compiler into thinking that pseq and par are non-strict in -- their second argument (even if it inlines pseq/par at the call -- site). If it thinks par is strict in "y", then it often -- evaluates "y" before "x", which is totally wrong. The function lazy is the identity function, but it is inlined only after strictness analysis, and (via some magic) pretends to be lazy. Hence par pretends to be lazy too. The trouble is that both par and lazy are inlined into your definition of parallelise, so that the unfolding for parallelise (exposed in Parallelise.hi) does not use lazy at all. Then when compiling Main, parallelise is in turn inlined (before strictness analysis), and so the strictness analyser sees too much. This was all sloppy thinking on my part. Inlining lazy after strictness analysis works fine for the current module, but not for importing modules. The fix implemented by this patch is to inline 'lazy' in CorePrep, not in WorkWrap. That way interface files never see the inlined version. The downside is that a little less optimisation may happen on programs that use 'lazy'. And you'll only see this in the results -ddump-prep not in -ddump-simpl. So KEEP AN EYE OUT (Simon and Satnam especially). Still, it should work properly now. Certainly fixes #3259.
* Fix Trac #3262: suppress name-shadow warning for _namessimonpj@microsoft.com2009-05-285-11/+17
| | | | | | | Adopt Max's suggestion for name shadowing, by suppressing shadowing warnings for variables starting with "_". A tiny bit of refactoring along the way.
* don't call Haskeline to read input when stdin is not a terminalSimon Marlow2009-05-281-9/+10
|
* Fix handling of R_SPARC_UA32 relocations in linkerBen.Lippmeier@anu.edu.au2009-05-281-3/+12
| | | | | | These refer to unaligned locations that need to be written byte-at-a-time. This fixes the SPARC ghci failures in the current head.
* Document the fact that Template Haskell type splices worksimonpj@microsoft.com2009-05-281-1/+3
|
* Improve printing of Orig RdrNamessimonpj@microsoft.com2009-05-284-30/+44
| | | | | | | | | | | In Tempate Haskell -ddump-splices, the "after" expression is populated with RdrNames, many of which are Orig things. We used to print these fully-qualified, but that's a bit heavy. This patch refactors the code a bit so that the same print-unqualified mechanism we use for Names also works for RdrNames. Lots of comments too, because it took me a while to figure out how it all worked again.
* Print more nicely in -ddump-splicessimonpj@microsoft.com2009-05-281-12/+16
| | | | | | | | | | | | When you say -ddump-splices, the "before" expression is now *renamed* but not *typechecked" Reason (a) less typechecking crap (b) data constructors after type checking have been changed to their *wrappers*, and that makes them print always fully qualified
* Fix Trac #3261: make default types play nice with -Werrorsimonpj@microsoft.com2009-05-281-6/+7
| | | | | | The trial-and-error for type defaults was not playing nicely with -Werror. The fix is simple.
* Adjust error message slightlysimonpj@microsoft.com2009-05-281-5/+5
|
* White space onlysimonpj@microsoft.com2009-05-281-3/+3
|
* Remove type-ambiguous (fromIntegral 0)::Int, replacing it with just 0simonpj@microsoft.com2009-05-281-1/+1
| | | | | | This unnecessary ambiguity has been there for ages, and is now rejected by -Werror, after fixing #3261
* Move getMainFun to TcRnDriver, trim DynFlags importssimonpj@microsoft.com2009-05-282-12/+7
|
* Comments onlysimonpj@microsoft.com2009-05-281-3/+3
|
* Comments about naming for data constructorssimonpj@microsoft.com2009-05-281-6/+6
|
* Remove dead code isHsVarsimonpj@microsoft.com2009-05-281-5/+1
|
* Round stack size to a whole number of megablocksSimon Marlow2009-05-281-1/+1
| | | | This is not a bug fix, it just makes better use of memory
* Fix #3156: ensure preconditions of splitLargeBlock()Simon Marlow2009-05-281-1/+8
|
* fix it so that 'make' on its own works even if we're not building docsSimon Marlow2009-05-281-0/+3
|