simonpj@microsoft.com [Thu, 20 Dec 2007 17:34:32 +0000 (17:34 +0000)]
Remove obselete code for update-in-place (which we no longer do)
simonpj@microsoft.com [Thu, 20 Dec 2007 11:13:00 +0000 (11:13 +0000)]
Implement generalised list comprehensions
This patch implements generalised list comprehensions, as described in
the paper "Comprehensive comprehensions" (Peyton Jones & Wadler, Haskell
Workshop 2007). If you don't use the new comprehensions, nothing
should change.
The syntax is not exactly as in the paper; see the user manual entry
for details.
You need an accompanying patch to the base library for this stuff
to work.
The patch is the work of Max Bolingbroke [batterseapower@hotmail.com],
with some advice from Simon PJ.
The related GHC Wiki page is
http://hackage.haskell.org/trac/ghc/wiki/SQLLikeComprehensions
Ian Lynagh [Tue, 18 Dec 2007 14:45:05 +0000 (14:45 +0000)]
More bindist-publishing fixes and refactoring
Ian Lynagh [Sun, 16 Dec 2007 12:25:44 +0000 (12:25 +0000)]
Fix publishing the docs
Simon Marlow [Mon, 17 Dec 2007 16:46:10 +0000 (16:46 +0000)]
FIX #1980: must check for ThreadRelocated in killThread#
Manuel M T Chakravarty [Mon, 17 Dec 2007 09:38:39 +0000 (09:38 +0000)]
Eliminate external GMP dependencies
- Ensure the stage1 compiler uses ghc's own GMP library on Mac OS
- Need to rebuild installPackage and ifBuildable with stage1 compiler as they
go into bindists
Ian Lynagh [Mon, 17 Dec 2007 23:34:57 +0000 (23:34 +0000)]
Include ~/Library/Frameworks in the framework searchpath
Patch from Christian Maeder
Ian Lynagh [Mon, 17 Dec 2007 19:57:34 +0000 (19:57 +0000)]
Make ghcii.sh executable
Ian Lynagh [Mon, 17 Dec 2007 19:55:54 +0000 (19:55 +0000)]
Don't rely on distrib/prep-bin-dist-mingw being executable
Simon Marlow [Fri, 14 Dec 2007 12:33:45 +0000 (12:33 +0000)]
always try to remove the new file before restoring the old one (#1963)
Ian Lynagh [Wed, 12 Dec 2007 12:11:54 +0000 (12:11 +0000)]
Fix a bug in gen_contents_index
The library doc index thought that the docs were in $module.html, rather
than $package/$module.html.
Roman Leshchinskiy [Sat, 15 Dec 2007 00:08:37 +0000 (00:08 +0000)]
Fix lifting of case expressions
We have to explicity check for empty arrays in each alternative as recursive
algorithms wouldn't terminate otherwise.
Roman Leshchinskiy [Sat, 15 Dec 2007 00:07:39 +0000 (00:07 +0000)]
Use (UArr Int) instead of PArray_Int# in vectorisation
Roman Leshchinskiy [Fri, 14 Dec 2007 23:09:14 +0000 (23:09 +0000)]
Fix bug in VectInfo loading
Roman Leshchinskiy [Fri, 14 Dec 2007 01:10:15 +0000 (01:10 +0000)]
Remove unused vectorisation built-in
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