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
Roman Leshchinskiy [Fri, 16 Nov 2007 02:18:33 +0000 (02:18 +0000)]
Fix vectorisation of binders in case expressions
simonpj@microsoft.com [Mon, 19 Nov 2007 13:46:39 +0000 (13:46 +0000)]
Two small typos in the flags summary (merge to 6.8 branch)
simonpj@microsoft.com [Mon, 19 Nov 2007 12:29:38 +0000 (12:29 +0000)]
Improve the situation for Trac #959: civilised warning instead of a trace msg
This doesn't fix the root cause of the bug, but it makes the report
more civilised, and points to further info.
simonpj@microsoft.com [Mon, 19 Nov 2007 11:43:01 +0000 (11:43 +0000)]
FIX Trac #1806: test for correct arity for datacon in infix pattern patch
Happily the fix is easy; pls merge
Ian Lynagh [Sat, 17 Nov 2007 15:45:02 +0000 (15:45 +0000)]
Accept x86_64-*-freebsd* as well as amd64-*-freebsd* in configure.ac
Patch from Brian P. O'Hanlon
Simon Marlow [Fri, 16 Nov 2007 15:21:48 +0000 (15:21 +0000)]
Attempt at fixing #1873, #1360
I think I figured out a reasonable way to manage the GHCi context,
comments welcome.
Rule 1: external package modules in the context are persistent. That
is, when you say 'import Data.Maybe' it survives over :load, :add,
:reload and :cd.
Rule 2: :load and :add remove all home-package modules from the
context and add the rightmost target, as a *-module if possible. This
is as before, and makes sense for :load because we're starting a new
program; the old home-package modules don't make sense any more. For
:add, it usually does what you want, because the new target will
become the context.
Rule 3: any modules from the context that fail to load during a
:reload are remembered, and re-added to the context at the next
successful :reload.
Claus' suggestion about adding the "remembered" modules to the prompt
prefixed with a ! is implemented but commented out. I couldn't
decide whether it was useful or confusing.
One difference that people might notice is that after a :reload where
there were errors, GHCi would previously dump you in the most recent
module that it loaded. Now it dumps you in whatever subset of the
current context still makes sense, and in the common case that will
probably be {Prelude}.
simonpj@microsoft.com [Fri, 16 Nov 2007 15:03:41 +0000 (15:03 +0000)]
Wibble to fix Trac #1901 (shorten messsage slightly)
simonpj@microsoft.com [Fri, 16 Nov 2007 14:58:16 +0000 (14:58 +0000)]
Improve links from flag reference to the relevant section; and improve doc of RankN flags
simonpj@microsoft.com [Fri, 16 Nov 2007 14:56:09 +0000 (14:56 +0000)]
FIX Trac #1901: check no existential context in H98 mode
simonpj@microsoft.com [Fri, 16 Nov 2007 08:18:41 +0000 (08:18 +0000)]
Improve documentation of data type declarations (Trac #1901)
Simon Marlow [Fri, 16 Nov 2007 13:20:46 +0000 (13:20 +0000)]
Change the command-line semantics for query commands
From the help text:
Commands that query the package database (list, latest, describe,
field) operate on the list of databases specified by the flags
--user, --global, and --package-conf. If none of these flags are
given, the default is --global --user.
This makes it possible to query just a single database (e.g. the
global one without the user one), which needed tricks to accomplish
before.
Simon Marlow [Fri, 16 Nov 2007 12:20:18 +0000 (12:20 +0000)]
use "ghc-pkg latest --global" instead of "ghc-pkg list --simple-output"
The former now does the right thing: it uses the global database only,
and picks the most recent package with the given name.
Simon Marlow [Fri, 16 Nov 2007 12:11:53 +0000 (12:11 +0000)]
Disallow installing packages whose names differ in case only.
--force overrides. Requested by Duncan Coutts, with a view to
treating package names as case-insensitive in the future.
Simon Marlow [Fri, 16 Nov 2007 10:12:27 +0000 (10:12 +0000)]
FIX BUILD (with GHC 6.2.x): update .hi-boot file
Simon Marlow [Thu, 15 Nov 2007 15:57:47 +0000 (15:57 +0000)]
FIX #1828: installing to a patch with spaces in
We have to pass the path to gcc when calling windres, which itself
might have spaces in. Furthermore, we have to pass the path to gcc's
tools to gcc. This means getting the quoting right, and after much
experimentation and reading of the windres sources I found something
that works: passing --use-temp-files to windres makes it use its own
implementation of quoting instead of popen(), and this does what we
want. Sigh.
Simon Marlow [Thu, 15 Nov 2007 15:53:27 +0000 (15:53 +0000)]
on Windows, install to a directory with spaces (test for #1828)
Simon Marlow [Thu, 15 Nov 2007 13:16:35 +0000 (13:16 +0000)]
FIX #1679: crash on returning from a foreign call
We forgot to save a pointer to the BCO over the foreign call. Doing
enough allocation and GC during the call could provoke a crash.
Simon Marlow [Thu, 15 Nov 2007 10:32:49 +0000 (10:32 +0000)]
Avoid the use of unversioned package dependencies
Fortunately "ghc-pkg list $pkg --simple-output" is a good way to add
the version number.
Simon Marlow [Wed, 14 Nov 2007 16:53:23 +0000 (16:53 +0000)]
FIX #1596 (remove deprecated --define-name)
Also remove the old command-line syntax for ghc-pkg, which was not
documented. Do not merge.