ghc.git
11 years agoPrevent the binding of unboxed things by :print
Pepe Iborra [Sat, 8 Dec 2007 18:18:30 +0000 (18:18 +0000)] 
Prevent the binding of unboxed things by :print

11 years agoCoercions from boxy splitters must be sym'ed in pattern matches
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

11 years agoProperly keep track of whether normalising given or wanted dicts
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).

11 years agoTcPat.tcConPat uses equalities instead of GADT refinement
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.

11 years agoUse installPackage for register --inplace as well as installing
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.

11 years agoFix the libraries Makefile
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

11 years agoCopy hscolour.css into dist/... so it gets installed with the library docs
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

11 years agoAdd the hscolour.css from hscolour 1.8
Ian Lynagh [Wed, 5 Dec 2007 01:17:33 +0000 (01:17 +0000)] 
Add the hscolour.css from hscolour 1.8

11 years agoBIN_DIST_INST_SUBDIR Needs to be defined in config.mk so ./Makefile can see it
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

11 years ago#include ../includes/MachRegs.h rather than just MachRegs.h
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.

11 years agoFix bindist creation: readline/config.mk is gone
Ian Lynagh [Mon, 3 Dec 2007 12:30:31 +0000 (12:30 +0000)] 
Fix bindist creation: readline/config.mk is gone

11 years agoFIX #1843: Generate different instructions on PPC
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.

11 years agoRefactor gen_contents_index
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

11 years agoUse GHC.Exts rather than GHC.Prim
Ian Lynagh [Sun, 2 Dec 2007 23:42:22 +0000 (23:42 +0000)] 
Use GHC.Exts rather than GHC.Prim

11 years agoAlter the base:GHC.Prim hack in installPackage, following changes in base
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

11 years agoRemove debug warning, and explain why
simonpj@microsoft.com [Fri, 7 Dec 2007 17:05:07 +0000 (17:05 +0000)] 
Remove debug warning, and explain why

11 years agocomment only
Simon Marlow [Thu, 6 Dec 2007 09:24:22 +0000 (09:24 +0000)] 
comment only

11 years agocomment typo
Simon Marlow [Thu, 6 Dec 2007 09:24:12 +0000 (09:24 +0000)] 
comment typo

11 years agoadd Outputable instance for OccIfaceEq
Simon Marlow [Thu, 6 Dec 2007 09:24:03 +0000 (09:24 +0000)] 
add Outputable instance for OccIfaceEq

11 years agoWorkaround for #1959: assume untracked names have changed
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.

11 years agoFIX part of #1959: declaration versions were not being incremented correctly
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").

11 years agomove FP_FIND_ROOT after the "GHC is required" check
Simon Marlow [Wed, 5 Dec 2007 10:18:14 +0000 (10:18 +0000)] 
move FP_FIND_ROOT after the "GHC is required" check

11 years agoFIX #1110: hackery also needed when running gcc for CPP
Simon Marlow [Wed, 5 Dec 2007 15:02:30 +0000 (15:02 +0000)] 
FIX #1110: hackery also needed when running gcc for CPP

11 years agoTeach :print to follow references (STRefs and IORefs)
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?

11 years agorefactoring only
Pepe Iborra [Sun, 2 Dec 2007 12:54:00 +0000 (12:54 +0000)] 
refactoring only

11 years agoChange --shared to -shared in Win32 DLL docs
simonpj@microsoft.com [Tue, 4 Dec 2007 15:40:23 +0000 (15:40 +0000)] 
Change --shared to -shared in Win32 DLL docs

11 years agoprotect console handler against concurrent access (#1922)
Simon Marlow [Tue, 4 Dec 2007 15:39:18 +0000 (15:39 +0000)] 
protect console handler against concurrent access (#1922)

11 years agoMake eta reduction check more carefully for bottoms (fix Trac #1947)
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!

11 years agoImprove inlining for INLINE non-functions
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.

11 years agofix race conditions in sandboxIO (#1583, #1922, #1946)
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)

11 years ago:cd with no argument goes to the user's home directory
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.

11 years agoforkIO starts the new thread blocked if the parent is blocked (#1048)
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)

11 years agoImprove eta reduction, to reduce Simplifier iterations
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.

11 years agoDon't default to stripping binaries when installing
Ian Lynagh [Sun, 2 Dec 2007 19:58:17 +0000 (19:58 +0000)] 
Don't default to stripping binaries when installing

11 years agoImprove pretty-printing for Insts
simonpj@microsoft.com [Wed, 28 Nov 2007 17:31:25 +0000 (17:31 +0000)] 
Improve pretty-printing for Insts

11 years agoReorganise TcSimplify (again); FIX Trac #1919
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.

11 years agoFIX #1914: GHCi forgot all the modules that were loaded before an error
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

11 years agoFIX #1744: ignore the byte-order mark at the beginning of a file
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

11 years agoFIX Trac #1935: generate superclass constraints for derived classes
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.

11 years agoPrint a bit more info in VarBinds (no need to merge)
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)

11 years agoCheck for duplicate bindings in CoreLint
simonpj@microsoft.com [Wed, 28 Nov 2007 15:02:14 +0000 (15:02 +0000)] 
Check for duplicate bindings in CoreLint

11 years agoadd comment
Simon Marlow [Wed, 28 Nov 2007 11:14:17 +0000 (11:14 +0000)] 
add comment

11 years agoFIX #1916: don't try to convert float constants to int in CMM optimizer
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

11 years agogive a more useful message when the static flags have not been initialised (#1938)
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)

11 years agoRebuild utils with the stage1 compiler when making a bindist; fixes trac #1860
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.

11 years agoRemove the --print-docdir flag
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...

11 years agoFIX #1925: the interpreter was not maintaining tag bits correctly
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

11 years agoadd missing instruction: ALLOC_AP_NOUPD
Simon Marlow [Tue, 27 Nov 2007 12:26:04 +0000 (12:26 +0000)] 
add missing instruction: ALLOC_AP_NOUPD

11 years agoCheck tag bits on the fun pointer of a PAP
Simon Marlow [Mon, 26 Nov 2007 16:04:20 +0000 (16:04 +0000)] 
Check tag bits on the fun pointer of a PAP

11 years agocanonicalise the path to HsColour
Simon Marlow [Mon, 26 Nov 2007 14:16:14 +0000 (14:16 +0000)] 
canonicalise the path to HsColour

11 years agoConsistently put www. on the front of haskell.org in URLs
Ian Lynagh [Mon, 26 Nov 2007 21:52:56 +0000 (21:52 +0000)] 
Consistently put  on the front of haskell.org in URLs

11 years agoFix some more URLs
Ian Lynagh [Mon, 26 Nov 2007 21:41:47 +0000 (21:41 +0000)] 
Fix some more URLs

11 years agoTweak some URLs
Ian Lynagh [Mon, 26 Nov 2007 19:41:48 +0000 (19:41 +0000)] 
Tweak some URLs

11 years agoFix some links
Ian Lynagh [Mon, 26 Nov 2007 18:44:06 +0000 (18:44 +0000)] 
Fix some links

11 years agoCopy gmp stamps into bindists, so we don't try and rebuild gmp
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

11 years agoOn Windows, Delete the CriticalSection's we Initialize
Ian Lynagh [Sun, 25 Nov 2007 12:58:45 +0000 (12:58 +0000)] 
On Windows, Delete the CriticalSection's we Initialize

11 years agoOn Windows, add a start menu link to the flag reference
Ian Lynagh [Sun, 25 Nov 2007 12:44:29 +0000 (12:44 +0000)] 
On Windows, add a start menu link to the flag reference

11 years agoRemove html/ from the paths we put in the start menu on Windows
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

11 years agoMERGED: Make ":" in GHCi repeat the last command
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.

11 years agoMERGED: Put library docs in a $pkg, rather than $pkgid, directory; fixes trac #1864
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

11 years agoDon't make a library documentation prologue
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.

11 years agoDon't put package version numbers in links in index.html
Ian Lynagh [Sat, 24 Nov 2007 21:16:29 +0000 (21:16 +0000)] 
Don't put package version numbers in links in index.html

11 years agoDefine install-strip in Makefile
Ian Lynagh [Sat, 24 Nov 2007 20:50:37 +0000 (20:50 +0000)] 
Define install-strip in Makefile

11 years agoDefine install-strip in distrib/Makefile
Ian Lynagh [Sat, 24 Nov 2007 20:48:03 +0000 (20:48 +0000)] 
Define install-strip in distrib/Makefile

11 years agoInstall gmp from bindists; fixes trac #1848
Ian Lynagh [Sat, 24 Nov 2007 18:52:40 +0000 (18:52 +0000)] 
Install gmp from bindists; fixes trac #1848

11 years ago(native gen) fix code generated for GDTOI on x86_32
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.

11 years agoCopy the INSTALL hack from mk/config.mk.in into distrib/Makefile-bin-vars.in
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.

11 years agoMake install-sh executable /before/ we try to find it
Ian Lynagh [Sat, 24 Nov 2007 16:24:50 +0000 (16:24 +0000)] 
Make install-sh executable /before/ we try to find it

11 years agoDocument --info in the +RTS -? help
Ian Lynagh [Fri, 23 Nov 2007 20:43:52 +0000 (20:43 +0000)] 
Document --info in the +RTS -? help

11 years agoMERGED: If we have hscolour then make source code links in teh haddock docs
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>

11 years agoTidy and trim the type environment in mkBootModDetails
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.

11 years agorefactor: HscNothing and boot modules do not need desugaring
Simon Marlow [Fri, 23 Nov 2007 13:52:37 +0000 (13:52 +0000)] 
refactor: HscNothing and boot modules do not need desugaring

11 years agoFIX #1910: fix code generated for GDTOI on x86_32
Bertram Felgenhauer [Wed, 21 Nov 2007 10:26:27 +0000 (10:26 +0000)] 
FIX #1910: fix code generated for GDTOI on x86_32

11 years agoProperly ppr InstEqs in wanteds of implication constraints
Manuel M T Chakravarty [Thu, 22 Nov 2007 09:30:02 +0000 (09:30 +0000)] 
Properly ppr InstEqs in wanteds of implication constraints

11 years agoFIX #1910: fix code generated for GDTOI on x86_32
Bertram Felgenhauer [Wed, 21 Nov 2007 10:26:27 +0000 (10:26 +0000)] 
FIX #1910: fix code generated for GDTOI on x86_32

11 years agoAdd built-in Double operations to vectorisation
Roman Leshchinskiy [Thu, 22 Nov 2007 00:25:17 +0000 (00:25 +0000)] 
Add built-in Double operations to vectorisation

11 years agoTeach vectorisation about Double
Roman Leshchinskiy [Wed, 21 Nov 2007 05:49:32 +0000 (05:49 +0000)] 
Teach vectorisation about Double

11 years agoVectorise polyexprs with notes
Roman Leshchinskiy [Wed, 21 Nov 2007 05:31:02 +0000 (05:31 +0000)] 
Vectorise polyexprs with notes

11 years agoMake rebindable do-notation behave as advertised
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.

11 years agoAdd DEBUG-only flag -dsuppress-uniques to suppress printing of uniques
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!)

11 years agoAdd -dcore-lint when validating libraries
simonpj@microsoft.com [Mon, 5 Nov 2007 16:47:33 +0000 (16:47 +0000)] 
Add -dcore-lint when validating libraries

11 years agoFix Trac #1913: check data const for derived types are in scope
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.

11 years agoFix Trac #1909: type of map in docs
simonpj@microsoft.com [Tue, 20 Nov 2007 16:01:52 +0000 (16:01 +0000)] 
Fix Trac #1909: type of map in docs

11 years agoMove file locking into the RTS, fixing #629, #1109
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).

11 years agoFIX Trac #1825: standalone deriving Typeable
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

11 years agoFIX #1715: egregious bug in ifaceDeclSubBndrs
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.

11 years agoAlways do 'setup makefile' before building each library
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.

11 years agoFIX #1847 (improve :browse! docs, fix unqual)
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

11 years agoTrack changes to package ndp
Roman Leshchinskiy [Tue, 20 Nov 2007 03:37:16 +0000 (03:37 +0000)] 
Track changes to package ndp

11 years agoTemporary hack for passing PArrays from unvectorised to vectorised code
Roman Leshchinskiy [Tue, 20 Nov 2007 02:45:45 +0000 (02:45 +0000)] 
Temporary hack for passing PArrays from unvectorised to vectorised code

11 years agoBind NDP stuff to [:.:] arrays
Roman Leshchinskiy [Mon, 19 Nov 2007 02:03:02 +0000 (02:03 +0000)] 
Bind NDP stuff to [:.:] arrays

11 years agoDon't treat enumerations specially during vectorisation for the moment
Roman Leshchinskiy [Mon, 19 Nov 2007 01:37:29 +0000 (01:37 +0000)] 
Don't treat enumerations specially during vectorisation for the moment

11 years agoFix bugs in vectorisation of case expressions
Roman Leshchinskiy [Mon, 19 Nov 2007 01:37:14 +0000 (01:37 +0000)] 
Fix bugs in vectorisation of case expressions

11 years agoMore built-in NDP combinators
Roman Leshchinskiy [Mon, 19 Nov 2007 01:22:05 +0000 (01:22 +0000)] 
More built-in NDP combinators

11 years agoNew vectorisation built-ins
Roman Leshchinskiy [Sun, 18 Nov 2007 05:19:40 +0000 (05:19 +0000)] 
New vectorisation built-ins

11 years agoFix bug in conversion unvect/vect
Roman Leshchinskiy [Sun, 18 Nov 2007 05:19:26 +0000 (05:19 +0000)] 
Fix bug in conversion unvect/vect

11 years agoExtend built-in vectorisation environments
Roman Leshchinskiy [Sun, 18 Nov 2007 04:52:19 +0000 (04:52 +0000)] 
Extend built-in vectorisation environments

11 years agoFix bug in generation of environments for vectorisation
Roman Leshchinskiy [Sun, 18 Nov 2007 04:52:03 +0000 (04:52 +0000)] 
Fix bug in generation of environments for vectorisation

11 years agoAdd builtin var->var mapping to vectorisation
Roman Leshchinskiy [Sun, 18 Nov 2007 04:26:05 +0000 (04:26 +0000)] 
Add builtin var->var mapping to vectorisation

11 years agoExtend vectorisation built-in mappings with datacons
Roman Leshchinskiy [Sun, 18 Nov 2007 03:43:51 +0000 (03:43 +0000)] 
Extend vectorisation built-in mappings with datacons