Simon Marlow [Mon, 8 Oct 2007 13:49:58 +0000 (13:49 +0000)]
error message fix (#1758)
Thorkil Naur [Fri, 5 Oct 2007 14:41:05 +0000 (14:41 +0000)]
FIX validate for PPC Mac OS X - RegAllocStats.hs
Thorkil Naur [Fri, 5 Oct 2007 14:36:07 +0000 (14:36 +0000)]
FIX validate for PPC Mac OS X - RegAllocLinear.hs
Thorkil Naur [Fri, 5 Oct 2007 14:49:08 +0000 (14:49 +0000)]
FIX validate for PPC Mac OS X - Linker.c
Thorkil Naur [Fri, 5 Oct 2007 14:44:54 +0000 (14:44 +0000)]
FIX validate for PPC Mac OS X - Evac.h
Simon Marlow [Mon, 8 Oct 2007 13:13:05 +0000 (13:13 +0000)]
FIX #1748: -main-is wasn't handling the case of a single hierarchical module
test case is driver062.5
jochemberndsen@dse.nl [Thu, 27 Sep 2007 13:26:49 +0000 (13:26 +0000)]
FIX BUILD FD_SETSIZE signed
On FreeBSD FD_SETSIZE is unsigned. Cast it to a signed int
for portability.
jochemberndsen@dse.nl [Thu, 27 Sep 2007 13:26:19 +0000 (13:26 +0000)]
FIX BUILD addDLL returns const char*
addDLL returns const char*, not just a char*.
Fix compiler warning
jochemberndsen@dse.nl [Wed, 26 Sep 2007 20:37:50 +0000 (20:37 +0000)]
FIX BUILD `set -o igncr'-issue on FreeBSD
`set -o igncr' does not work on non-cygwin-systems.
Fail silently if this command does not work, instead
of aborting the build.
Simon Marlow [Mon, 8 Oct 2007 11:57:40 +0000 (11:57 +0000)]
comment-out "use vars" in 3 places (see #1739)
David Waern [Tue, 2 Oct 2007 14:38:49 +0000 (14:38 +0000)]
Change DOCOPTIONS pragma to DOC_OPTIONS
MERGE TO STABLE
David Waern [Tue, 2 Oct 2007 14:37:13 +0000 (14:37 +0000)]
FIX: parsing of doc options
Lexing of the doc options pragma was changed, but but no change was
made to the parser to reflect that. This patch fixes this problem.
MERGE TO STABLE
David Waern [Tue, 2 Oct 2007 14:34:59 +0000 (14:34 +0000)]
FIX: add missing case to OccName.isSymOcc
Manuel M T Chakravarty [Tue, 2 Oct 2007 13:07:36 +0000 (13:07 +0000)]
Remove warnings from WwLib
Manuel M T Chakravarty [Tue, 2 Oct 2007 13:04:07 +0000 (13:04 +0000)]
FIX: mkWWcpr takes open alg types into account
- This fixed the failures of GMapAssoc and GMapTop for optmising ways
MERGE TO STABLE
Manuel M T Chakravarty [Mon, 1 Oct 2007 15:43:43 +0000 (15:43 +0000)]
FIX #1738: KPush rule of FC must take dataConEqTheta into account
MERGE TO STABLE
Manuel M T Chakravarty [Sat, 29 Sep 2007 12:26:24 +0000 (12:26 +0000)]
FIX #1729: Don't try to expand syn families with -XLiberalTypeSynonyms
MERGE TO STABLE
Manuel M T Chakravarty [Sat, 29 Sep 2007 12:19:41 +0000 (12:19 +0000)]
Some more traceTcs
Manuel M T Chakravarty [Fri, 28 Sep 2007 22:55:41 +0000 (22:55 +0000)]
FIX: Make boxy splitters aware of type families
MERGE TO STABLE
Pepe Iborra [Thu, 27 Sep 2007 15:13:00 +0000 (15:13 +0000)]
Finally, I managed to squash an infamous bug in :print
It turns out the newtype handling code in :print
was slipping non mutable Tyvars in the types reconstructed.
The error message eventually produced was rather obscure:
[src/Tp.hs:75:28-64] *MainTp> :p x
*** Exception: No match in record selector Var.tcTyVarDetails
[src/Tp.hs:75:28-64] *MainTp>
Due to non mutable tyvars, unifyType was failing.
A well placed assertion in the unifyType code would have made
my life much easier.
Which reminds me I should install a -ddump-* system in the
RTTI subsystem, or future hackers will run away in swearing.
MERGE TO STABLE
Pepe Iborra [Thu, 27 Sep 2007 14:15:49 +0000 (14:15 +0000)]
Be a bit more flexible in terminal identification for do_bold
In Os X for instance, by default we have TERM=xterm-color
MERGE TO STABLE
Ian Lynagh [Thu, 27 Sep 2007 13:04:27 +0000 (13:04 +0000)]
html_installed_root shouldn't contain $$pkgid
This actually didn't break anything, as the shell expanded $pkgid to the
empty string, but it was still wrong.
simonpj@microsoft.com [Thu, 27 Sep 2007 11:08:42 +0000 (11:08 +0000)]
Comments and debug output only
Simon Marlow [Thu, 27 Sep 2007 10:25:39 +0000 (10:25 +0000)]
further stub filename fix: I managed to break non-stubdir -fvia-C compilation
Simon Marlow [Thu, 27 Sep 2007 09:13:31 +0000 (09:13 +0000)]
also acquire/release task->lock across fork()
further attempt to fix #1391 on MacOS
Simon Marlow [Wed, 26 Sep 2007 13:45:39 +0000 (13:45 +0000)]
FIX -stubdir bug: the .hc file was #including the wrong _stub.h filename
Using -stubdir together with hierarchical modules, -fvia-C, and --make
is essentially broken in 6.6.x. Recently discovered by Cabal's use of
-stubdir.
Test cases: driver027/driver028 (I've updated them to use -fvia-C, in
order to test for this bug).
Ian Lynagh [Wed, 26 Sep 2007 12:26:37 +0000 (12:26 +0000)]
Add STANDARD_OPTS to SRC_HC_OPTS in rts/Makefile so we get -I../includes for .cmm files
Patch from Clemens Fruhwirth
Simon Marlow [Wed, 26 Sep 2007 10:07:32 +0000 (10:07 +0000)]
fix #1734, panic in :show modules after load failure
Clemens Fruhwirth [Wed, 26 Sep 2007 08:48:02 +0000 (08:48 +0000)]
Remove current package from preloaded package set
andy@galois.com [Wed, 26 Sep 2007 05:53:31 +0000 (05:53 +0000)]
Fixing #1340, adding HPC Documentation
Simon Marlow [Tue, 25 Sep 2007 13:26:00 +0000 (13:26 +0000)]
fix to previous fix to THUNK_SELECTOR machinery
It turns out I didn't get it quite right in the case of compacting
collection. This should make it work again.
simonpj@microsoft.com [Mon, 24 Sep 2007 16:28:47 +0000 (16:28 +0000)]
Be more specific about file-header pragmas
Document the rules for pragmas that must occur at the top of a file.
Please merge this patch
Simon Marlow [Mon, 24 Sep 2007 10:33:23 +0000 (10:33 +0000)]
comments only: point to relevant bug reports
Simon Marlow [Mon, 17 Sep 2007 15:18:34 +0000 (15:18 +0000)]
FIX #1038: failure of selector-thunk machinery to do its job
After a couple of abortive attempts, I think I've got this right.
When the GC sees a chain of the form
snd (_, snd (_, snd (_, ...)))
it can now deal with an arbitrary nesting depth, whereas previously it
had a depth limit which was necessitated by the use of recursion. Now
we chain all the selector thunks together in the heap, and go back and
update them all when we find the value at the end of the chain.
While I was here I removed some old cruft in eval_thunk_selector()
which was carefully manintaing invariants that aren't necessary any
more, the main one being that evacuate() can safely be passed a
to-space pointer now.
In addition to validate I've tested building a stage3 compiler with
and without +RTS -c, so I'm reasonably sure this is safe.
Simon Marlow [Fri, 14 Sep 2007 14:55:19 +0000 (14:55 +0000)]
attempt to fix #1391, hold locks across fork() and initialize them in the child
Ian Lynagh [Sun, 23 Sep 2007 20:49:40 +0000 (20:49 +0000)]
Put packages in ../$$pkgid not ../$$pkg
Ian Lynagh [Sun, 23 Sep 2007 18:16:20 +0000 (18:16 +0000)]
Notice when C modules have changed when deciding whether or not to link
Based on a patch from Lemmih
Ian Lynagh [Sun, 23 Sep 2007 17:42:42 +0000 (17:42 +0000)]
Whitespace changes only
Ian Lynagh [Sun, 23 Sep 2007 16:36:40 +0000 (16:36 +0000)]
Remove remaining bits of bindist "make in-place"
Ian Lynagh [Sun, 23 Sep 2007 13:18:45 +0000 (13:18 +0000)]
Add an entry for strings treated as ISO-8859-1 to the users guide bug list
sven.panne@aedion.de [Sun, 23 Sep 2007 12:06:36 +0000 (12:06 +0000)]
Fix bug #1725 (Haddock links between packages)
Resolving this bug is a bit tricky, it boils down to the question: Should the
Haddock links between packages include the package version or not?
Pro: We can differentiate between various versions of the same package,
installed all at once. (How often does this really happen in practice?)
Cons: When package A refers to a package B, and B is later upgraded, links
in A's documentation will break. Furthermore, if an *additional* version of
B is installed, which version should A refer to?
Because IMHO it is not clear what to do when version numbers are included,
let's leave them out. If somebody has a better idea, feel free to submit a
better patch.
MERGE TO STABLE
sven.panne@aedion.de [Sun, 23 Sep 2007 09:43:58 +0000 (09:43 +0000)]
Unbreak "dist" target for fresh trees
The previous hack to include Parser.hs in source distros broke the possibility
of doing a "make dist" in a fresh tree, i.e. one which has just been checked
out and configured, but *not* built. Of course you will need Happy for such a
source distro later, but at least the freedom to do this is important.
The ultimate goal should be that something like "make dist" will work in a
freshly checked out tree, with no prerequisite steps (this is very common in
most projects). We should move towards that goal, not away from it...
MERGE TO STABLE
shelarcy [Thu, 20 Sep 2007 13:01:59 +0000 (13:01 +0000)]
make stamp.inplace-gcc-lib copy $(LD) instead of $(GccDir)ld.exe to avoid building problem
v.dijk.bas@gmail.com [Thu, 20 Sep 2007 12:13:06 +0000 (12:13 +0000)]
Removed duplicate entry for derbugging flag -ddump-tc from the user guide
Ian Lynagh [Fri, 21 Sep 2007 16:53:16 +0000 (16:53 +0000)]
Fix building with compilers which don't have an integer for a patch level
Ian Lynagh [Fri, 21 Sep 2007 16:35:52 +0000 (16:35 +0000)]
Move OPTIONS pragmas above comments
Fixes building with -Werror (i.e. validate) and GHC < 6.6
Norman Ramsey [Fri, 21 Sep 2007 13:41:24 +0000 (13:41 +0000)]
massive convulsion in ZipDataflow
After my talk, I got the idea of 'shallow rewriting' for the
dataflow framework. Here it is implemented, along with
some related ideas late making Graph and not LGraph primary.
The only bad thing is that the whole bit is stitched together
out of ill-fitting pieces, kind of like Frankenstein's monster.
A new ZipDataflow will rise out of the ashes.
Norman Ramsey [Fri, 21 Sep 2007 13:40:35 +0000 (13:40 +0000)]
incomplete start on set of intervals for stack model
simonpj@microsoft.com [Wed, 19 Sep 2007 15:05:44 +0000 (15:05 +0000)]
Small changes to mk-ing flow graphs
- ZipCfg: add mkBlockId :: Unique -> BlockId
- MkZipCfg: change sequence --> catAGrpahs
- MkZipCfgCmm: add mkCmmIfThen
Not fully validated, but I don't think anything will break
simonpj@microsoft.com [Wed, 19 Sep 2007 15:03:45 +0000 (15:03 +0000)]
Mostly comments, following NR/SPJ meeting
Ian Lynagh [Thu, 20 Sep 2007 18:39:03 +0000 (18:39 +0000)]
Remove a redundant part of distrib/Makefile's "make install"
simonpj@microsoft.com [Thu, 20 Sep 2007 12:00:49 +0000 (12:00 +0000)]
Fix Trac #1718: interaction of error, unlifted tuples, and casts
See Note [Float coercions (unlifted)] in Simplify
Test is simpl018
Ian Lynagh [Wed, 19 Sep 2007 19:42:22 +0000 (19:42 +0000)]
Hack to get haskell-src's Parser.hs into source distributions
Ian Lynagh [Wed, 19 Sep 2007 14:01:00 +0000 (14:01 +0000)]
Fix --print-docdir for relocatable builds; fixes #1226
Ian Lynagh [Wed, 19 Sep 2007 14:00:37 +0000 (14:00 +0000)]
Use $(RelocatableBuild) rather than $(Windows)
simonpj@microsoft.com [Wed, 19 Sep 2007 17:12:07 +0000 (17:12 +0000)]
Fix exponential-time behaviour with type synonyms; rename -XPartiallyAppliedTypeSynonyms to -XLiberalTypeSynonyms
Fixes exponential behaviour present in GHC 6.6!
I renamed the flag because the old (not very old) name wasn't
describing what it does.
Manuel M T Chakravarty [Wed, 19 Sep 2007 15:07:38 +0000 (15:07 +0000)]
FIX #1688: Givens in checkLoop are not that rigid after all
- This patch re-instates the policy of 6.6.1 to zonk the given constraints
in the simplifier loop.
MERGE TO STABLE
Manuel M T Chakravarty [Wed, 19 Sep 2007 12:20:11 +0000 (12:20 +0000)]
FIX #1713: watch out for type families in splitAppTy functions
MERGE TO STABLE
Ian Lynagh [Tue, 18 Sep 2007 21:57:52 +0000 (21:57 +0000)]
Catch any exceptions thrown by getEnv; fixes #1704
simonpj@microsoft.com [Wed, 19 Sep 2007 14:28:21 +0000 (14:28 +0000)]
Make the error message mentioning -XPatternSignatures spell the flag correctly
Ian Lynagh [Tue, 18 Sep 2007 20:12:49 +0000 (20:12 +0000)]
Give Windows its own definitions of docdir (and htmldir etc)
Ian Lynagh [Tue, 18 Sep 2007 20:06:37 +0000 (20:06 +0000)]
Include build.mk or validate{,-settings}.mk through custom-settings.mk
Ian Lynagh [Tue, 18 Sep 2007 19:48:39 +0000 (19:48 +0000)]
Install extra-gcc-opts in bindists
Ian Lynagh [Tue, 18 Sep 2007 18:45:09 +0000 (18:45 +0000)]
Add validate.mk to .darcs-boring
Don Stewart [Sun, 16 Sep 2007 03:48:45 +0000 (03:48 +0000)]
add support for EM_AMD64 elf machine type, openbsd/amd64 ghci works
Don Stewart [Sun, 16 Sep 2007 01:27:28 +0000 (01:27 +0000)]
patch Linker.c for amd64/openbsd
Ian Lynagh [Tue, 18 Sep 2007 16:33:31 +0000 (16:33 +0000)]
MERGED: Another attempt at getting bindists working everywhere
Ian Lynagh <igloo@earth.li>**
20070916005328] {
Ben.Lippmeier@anu.edu.au [Mon, 17 Sep 2007 13:26:14 +0000 (13:26 +0000)]
Tune coalescing in non-iterative register allocator
If iterative coalescing isn't turned on, then do a single aggressive
coalescing pass for the first build/color cycle and then back off to
conservative coalescing for subseqent passes.
Aggressive coalescing is a cheap way to eliminate lots of the reg-reg
moves, but it can make the graph less colorable - if we turn it on
for every pass then allocation for code with a large amount of register
pressure (ie SHA1) doesn't converge in a sensible number of cycles.
Ben.Lippmeier@anu.edu.au [Mon, 17 Sep 2007 12:42:41 +0000 (12:42 +0000)]
Bugfix to iterative coalescer
Coalescences must be applied to the unsimplified graph in the same order
they were found by the iterative coalescing algorithm - otherwise
the vreg rewrite mapping will be wrong and badness will ensue.
Ben.Lippmeier@anu.edu.au [Mon, 17 Sep 2007 11:30:24 +0000 (11:30 +0000)]
Add -dasm-lint
When -dasm-lint is turned on the register conflict graph is checked for
internal consistency after each build/color pass. Make sure that all
edges point to valid nodes, that nodes are colored differently to their
neighbours, and if the graph is supposed to be colored, that all nodes
actually have a color.
Ben.Lippmeier@anu.edu.au [Fri, 14 Sep 2007 16:42:34 +0000 (16:42 +0000)]
Count CmmTops processed so far in the native code generator
To help with debugging / nicer -ddump-asm-regalloc-stages
Ben.Lippmeier@anu.edu.au [Fri, 14 Sep 2007 16:14:08 +0000 (16:14 +0000)]
Change spill cost function back to inverse length of live range.
On further testing it turns out that using Chaitin's spill cost formula
of counting the number of uses of a var and then dividing by the degree
of the node isn't actually a win. Perhaps because this isn't counting
the number of actual spills inserted in the output code.
This would be worth revisiting if other work manages to increase the
register pressure in the native code.
Ben.Lippmeier@anu.edu.au [Fri, 14 Sep 2007 09:43:20 +0000 (09:43 +0000)]
Replace missing '#' on options pragma
Ben.Lippmeier@anu.edu.au [Fri, 14 Sep 2007 09:39:07 +0000 (09:39 +0000)]
Better cleaning of spills in spill cleaner
Track what slots each basic block reloads from. When cleaning spill
instructions we can use this information to decide whether the slot
spilled to will ever be read from on this path.
Norman Ramsey [Mon, 17 Sep 2007 17:29:39 +0000 (17:29 +0000)]
added node to push a closure onto the current call context
Norman Ramsey [Mon, 17 Sep 2007 16:17:15 +0000 (16:17 +0000)]
tightened some dataflow code as part of preparing a talk
Norman Ramsey [Mon, 17 Sep 2007 16:16:34 +0000 (16:16 +0000)]
added 'filterRegsUsed' to CmmExpr
andy@galois.com [Mon, 17 Sep 2007 23:06:41 +0000 (23:06 +0000)]
Writing out .tix file only if you are the original process, not a child.
This lets us gain coverage on programs that use fork, like xmonad.
* To be merged to STABLE *
andy@galois.com [Mon, 17 Sep 2007 23:02:01 +0000 (23:02 +0000)]
removing the functions hs_hpc_read and hs_hpc_write inside Hpc.c, they are dead code.
* To be merged to STABLE. *
Ian Lynagh [Mon, 17 Sep 2007 09:43:00 +0000 (09:43 +0000)]
Clean stage<n>/ghc-inplace.c
simonpj@microsoft.com [Mon, 17 Sep 2007 16:11:33 +0000 (16:11 +0000)]
Comments only
simonpj@microsoft.com [Mon, 17 Sep 2007 16:07:08 +0000 (16:07 +0000)]
Loosen the syntax of types slightly
This change allows you to write
f :: (Eq a) => (Ord b) => a -> b -> b
Previously you could only have a forall and context after '->'
but not after '=>' which is strange and inconsistent.
Making the parser a bit more generous didn't change the number
of shift/reduce conflicts.
tc236 tests.
Simon Marlow [Mon, 17 Sep 2007 12:01:56 +0000 (12:01 +0000)]
avoid platform dependencies: my_uintptr_t ==> StgWord
Manuel M T Chakravarty [Sun, 16 Sep 2007 13:04:19 +0000 (13:04 +0000)]
FIX: TypeFamilies: should_compile/Simple12
- checkTauTvUpdate now distinguishes between whether
(1) a type variables occurs only in type family parameters
(in which case unification is to be deferred)
(2) other variable occurences
(which case we fail with a cannot create infinite type message, as before)
sven.panne@aedion.de [Sun, 16 Sep 2007 11:19:27 +0000 (11:19 +0000)]
Keep valgrind happy when calling timer_create
Fill all of the sigevent structure with zeroes before individual fields are
set. Although not strictly necessary, this keeps tools like valgrind from
complaining about passing uninitialized data, which is a good thing.
MERGE TO STABLE
Norman Ramsey [Sat, 15 Sep 2007 21:54:14 +0000 (21:54 +0000)]
reloads are now sunk as deep as possible
Norman Ramsey [Sat, 15 Sep 2007 21:53:37 +0000 (21:53 +0000)]
added instance declarations so we can fold over local registers used in Middle and Last nodes
Norman Ramsey [Sat, 15 Sep 2007 21:53:03 +0000 (21:53 +0000)]
added monadic mapM_blocks. the fear, the fear...
Norman Ramsey [Sat, 15 Sep 2007 21:52:38 +0000 (21:52 +0000)]
fix misspelled constructor
Norman Ramsey [Sat, 15 Sep 2007 21:51:38 +0000 (21:51 +0000)]
add another way to run in the fuel monad (this is a mess right now)
Norman Ramsey [Sat, 15 Sep 2007 20:18:49 +0000 (20:18 +0000)]
lay ground for more readable dumping of CmmGraph
Norman Ramsey [Sat, 15 Sep 2007 20:17:46 +0000 (20:17 +0000)]
add a function to help identify unique predecessors
Norman Ramsey [Sat, 15 Sep 2007 20:17:19 +0000 (20:17 +0000)]
scrub away remaining MidNop
Norman Ramsey [Sat, 15 Sep 2007 20:16:51 +0000 (20:16 +0000)]
changes needed to get map_blocks to actually compile :-(
Norman Ramsey [Sat, 15 Sep 2007 20:15:25 +0000 (20:15 +0000)]
remove an unwanted language extension
Norman Ramsey [Sat, 15 Sep 2007 20:14:48 +0000 (20:14 +0000)]
drop the old, redundant implementation of postorder_dfs
Norman Ramsey [Sat, 15 Sep 2007 20:14:14 +0000 (20:14 +0000)]
eliminate the last vestige of UniqSM from ZipCfg
Norman Ramsey [Sat, 15 Sep 2007 20:13:55 +0000 (20:13 +0000)]
add map_blocks to ZipCfg
Norman Ramsey [Sat, 15 Sep 2007 20:12:43 +0000 (20:12 +0000)]
get rid of MidNop
Norman Ramsey [Sat, 15 Sep 2007 20:10:30 +0000 (20:10 +0000)]
get freshBlockId out of ZipCfg and bury it in MkZipCfg where it belongs