Roman Leshchinskiy [Thu, 13 Dec 2007 03:48:55 +0000 (03:48 +0000)]
Treat some standard data cons specially during vectorisation
This is a temporary hack which allows us to vectorise literals.
Roman Leshchinskiy [Thu, 13 Dec 2007 03:48:39 +0000 (03:48 +0000)]
More vectorisation-related built ins
Roman Leshchinskiy [Wed, 12 Dec 2007 06:27:14 +0000 (06:27 +0000)]
Track changes to package ndp
Roman Leshchinskiy [Wed, 12 Dec 2007 04:05:21 +0000 (04:05 +0000)]
Add vectorisation built-ins
Simon Marlow [Thu, 13 Dec 2007 15:40:56 +0000 (15:40 +0000)]
FIX #1963: catch Ctrl-C and clean up properly
Roman Leshchinskiy [Fri, 14 Dec 2007 00:30:03 +0000 (00:30 +0000)]
Document the new threshold flags
Roman Leshchinskiy [Fri, 14 Dec 2007 00:27:19 +0000 (00:27 +0000)]
Separate and optional size thresholds for SpecConstr and LiberateCase
This patch replaces -fspec-threshold by -fspec-constr-threshold and
-fliberate-case-threshold. The thresholds can be disabled by
-fno-spec-constr-threshold and -fno-liberate-case-threshold.
simonpj@microsoft.com [Tue, 4 Dec 2007 15:29:03 +0000 (15:29 +0000)]
Make HscTypes.tyThingId respond not panic on ADataCon
simonpj@microsoft.com [Thu, 13 Dec 2007 14:05:32 +0000 (14:05 +0000)]
Use Unix format for RnPat (no other change)
simonpj@microsoft.com [Thu, 13 Dec 2007 14:02:13 +0000 (14:02 +0000)]
Improve free-variable handling for rnPat and friends (fixes Trac #1972)
As well as fixing the immediate problem (Trac #1972) this patch does
a signficant simplification and refactoring of pattern renaming.
Fewer functions, fewer parameters passed....it's all good. But it
took much longer than I expected to figure out.
The most significant change is that the NameMaker type does *binding*
as well as *making* and, in the matchNameMaker case, checks for unused
bindings as well. This is much tider.
(No need to merge to the 6.8 branch, but no harm either.)
Roman Leshchinskiy [Thu, 13 Dec 2007 04:08:35 +0000 (04:08 +0000)]
Allow more than 3 simplifier iterations to be run in phase 0
The number of iterations during the first run of phase 0 was erroneously
hardcoded to 3. It should be *at least* 3 (see comments in code) but can be
more.
Roman Leshchinskiy [Thu, 13 Dec 2007 04:08:22 +0000 (04:08 +0000)]
Document -ddump-simpl-phases
Roman Leshchinskiy [Thu, 13 Dec 2007 04:06:44 +0000 (04:06 +0000)]
New flag: -ddump-simpl-phases
This outputs the core after each simplifier phase (i.e., it produces less
information that -ddump-simpl-iterations).
Roman Leshchinskiy [Thu, 13 Dec 2007 03:46:35 +0000 (03:46 +0000)]
Don't dump simplifier iterations with -dverbose-core2core
SimonPJ says this is the correct behaviour. We still have
-ddump-simpl-iterations.
Simon Marlow [Wed, 12 Dec 2007 10:22:30 +0000 (10:22 +0000)]
"list --simple-output" should be quiet when there are no packages to list
Previously:
$ ghc-pkg list --user --simple-output
ghc-pkg: no matches
$
Now:
$ ghc-pkg list --user --simple-output
$
Roman Leshchinskiy [Thu, 6 Dec 2007 23:30:15 +0000 (23:30 +0000)]
Fix vectorisation bug
Roman Leshchinskiy [Thu, 6 Dec 2007 04:08:29 +0000 (04:08 +0000)]
Vectorisation-related built ins
Roman Leshchinskiy [Thu, 6 Dec 2007 03:25:47 +0000 (03:25 +0000)]
Teach vectorisation about some temporary conversion functions
Roman Leshchinskiy [Wed, 5 Dec 2007 22:13:05 +0000 (22:13 +0000)]
Vectorise case of unit correctly
Roman Leshchinskiy [Wed, 5 Dec 2007 22:12:40 +0000 (22:12 +0000)]
Teach vectorisation about singletonP
Roman Leshchinskiy [Wed, 5 Dec 2007 22:12:13 +0000 (22:12 +0000)]
Optimise desugaring of parallel array comprehensions
Roman Leshchinskiy [Wed, 5 Dec 2007 05:02:21 +0000 (05:02 +0000)]
Teach vectorisation about tuple datacons
Roman Leshchinskiy [Wed, 5 Dec 2007 04:26:49 +0000 (04:26 +0000)]
Track additions to package ndp
Roman Leshchinskiy [Wed, 5 Dec 2007 03:38:59 +0000 (03:38 +0000)]
Track changes to package ndp
simonpj@microsoft.com [Mon, 10 Dec 2007 08:30:53 +0000 (08:30 +0000)]
Improve pretty-printing of InstDecl
Fixes Trac #1966.
Pepe Iborra [Sat, 8 Dec 2007 20:48:15 +0000 (20:48 +0000)]
Comments only
Pepe Iborra [Sat, 8 Dec 2007 19:52:22 +0000 (19:52 +0000)]
Refactoring only
Suspensions in the Term datatype used for RTTI
always get assigned a Type, so there is no reason
to juggle around with a (Maybe Type) anymore.
Pepe Iborra [Sat, 8 Dec 2007 19:30:13 +0000 (19:30 +0000)]
Change the format used by :print to show the content of references
This comes as result of the short discussion linked below.
http://www.haskell.org/pipermail/cvs-ghc/2007-December/040049.html
Pepe Iborra [Sat, 8 Dec 2007 18:09:18 +0000 (18:09 +0000)]
Help the user when she tries to do :history without :trace
Teach GHCi to show a "perhaps you forgot to use :trace?" when
it finds that the user is trying to retrieve an empty :history
Pepe Iborra [Sat, 8 Dec 2007 18:18:30 +0000 (18:18 +0000)]
Prevent the binding of unboxed things by :print
Manuel M T Chakravarty [Sat, 8 Dec 2007 10:50:18 +0000 (10:50 +0000)]
Coercions from boxy splitters must be sym'ed in pattern matches
Manuel M T Chakravarty [Fri, 7 Dec 2007 07:13:02 +0000 (07:13 +0000)]
Properly keep track of whether normalising given or wanted dicts
- The information of whether given or wanted class dictionaries where
normalised by rewriting wasn't always correctly propagated in TcTyFuns,
which lead to malformed dictionary bindings.
- Also fixes a bug in TcPat.tcConPat where GADT equalities where emitted in
the wrong position in case bindings (which led to CoreLint failures).
Manuel M T Chakravarty [Tue, 20 Nov 2007 07:12:08 +0000 (07:12 +0000)]
TcPat.tcConPat uses equalities instead of GADT refinement
* This patch implements the use of equality constraints instead of GADT
refinements that we have been discussing for a while.
* It just changes TcPat.tcConPat. It doesn't have any of the simplification
and dead code removal that is possible due to this change.
* At the moment, this patch breaks a fair number of GADT regression tests.
Ian Lynagh [Fri, 7 Dec 2007 23:46:52 +0000 (23:46 +0000)]
Use installPackage for register --inplace as well as installing
We also need to do the GHC.Prim hack when registering inplace or the
tests that use it fail.
Ian Lynagh [Wed, 5 Dec 2007 12:50:15 +0000 (12:50 +0000)]
Fix the libraries Makefile
x && y
is not the same as
if x; then y; fi
as the latter doesn't fail when x fails
Ian Lynagh [Wed, 5 Dec 2007 01:37:03 +0000 (01:37 +0000)]
Copy hscolour.css into dist/... so it gets installed with the library docs
Ian Lynagh [Wed, 5 Dec 2007 01:17:33 +0000 (01:17 +0000)]
Add the hscolour.css from hscolour 1.8
Ian Lynagh [Fri, 7 Dec 2007 12:13:17 +0000 (12:13 +0000)]
BIN_DIST_INST_SUBDIR Needs to be defined in config.mk so ./Makefile can see it
Ian Lynagh [Wed, 5 Dec 2007 17:03:35 +0000 (17:03 +0000)]
#include ../includes/MachRegs.h rather than just MachRegs.h
This fixes building on NixOS. I'm not sure why it worked everywhere else,
but not on NixOS, before.
Ian Lynagh [Mon, 3 Dec 2007 12:30:31 +0000 (12:30 +0000)]
Fix bindist creation: readline/config.mk is gone
Ian Lynagh [Mon, 3 Dec 2007 12:32:37 +0000 (12:32 +0000)]
FIX #1843: Generate different instructions on PPC
The old ones caused lots of
unknown scattered relocation type 4
errors. Patch from Chris Kuklewicz.
Ian Lynagh [Fri, 7 Dec 2007 18:35:38 +0000 (18:35 +0000)]
Refactor gen_contents_index
Also fixes it with Solaris's sh, spotted by Christian Maeder
Ian Lynagh [Sun, 2 Dec 2007 23:42:22 +0000 (23:42 +0000)]
Use GHC.Exts rather than GHC.Prim
Ian Lynagh [Sun, 2 Dec 2007 21:57:19 +0000 (21:57 +0000)]
Alter the base:GHC.Prim hack in installPackage, following changes in base
simonpj@microsoft.com [Fri, 7 Dec 2007 17:05:07 +0000 (17:05 +0000)]
Remove debug warning, and explain why
Simon Marlow [Thu, 6 Dec 2007 09:24:22 +0000 (09:24 +0000)]
comment only
Simon Marlow [Thu, 6 Dec 2007 09:24:12 +0000 (09:24 +0000)]
comment typo
Simon Marlow [Thu, 6 Dec 2007 09:24:03 +0000 (09:24 +0000)]
add Outputable instance for OccIfaceEq
Simon Marlow [Thu, 6 Dec 2007 09:23:49 +0000 (09:23 +0000)]
Workaround for #1959: assume untracked names have changed
This fixes the 1959 test, but will do more recompilation than is
strictly necessary (but only when -O is on). Still, more
recompilation is better than segfaults, link errors or other random
breakage.
Simon Marlow [Thu, 6 Dec 2007 08:45:56 +0000 (08:45 +0000)]
FIX part of #1959: declaration versions were not being incremented correctly
We were building a mapping from ModuleName to [Occ] from the usage
list, using the usg_mod field as the key. Unfortunately, due to a
very poor naming decision, usg_mod is actually the module version, not
the ModuleName. usg_name is the ModuleName. Since Version is also an
instance of Uniquable, there was no type error: all that happened was
lookups in the map never succeeded. I shall rename the fields of
Usage in a separate patch.
This doesn't completely fix #1959, but it gets part of the way there.
I have to take partial blame as the person who wrote this fragment of
code in late 2006 (patch "Interface file optimisation and removal of
nameParent").
Simon Marlow [Wed, 5 Dec 2007 10:18:14 +0000 (10:18 +0000)]
move FP_FIND_ROOT after the "GHC is required" check
Simon Marlow [Wed, 5 Dec 2007 15:02:30 +0000 (15:02 +0000)]
FIX #1110: hackery also needed when running gcc for CPP
Pepe Iborra [Tue, 4 Dec 2007 10:55:11 +0000 (10:55 +0000)]
Teach :print to follow references (STRefs and IORefs)
Prelude Data.IORef> :p l
l = (_t4::Maybe Integer) : (_t5::[Maybe Integer])
Prelude Data.IORef> p <- newIORef l
Prelude Data.IORef> :p p
p = GHC.IOBase.IORef (GHC.STRef.STRef {((_t6::Maybe Integer) :
(_t7::[Maybe Integer]))})
Prelude Data.IORef> :sp p
p = GHC.IOBase.IORef (GHC.STRef.STRef {(_ : _)})
I used braces to denote the contents of a reference.
Perhaps there is a more appropriate notation?
Pepe Iborra [Sun, 2 Dec 2007 12:54:00 +0000 (12:54 +0000)]
refactoring only
simonpj@microsoft.com [Tue, 4 Dec 2007 15:40:23 +0000 (15:40 +0000)]
Change --shared to -shared in Win32 DLL docs
Simon Marlow [Tue, 4 Dec 2007 15:39:18 +0000 (15:39 +0000)]
protect console handler against concurrent access (#1922)
simonpj@microsoft.com [Tue, 4 Dec 2007 14:58:03 +0000 (14:58 +0000)]
Make eta reduction check more carefully for bottoms (fix Trac #1947)
Eta reduction was wrongly transforming
f = \x. f x
to
f = f
Solution: don't trust f's arity information; instead look at its
unfolding. See Note [Eta reduction conditions]
Almost all the new lines are comments!
simonpj@microsoft.com [Tue, 4 Dec 2007 11:49:55 +0000 (11:49 +0000)]
Improve inlining for INLINE non-functions
(No need to merge to 6.8, but no harm if a subsequent patch needs it.)
The proximate cause for this patch is to improve the inlining for INLINE
things that are not functions; this came up in the NDP project. See
Note [Lone variables] in CoreUnfold.
This caused some refactoring that actually made things simpler. In
particular, more of the inlining logic has moved from SimplUtils to
CoreUnfold, where it belongs.
Simon Marlow [Tue, 4 Dec 2007 11:44:44 +0000 (11:44 +0000)]
fix race conditions in sandboxIO (#1583, #1922, #1946)
using the new block-inheriting forkIO (#1048)
Simon Marlow [Tue, 4 Dec 2007 11:39:45 +0000 (11:39 +0000)]
:cd with no argument goes to the user's home directory
Seems better than getting a confusing 'cannot find directory' exception.
Simon Marlow [Tue, 4 Dec 2007 11:09:47 +0000 (11:09 +0000)]
forkIO starts the new thread blocked if the parent is blocked (#1048)
simonpj@microsoft.com [Mon, 3 Dec 2007 15:00:39 +0000 (15:00 +0000)]
Improve eta reduction, to reduce Simplifier iterations
I finally got around to investigating why the Simplifier was sometimes
iterating so often. There's a nice example in Text.ParserCombinators.ReadPrec,
which produced:
NOTE: Simplifier still going after 3 iterations; bailing out. Size = 339
NOTE: Simplifier still going after 3 iterations; bailing out. Size = 339
NOTE: Simplifier still going after 3 iterations; bailing out. Size = 339
No progress is being made. It turned out that an interaction between
eta-expansion, casts, and eta reduction was responsible. The change is
small and simple, in SimplUtils.mkLam: do not require the body to be
a Lam when floating the cast outwards.
I also discovered a missing side condition in the same equation, so fixing
that is good too. Now there is no loop when compiling ReadPrec.
Should do a full nofib run though.
Ian Lynagh [Sun, 2 Dec 2007 19:58:17 +0000 (19:58 +0000)]
Don't default to stripping binaries when installing
simonpj@microsoft.com [Wed, 28 Nov 2007 17:31:25 +0000 (17:31 +0000)]
Improve pretty-printing for Insts
simonpj@microsoft.com [Wed, 28 Nov 2007 17:31:46 +0000 (17:31 +0000)]
Reorganise TcSimplify (again); FIX Trac #1919
This was a bit tricky. We had a "given" dict like (d7:Eq a); then it got
supplied to reduceImplication, which did some zonking, and emerged with
a "needed given" (d7:Eq Int). That got everything confused.
I found a way to simplify matters significantly. Now reduceContext
- first deals with methods/literals/dictionaries
- then deals with implications
Separating things in this way not only made the bug go away, but
eliminated the need for the recently-added "needed-givens" results returned
by checkLoop. Hurrah.
It's still a swamp. But it's a bit better.
Simon Marlow [Fri, 30 Nov 2007 13:07:34 +0000 (13:07 +0000)]
FIX #1914: GHCi forgot all the modules that were loaded before an error
Simon Marlow [Fri, 30 Nov 2007 10:11:00 +0000 (10:11 +0000)]
FIX #1744: ignore the byte-order mark at the beginning of a file
simonpj@microsoft.com [Wed, 28 Nov 2007 15:05:41 +0000 (15:05 +0000)]
FIX Trac #1935: generate superclass constraints for derived classes
This bug only reports a problem with phantom types, but actually
there was quite a long-standing and significant omission in the
constraint generation for derived classes. See
Note [Superclasses of derived instance] in TcDeriv.
The test deriving-1935 tests both cases.
simonpj@microsoft.com [Wed, 28 Nov 2007 15:03:54 +0000 (15:03 +0000)]
Print a bit more info in VarBinds (no need to merge)
simonpj@microsoft.com [Wed, 28 Nov 2007 15:02:14 +0000 (15:02 +0000)]
Check for duplicate bindings in CoreLint
Simon Marlow [Wed, 28 Nov 2007 11:14:17 +0000 (11:14 +0000)]
add comment
Bertram Felgenhauer [Thu, 22 Nov 2007 09:55:13 +0000 (09:55 +0000)]
FIX #1916: don't try to convert float constants to int in CMM optimizer
Simon Marlow [Tue, 27 Nov 2007 13:54:35 +0000 (13:54 +0000)]
give a more useful message when the static flags have not been initialised (#1938)
Ian Lynagh [Tue, 27 Nov 2007 20:39:59 +0000 (20:39 +0000)]
Rebuild utils with the stage1 compiler when making a bindist; fixes trac #1860
This is a bit unpleasant, as "make binary-dist" really shouldn't actually
build anything, but it works.
Ian Lynagh [Tue, 27 Nov 2007 19:56:05 +0000 (19:56 +0000)]
Remove the --print-docdir flag
It wasn't doing the right thing for bindists. Let's rethink...
Simon Marlow [Tue, 27 Nov 2007 12:26:14 +0000 (12:26 +0000)]
FIX #1925: the interpreter was not maintaining tag bits correctly
See comment for details
Simon Marlow [Tue, 27 Nov 2007 12:26:04 +0000 (12:26 +0000)]
add missing instruction: ALLOC_AP_NOUPD
Simon Marlow [Mon, 26 Nov 2007 16:04:20 +0000 (16:04 +0000)]
Check tag bits on the fun pointer of a PAP
Simon Marlow [Mon, 26 Nov 2007 14:16:14 +0000 (14:16 +0000)]
canonicalise the path to HsColour
Ian Lynagh [Mon, 26 Nov 2007 21:52:56 +0000 (21:52 +0000)]
Consistently put on the front of haskell.org in URLs
Ian Lynagh [Mon, 26 Nov 2007 21:41:47 +0000 (21:41 +0000)]
Fix some more URLs
Ian Lynagh [Mon, 26 Nov 2007 19:41:48 +0000 (19:41 +0000)]
Tweak some URLs
Ian Lynagh [Mon, 26 Nov 2007 18:44:06 +0000 (18:44 +0000)]
Fix some links
Ian Lynagh [Sun, 25 Nov 2007 21:19:19 +0000 (21:19 +0000)]
Copy gmp stamps into bindists, so we don't try and rebuild gmp
Ian Lynagh [Sun, 25 Nov 2007 12:58:45 +0000 (12:58 +0000)]
On Windows, Delete the CriticalSection's we Initialize
Ian Lynagh [Sun, 25 Nov 2007 12:44:29 +0000 (12:44 +0000)]
On Windows, add a start menu link to the flag reference
Ian Lynagh [Sun, 25 Nov 2007 12:41:50 +0000 (12:41 +0000)]
Remove html/ from the paths we put in the start menu on Windows
Ian Lynagh [Sun, 25 Nov 2007 12:20:20 +0000 (12:20 +0000)]
MERGED: Make ":" in GHCi repeat the last command
Ian Lynagh <igloo@earth.li>**
20071124231857
It used to be a synonym for ":r" in 6.6.1, but this wasn't documented or
known about by the developers. In 6.8.1 it was accidentally broken.
This patch brings it back, but as "repeat the last command", similar to
pressing enter in gdb. This is almost as good for people who want it to
reload, and means that it can also be used to repeat commands like :step.
Ian Lynagh [Sat, 24 Nov 2007 21:23:05 +0000 (21:23 +0000)]
MERGED: Put library docs in a $pkg, rather than $pkgid, directory; fixes trac #1864
Ian Lynagh <igloo@earth.li>**
20071124171220
Ian Lynagh [Sat, 24 Nov 2007 21:19:43 +0000 (21:19 +0000)]
Don't make a library documentation prologue
It's far too large now, and no-one complained when 6.8.1 didn't have one.
Ian Lynagh [Sat, 24 Nov 2007 21:16:29 +0000 (21:16 +0000)]
Don't put package version numbers in links in index.html
Ian Lynagh [Sat, 24 Nov 2007 20:50:37 +0000 (20:50 +0000)]
Define install-strip in Makefile
Ian Lynagh [Sat, 24 Nov 2007 20:48:03 +0000 (20:48 +0000)]
Define install-strip in distrib/Makefile
Ian Lynagh [Sat, 24 Nov 2007 18:52:40 +0000 (18:52 +0000)]
Install gmp from bindists; fixes trac #1848
Bertram Felgenhauer [Wed, 21 Nov 2007 06:39:42 +0000 (06:39 +0000)]
(native gen) fix code generated for GDTOI on x86_32
See trac #1910.
Ian Lynagh [Sat, 24 Nov 2007 16:30:28 +0000 (16:30 +0000)]
Copy the INSTALL hack from mk/config.mk.in into distrib/Makefile-bin-vars.in
configure will set INSTALL to ./install-sh if it can't find it in the path,
so we need to replace the . with the path to our root.
Ian Lynagh [Sat, 24 Nov 2007 16:24:50 +0000 (16:24 +0000)]
Make install-sh executable /before/ we try to find it
Ian Lynagh [Fri, 23 Nov 2007 20:43:52 +0000 (20:43 +0000)]
Document --info in the +RTS -? help
Ian Lynagh [Fri, 23 Nov 2007 23:31:13 +0000 (23:31 +0000)]
MERGED: If we have hscolour then make source code links in teh haddock docs
Fri Nov 23 13:15:59 PST 2007 Ian Lynagh <igloo@earth.li>
simonpj@microsoft.com [Fri, 23 Nov 2007 15:35:19 +0000 (15:35 +0000)]
Tidy and trim the type environment in mkBootModDetails
Should fix Trac #1833
We were failing to trim the type envt in mkBootModDetails, so several
functions all called (*), for example, were getting into the interface.
Result chaos. It only actually bites when we do the retyping-loop thing,
which is why it's gone so long without a fix.