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.
Simon Marlow [Fri, 23 Nov 2007 13:52:37 +0000 (13:52 +0000)]
refactor: HscNothing and boot modules do not need desugaring
Bertram Felgenhauer [Wed, 21 Nov 2007 10:26:27 +0000 (10:26 +0000)]
FIX #1910: fix code generated for GDTOI on x86_32
Manuel M T Chakravarty [Thu, 22 Nov 2007 09:30:02 +0000 (09:30 +0000)]
Properly ppr InstEqs in wanteds of implication constraints
Bertram Felgenhauer [Wed, 21 Nov 2007 10:26:27 +0000 (10:26 +0000)]
FIX #1910: fix code generated for GDTOI on x86_32
Roman Leshchinskiy [Thu, 22 Nov 2007 00:25:17 +0000 (00:25 +0000)]
Add built-in Double operations to vectorisation
Roman Leshchinskiy [Wed, 21 Nov 2007 05:49:32 +0000 (05:49 +0000)]
Teach vectorisation about Double
Roman Leshchinskiy [Wed, 21 Nov 2007 05:31:02 +0000 (05:31 +0000)]
Vectorise polyexprs with notes
simonpj@microsoft.com [Wed, 21 Nov 2007 17:49:14 +0000 (17:49 +0000)]
Make rebindable do-notation behave as advertised
Adopt Trac #1537. The patch ended up a bit bigger than I expected,
so I suggest we do not merge this into the 6.8 branch. But there
is no funadamental reason why not.
With this patch, rebindable do-notation really does type as if you
had written the original (>>) and (>>=) operations in desguared form.
I ended up refactoring some of the (rather complicated) error-context
stuff in TcUnify, by pushing an InstOrigin into tcSubExp and its
various calls. That means we could get rid of tcFunResTy, and the
SubCtxt type. This should improve error messages slightly
in complicated situations, because we have an Origin to hand
to instCall (in the (isSigmaTy actual_ty) case of tc_sub1).
Thanks to Pepe for the first draft of the patch.
simonpj@microsoft.com [Fri, 16 Nov 2007 15:24:46 +0000 (15:24 +0000)]
Add DEBUG-only flag -dsuppress-uniques to suppress printing of uniques
This is intended only for debugging use: it makes it easier to
compare two variants without the variations between uniques mattering.
(Of course, you can't actually feed the output to the C compiler
or assembler and expect anything sensible to happen!)
simonpj@microsoft.com [Mon, 5 Nov 2007 16:47:33 +0000 (16:47 +0000)]
Add -dcore-lint when validating libraries
simonpj@microsoft.com [Wed, 21 Nov 2007 15:14:28 +0000 (15:14 +0000)]
Fix Trac #1913: check data const for derived types are in scope
When deriving an instance, the data constructors should all be in scope.
This patch checks the condition.
simonpj@microsoft.com [Tue, 20 Nov 2007 16:01:52 +0000 (16:01 +0000)]
Fix Trac #1909: type of map in docs
Simon Marlow [Tue, 20 Nov 2007 14:08:59 +0000 (14:08 +0000)]
Move file locking into the RTS, fixing #629, #1109
File locking (of the Haskell 98 variety) was previously done using a
static table with linear search, which had two problems: the array had
a fixed size and was sometimes too small (#1109), and performance of
lockFile/unlockFile was suboptimal due to the linear search.
Also the algorithm failed to count readers as required by Haskell 98
(#629).
Now it's done using a hash table (provided by the RTS). Furthermore I
avoided the extra fstat() for every open file by passing the dev_t and
ino_t into lockFile. This and the improvements to the locking
algorithm result in a healthy 20% or so performance increase for
opening/closing files (see openFile008 test).
simonpj@microsoft.com [Tue, 20 Nov 2007 12:57:32 +0000 (12:57 +0000)]
FIX Trac #1825: standalone deriving Typeable
Standalone deriving of typeable now requires you to say
instance Typeable1 Maybe
which is exactly the shape of instance decl that is generated
by a 'deriving( Typeable )' clause on the data type decl.
This is a bit horrid, but it's the only consistent way, at least
for now. If you say something else, the error messages are helpful.
MERGE to 6.8 branch
simonpj@microsoft.com [Tue, 20 Nov 2007 11:17:23 +0000 (11:17 +0000)]
FIX #1715: egregious bug in ifaceDeclSubBndrs
ifaceDeclSubBndrs didn't have an IfaceSyn case; but with type
families an IfaceSyn can introduce subordinate binders. Result:
chaos.
The fix is easy though. Merge to 6.8 branch.
Simon Marlow [Tue, 20 Nov 2007 10:33:29 +0000 (10:33 +0000)]
Always do 'setup makefile' before building each library
This forces preprocessing to happen, which is necessary if any of the
.hsc files have been modified. Without this change, a 'setup
makefile' would be required by hand after a .hsc file changed.
Fortunately 'setup makefile' isn't much extra work, and I've made it
not overwrite GNUmakefile if it hasn't changed, which avoids
recalculating the dependencies each time.
claus.reinke@talk21.com [Thu, 8 Nov 2007 01:31:47 +0000 (01:31 +0000)]
FIX #1847 (improve :browse! docs, fix unqual)
- add example to docs, explain how to interpret
output of `:browse! Data.Maybe`
- print unqualified names according to current
context, not the context of the target module
Roman Leshchinskiy [Tue, 20 Nov 2007 03:37:16 +0000 (03:37 +0000)]
Track changes to package ndp
Roman Leshchinskiy [Tue, 20 Nov 2007 02:45:45 +0000 (02:45 +0000)]
Temporary hack for passing PArrays from unvectorised to vectorised code
Roman Leshchinskiy [Mon, 19 Nov 2007 02:03:02 +0000 (02:03 +0000)]
Bind NDP stuff to [:.:] arrays
Roman Leshchinskiy [Mon, 19 Nov 2007 01:37:29 +0000 (01:37 +0000)]
Don't treat enumerations specially during vectorisation for the moment
Roman Leshchinskiy [Mon, 19 Nov 2007 01:37:14 +0000 (01:37 +0000)]
Fix bugs in vectorisation of case expressions
Roman Leshchinskiy [Mon, 19 Nov 2007 01:22:05 +0000 (01:22 +0000)]
More built-in NDP combinators
Roman Leshchinskiy [Sun, 18 Nov 2007 05:19:40 +0000 (05:19 +0000)]
New vectorisation built-ins
Roman Leshchinskiy [Sun, 18 Nov 2007 05:19:26 +0000 (05:19 +0000)]
Fix bug in conversion unvect/vect
Roman Leshchinskiy [Sun, 18 Nov 2007 04:52:19 +0000 (04:52 +0000)]
Extend built-in vectorisation environments
Roman Leshchinskiy [Sun, 18 Nov 2007 04:52:03 +0000 (04:52 +0000)]
Fix bug in generation of environments for vectorisation
Roman Leshchinskiy [Sun, 18 Nov 2007 04:26:05 +0000 (04:26 +0000)]
Add builtin var->var mapping to vectorisation
Roman Leshchinskiy [Sun, 18 Nov 2007 03:43:51 +0000 (03:43 +0000)]
Extend vectorisation built-in mappings with datacons
Roman Leshchinskiy [Sun, 18 Nov 2007 03:33:55 +0000 (03:33 +0000)]
Change representation of parallel arrays of enumerations
Roman Leshchinskiy [Sun, 18 Nov 2007 03:15:13 +0000 (03:15 +0000)]
Add vectorisation-related builtin
Roman Leshchinskiy [Sat, 17 Nov 2007 04:27:14 +0000 (04:27 +0000)]
Teach vectorisation about Bool
Roman Leshchinskiy [Sat, 17 Nov 2007 04:07:39 +0000 (04:07 +0000)]
Incomplete support for boxing during vectorisation
Roman Leshchinskiy [Sat, 17 Nov 2007 04:05:37 +0000 (04:05 +0000)]
Make sure some TyCons always vectorise to themselves
Roman Leshchinskiy [Sat, 17 Nov 2007 02:30:29 +0000 (02:30 +0000)]
Simple conversion vectorised -> unvectorised
Roman Leshchinskiy [Sat, 17 Nov 2007 01:50:14 +0000 (01:50 +0000)]
Fix bug in case vectorisation
Roman Leshchinskiy [Fri, 16 Nov 2007 07:48:14 +0000 (07:48 +0000)]
Vectorisation of algebraic case expressions
Roman Leshchinskiy [Fri, 16 Nov 2007 06:18:31 +0000 (06:18 +0000)]
More vectorisation-related built-ins
Roman Leshchinskiy [Fri, 16 Nov 2007 05:10:37 +0000 (05:10 +0000)]
Vectorisation utilities
Roman Leshchinskiy [Fri, 16 Nov 2007 05:09:59 +0000 (05:09 +0000)]
Add vectorisation built-ins