Ian Lynagh [Mon, 4 Apr 2011 15:45:42 +0000 (16:45 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Ian Lynagh [Mon, 4 Apr 2011 15:44:53 +0000 (16:44 +0100)]
Turn on autoflush in sync-all
darcs-all did it, so sync-all probably should too.
Ian Lynagh [Mon, 4 Apr 2011 15:43:54 +0000 (16:43 +0100)]
Add some comments to sync-all, based on darcs-all's comments
Edward Z. Yang [Mon, 4 Apr 2011 15:27:41 +0000 (16:27 +0100)]
Ignore tags files.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Edward Z. Yang [Mon, 4 Apr 2011 11:57:52 +0000 (12:57 +0100)]
Fix typos and add Outputable constraints to aid debugging.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Edward Z. Yang [Mon, 4 Apr 2011 11:57:30 +0000 (12:57 +0100)]
Minor documentation improvement about pointer tagging.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Simon Marlow [Mon, 4 Apr 2011 13:13:54 +0000 (14:13 +0100)]
Add "./sync-all set-push"
Use like this:
./sync-all -r me@darcs.haskell.org:/home/darcs set-push
to set the default repo to push to (in remotes/origin) for each of
the sub-repos.
Austin Seipp [Mon, 4 Apr 2011 04:02:17 +0000 (23:02 -0500)]
Teach GHC to compile objective-c files; trac #5025
Ian Lynagh [Sun, 3 Apr 2011 21:23:07 +0000 (22:23 +0100)]
Take strlen of archive filenames.
On OS X at least, the filename size is the size of the filename
field. The actual filename may be shorter.
Also a number of code style improvements and debug prints.
This is part of the patch from #5062, from Greg Wright.
Ian Lynagh [Sun, 3 Apr 2011 20:01:10 +0000 (21:01 +0100)]
Update darcs references to git in README
Ian Lynagh [Sun, 3 Apr 2011 18:04:51 +0000 (19:04 +0100)]
Fix build
Max Bolingbroke [Sun, 3 Apr 2011 17:51:28 +0000 (18:51 +0100)]
Trivial change to HACKING: github testing againh
Max Bolingbroke [Sun, 3 Apr 2011 17:46:32 +0000 (18:46 +0100)]
Trivial change to README to observe error I get during github push
Max Bolingbroke [Sun, 3 Apr 2011 17:45:02 +0000 (18:45 +0100)]
Make compilation of hscRnImportDecls conditional: fixes stage1 build
Max Bolingbroke [Sun, 3 Apr 2011 15:55:20 +0000 (16:55 +0100)]
Merge branch 'master' of ssh://darcs.haskell.org/srv/darcs/ghc
Max Bolingbroke [Sun, 3 Apr 2011 15:50:47 +0000 (16:50 +0100)]
Use tcRnImports rather than rnImports with GHCi "import" statement: fixes #4832
The bug here was that just using rnImports does not ensure that any dependent
orphan modules are loaded, so instances declared by such modules will not be
usable from the GHCi command line after an "import".
This did not affect the :m syntax because it takes a different code path and
uses getModuleExports directly, which contains its own calls to the orphan-module
loading stuff.
Ian Lynagh [Sun, 3 Apr 2011 14:23:38 +0000 (15:23 +0100)]
Fix parsing constructors containing dots; fixes trac #4891
Ian Lynagh [Sun, 3 Apr 2011 12:46:22 +0000 (13:46 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Ian Lynagh [Sun, 3 Apr 2011 12:04:16 +0000 (13:04 +0100)]
Update boot scripts for git
Max Bolingbroke [Sat, 2 Apr 2011 23:04:24 +0000 (00:04 +0100)]
Merge branch 'master' of ssh://darcs.haskell.org/srv/darcs/ghc
Max Bolingbroke [Sat, 2 Apr 2011 22:59:06 +0000 (23:59 +0100)]
Prefer builtin commands to macros in GHCi command resolution (#3858)
Current precedence rules in GHCi are that:
* User macros are *always* preferred in command resolution
* User macros that are defined earlier are preferred to those that
are defined earlier on
* Builtin commands have lowest precedence
However this caused user confusion because e.g. defining a macro beginning
with "i" would override the standard :info command whenever the user typed
the abbreviated command :i.
The new precedence rules are based on the view that things defined earlier
are always preferred to things defined later. The builtin commands are logically
defined earliest of all (when GHCi starts) so they always take precedence.
Ian Lynagh [Sat, 2 Apr 2011 22:08:12 +0000 (23:08 +0100)]
Update README to talk about git rather than darcs
Max Bolingbroke [Sat, 2 Apr 2011 15:52:33 +0000 (16:52 +0100)]
Ignore names introduced "implicitly" in unused-variable warnings (Fix #4404)
We collect variables introduced by the {...} part of a let-like record wildcard
pattern and do not warn if the user then doesn't actually use them.
Ian Lynagh [Sat, 2 Apr 2011 13:19:38 +0000 (14:19 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Ian Lynagh [Sat, 2 Apr 2011 13:17:17 +0000 (14:17 +0100)]
Follow changes in Cabal
Max Bolingbroke [Sat, 2 Apr 2011 10:37:12 +0000 (11:37 +0100)]
Mark scripts executable (boot, and the ones the build system chmods)
Max Bolingbroke [Sat, 2 Apr 2011 10:36:19 +0000 (11:36 +0100)]
Ignore more generated files
Max Bolingbroke [Fri, 1 Apr 2011 23:06:16 +0000 (00:06 +0100)]
Pop OS X stack padding even if the foreign call is stdcall (#5052)
The problem was that the codegen for foreign calls makes sure the stack
is 16-byte aligned on OS X by pushing some padding. In the case where the
foreign call is cdecl, that padding gets popped after the call, but if the
convention is stdcall then it doesn't generate any popping code at all.
However, this is incorrect because the stdcall only promises to pop the
arguments, not the padding. The fix is to generate code to pop the padding
(if any) on OS X.
Ian Lynagh [Fri, 1 Apr 2011 15:47:06 +0000 (16:47 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Ian Lynagh [Fri, 1 Apr 2011 14:30:33 +0000 (15:30 +0100)]
Merge branch 'ticket-5028'
Ian Lynagh [Fri, 1 Apr 2011 14:16:30 +0000 (15:16 +0100)]
Really zap case-binder occurrence info: solves #5028
Converted from a darcs patch from Max Bolingbroke:
Fri Apr 1 11:39:49 BST 2011 Max Bolingbroke <batterseapower@hotmail.com>
* Really zap case-binder occurrence info: solves #5028
Simon Marlow [Fri, 1 Apr 2011 14:03:27 +0000 (15:03 +0100)]
add "./sync-all fetch" and "./sync-all new"
./sync-all fetch
Fetches remote changes from the "origin" for each sub-repo. Useful
before "./sync-all new".
(Runs 'git fetch origin' on all sub-repos.)
./sync-all new
Lists the new patches relative to "origin" for each sub-repo.
You probably want to './sync-all fetch' first.
(Runs 'git log origin..' on all sub-repos)
Simon Marlow [Fri, 1 Apr 2011 13:11:01 +0000 (14:11 +0100)]
add a "set-origin" command
Use it like this
./sync-all -r http://darcs.haskell.org/ghc-git set-origin
to set the origin branches of all sub-repos to point to the appropriate
repo within the http://darcs.haskell.org/ghc-git tree.
Simon Marlow [Fri, 1 Apr 2011 10:34:19 +0000 (11:34 +0100)]
fix 'sync-all pull'
Ian Lynagh [Thu, 31 Mar 2011 23:26:22 +0000 (00:26 +0100)]
Fix bindisttest in git
Ian Lynagh [Thu, 31 Mar 2011 22:00:53 +0000 (23:00 +0100)]
Update meta-repo stuff
dimitris@microsoft.com [Thu, 31 Mar 2011 10:26:34 +0000 (10:26 +0000)]
Introducing a datatype for WorkLists that properly prioritizes equalities.
We were not prioritizing the interaction of equalities in the worklist, because
pre-canonicalization solved the constraints one by one, in their arrival order.
This patch fixes this, so it's a generally useful improvement, mainly for
efficiency. It makes #4981 go away, although it's not a definite answer to the
cause of the problem. See discussion on Trac.
simonpj@microsoft.com [Thu, 31 Mar 2011 10:23:15 +0000 (10:23 +0000)]
Fix Trac #5048: location on AbsBinds
This patch just puts a better SrcSpan on the AbsBinds
produced by the type checker
simonpj@microsoft.com [Thu, 31 Mar 2011 10:22:24 +0000 (10:22 +0000)]
Comments and variable naming only
simonpj@microsoft.com [Thu, 31 Mar 2011 10:21:16 +0000 (10:21 +0000)]
Re-enable assertion now the new type checker is in
(See Trac #3011.)
simonpj@microsoft.com [Thu, 31 Mar 2011 10:15:55 +0000 (10:15 +0000)]
Add a new static flag -fno-opt-coercion
This just disables the coercion optimiser, mainly for measurements in the paper
simonpj@microsoft.com [Thu, 31 Mar 2011 10:15:22 +0000 (10:15 +0000)]
New statistics flags -ddump-core-stats
This dumps a (one-line) listing of the size of the Core program,
just after tidying
Simon Marlow [Wed, 30 Mar 2011 09:23:42 +0000 (09:23 +0000)]
Windows build fix: ignore pthread.h if it exists (#4989)
Simon Marlow [Wed, 30 Mar 2011 10:19:34 +0000 (10:19 +0000)]
Add a debug check for a non-empty FPU stack on x86 (see #4914)
Simon Marlow [Wed, 30 Mar 2011 10:18:09 +0000 (10:18 +0000)]
implement double-to-float narrowing in the x86 NCG (#4441)
Simon Marlow [Wed, 30 Mar 2011 10:11:47 +0000 (10:11 +0000)]
scheduleThreadOn: use TSO_LOCKED even on the non-threaded RTS
Simon Marlow [Tue, 29 Mar 2011 15:56:28 +0000 (15:56 +0000)]
add atexit (#4456)
Ian Lynagh [Tue, 29 Mar 2011 17:01:58 +0000 (17:01 +0000)]
Turn -vfia-C into a no-op
Ian Lynagh [Tue, 29 Mar 2011 17:01:34 +0000 (17:01 +0000)]
Remove -fvia-C references from the users guide
Ian Lynagh [Tue, 29 Mar 2011 16:44:41 +0000 (16:44 +0000)]
Add a tool for checking for problems in the built-in uniques
Ian Lynagh [Tue, 29 Mar 2011 16:18:07 +0000 (16:18 +0000)]
Renumber TH uniques
This fixes a couple of duplicates that had crept in, and also
renumbers everything so that they are monotonically increasing
through the file.
Ian Lynagh [Mon, 28 Mar 2011 22:58:05 +0000 (22:58 +0000)]
Whitespace only
Simon Marlow [Tue, 29 Mar 2011 11:55:12 +0000 (11:55 +0000)]
fix typo (#5056)
Ian Lynagh [Sun, 27 Mar 2011 18:35:36 +0000 (18:35 +0000)]
Add a script for library merging
Ian Lynagh [Sun, 27 Mar 2011 15:52:05 +0000 (15:52 +0000)]
bindist comparison tool: Some logic improvements, and testsuite support
Ian Lynagh [Sat, 26 Mar 2011 21:01:10 +0000 (21:01 +0000)]
Fix the build on Windows (disable hsc2hs --cross-safe)
The .hsc files aren't currently safe for cross-compilation on Windows:
libraries\haskeline\.\System\Console\Haskeline\Backend\Win32.hsc:160
directive "let" is not safe for cross-compilation
Ian Lynagh [Fri, 25 Mar 2011 15:53:54 +0000 (15:53 +0000)]
Bindist comparison tool: Recognise OS X .dylib files too
Simon Marlow [Fri, 25 Mar 2011 16:12:34 +0000 (16:12 +0000)]
Fix #4914 (I hope)
Here's a bit of erroneous code:
00000c5c <s1ad_info>:
c5c: 8b 45 08 mov 0x8(%ebp),%eax
c5f: d9 46 03 flds 0x3(%esi)
c62: dd d9 fstp %st(1)
c64: d9 55 08 fsts 0x8(%ebp)
c67: 89 c6 mov %eax,%esi
c69: c7 45 00 24 0c 00 00 movl $0xc24,0x0(%ebp)
c70: f7 c6 03 00 00 00 test $0x3,%esi
c76: 75 ac jne c24 <s1ac_info>
So we should be doing some ffrees before the jne. The code that
inserts the ffrees wasn't expecting to do it for a conditional jump,
because they are usually local, but we have a late optimisation that
shortcuts jumps-to-jumps, and that can result in a non-local
conditional jump.
This at least fixes an instance of the bug that I was able to
reproduce, let's hope there aren't any more.
Edward Z. Yang [Fri, 25 Mar 2011 12:01:08 +0000 (12:01 +0000)]
Ignore comments when inlining.
simonpj@microsoft.com [Fri, 25 Mar 2011 13:36:19 +0000 (13:36 +0000)]
Fix typo in documentation (Trac #5035)
Edward Z. Yang [Tue, 22 Mar 2011 15:16:52 +0000 (15:16 +0000)]
Split out "Raw Cmm" dump to its own flag -ddump-raw-cmm
Previously, -ddump-cmmz was used to dump out the "Raw Cmm" right
before it gets passed to the backends, as well as all of the
intermediate phases in the new code generator. Unfortunately,
there are a lot of intermediate phases, which means -ddump-cmmz
takes a very long time with -fnew-codegen for large programs,
even if you're only interested in the final result.
Here we split up -ddump-cmmz into -ddump-cmmz (now exclusively for
the new code generator) and -ddump-raw-cmm (for both code generation
paths.) The old flag was not documented in the manual, so hopefully
not too many people will be surprised by this change.
Edward Z. Yang [Tue, 22 Mar 2011 14:17:02 +0000 (14:17 +0000)]
RednCounts can contain CAFs, so support them in cvtToClosureLbl.
Edward Z. Yang [Wed, 23 Mar 2011 13:43:30 +0000 (13:43 +0000)]
Immediately tag initialization code to prevent untagged spills.
When allocating new objects on the heap, we previously returned
a CmmExpr containing the heap pointer as well as the tag expression,
which would be added to the code graph upon first usage. Unfortunately,
this meant that untagged heap pointers living in registers might
be spilled to the stack, where they interacted poorly with garbage
collection (we saw this bug specifically with the compacting garbage
collector.)
This fix immediately tags the register containing the heap pointer,
so that unless we have extremely unfriendly spill code, the new pointer
will never be spilled to the stack untagged.
An alternate solution might have been to modify allocDynClosure to
tag the pointer upon the initial register allocation, but not all
invocations of allocDynClosure tag the resulting pointer, and
threading the consequent CgIdInfo for the cases that did would have
been annoying.
simonpj@microsoft.com [Mon, 21 Mar 2011 11:00:09 +0000 (11:00 +0000)]
Fix Trac #5028: zap occ info when doing the binder swap
This fixes the Lint error, but still risks leaving stupid
let { x=y } bindings in the code. But no time to fix that
today. (Leave the ticket open for that reason.)
Simon Marlow [Fri, 18 Mar 2011 14:21:22 +0000 (14:21 +0000)]
pruneSparkQueue: handle CAFs
Ian Lynagh [Wed, 23 Mar 2011 21:16:51 +0000 (21:16 +0000)]
Document new hsc2hs flags, and use the --cross-safe flag when we're compiling
Patch from Brian Bloniarz
Ian Lynagh [Tue, 22 Mar 2011 18:21:12 +0000 (18:21 +0000)]
bindist checker improvements
* Some refactoring
* Support for Windows filenames
* Some support for installed trees (as Windows "bindists" are really
install trees)
Ian Lynagh [Mon, 21 Mar 2011 23:43:08 +0000 (23:43 +0000)]
Rename System.Event to GHC.Event
It's just an internal GHC library, for now at least
Ian Lynagh [Mon, 21 Mar 2011 22:31:07 +0000 (22:31 +0000)]
Hack to get the compare tool to work on Windows "bindists"
William Knop [Wed, 9 Mar 2011 20:19:11 +0000 (20:19 +0000)]
Don't use read_only_relocs on darwin x86-64; fixes #4984
Max Bolingbroke [Sun, 20 Mar 2011 14:06:25 +0000 (14:06 +0000)]
FunctionalDependencies should imply MultiParamTypeClasses
Ian Lynagh [Sun, 20 Mar 2011 01:25:40 +0000 (01:25 +0000)]
Change how we compute install paths on cygwin
We used to have
MK_INSTALL_DEST = "$(shell cygpath $1)"
but this meant we ended up with
"$(shell cygpath "[...]/html/`basename $$i`")"
and the $(...) gets evaluated before the makefile rule, so the for loop
hasn't been run, and so $i isn't defined. So we were taking the basename
of the empty string, meaning docs weren't being installed in the right
place.
Now we have
MK_INSTALL_DEST = $$(cygpath $1)
so the evaluation happens in the shell, while the for loop is running.
Ian Lynagh [Thu, 17 Mar 2011 00:34:06 +0000 (00:34 +0000)]
Add unboxedTupleTName to templateHaskellNames
Ian Lynagh [Wed, 16 Mar 2011 22:13:38 +0000 (22:13 +0000)]
bindist comparison tool: Improve way-difference behaviour
Ian Lynagh [Wed, 16 Mar 2011 22:07:48 +0000 (22:07 +0000)]
Bindist comparison tool: add --ignore-size-changes flag
Ian Lynagh [Wed, 16 Mar 2011 21:47:08 +0000 (21:47 +0000)]
Bindist comparison tool: Handle differences in the library ways nicely
In particular, this makes it possible to compare release bindists (with
profiling files) and validate bindists (without them).
Ian Lynagh [Wed, 16 Mar 2011 19:01:17 +0000 (19:01 +0000)]
Don't put includes/rts/Config.h in bindists twice
Ian Lynagh [Wed, 16 Mar 2011 17:29:45 +0000 (17:29 +0000)]
Don't put 2 copies of the RTS libraries in the bindists
Ian Lynagh [Wed, 16 Mar 2011 16:20:45 +0000 (16:20 +0000)]
Make include file paths a little prettier
This isn't important, but it stops us getting [...]/./[...] in the paths
in bindists.
Ian Lynagh [Tue, 15 Mar 2011 16:29:12 +0000 (16:29 +0000)]
Initial implementation of bindist comparison tool
Ian Lynagh [Sun, 13 Mar 2011 14:03:22 +0000 (14:03 +0000)]
Stop explicitly asking for 10.5 support on OS X; fixes #5011
XCode 4 doesn't include the 10.5 SDK, so if we explicitly ask for it
then linking fails.
Ian Lynagh [Sun, 13 Mar 2011 13:49:13 +0000 (13:49 +0000)]
Write the XCode version test differently
Using && causes problems on opensolaris, for an unknown reason.
http://www.haskell.org/pipermail/cvs-ghc/2011-March/060314.html
Ian Lynagh [Fri, 11 Mar 2011 21:29:58 +0000 (21:29 +0000)]
Consistently use <sect1> etc rather than <section>; fixes #5009
It might be nicer to actually go the other way, and make everything
use <section> instead, but this fixes the incorrect numbering for
now, and we can look into whether <section> has any disadvantages
later.
Max Bolingbroke [Sat, 19 Feb 2011 11:47:26 +0000 (11:47 +0000)]
Drop dead core that was kept alive by RULES in CorePrep (#4962)
Michal Terepeta [Wed, 27 Oct 2010 18:40:54 +0000 (18:40 +0000)]
Optimise comparisons against min/maxBound (ticket #3744).
This optimises away comparisons with minBound or maxBound
that are always false or always true.
David Terei [Wed, 9 Mar 2011 21:53:46 +0000 (21:53 +0000)]
LLVM: Fix #4995, llvm mangler broken for large compiles
Ian Lynagh [Mon, 7 Mar 2011 22:58:23 +0000 (22:58 +0000)]
Improve the XCode version detection
Amongst other improvements, we now handle 3-component versions
(like "3.1.4") correctly.
Edward Z. Yang [Sun, 6 Mar 2011 21:59:16 +0000 (21:59 +0000)]
Impredicative polymorphism no longer deprecated.
Ian Lynagh [Sun, 6 Mar 2011 15:15:32 +0000 (15:15 +0000)]
Fix doc formatting
Sergei Trofimovich [Tue, 1 Mar 2011 19:40:18 +0000 (19:40 +0000)]
configure: amend sanity check
As we perform some mangling of original --build/--host/--target
params we should check the result of mangling against desired triplet,
not originally passed by user.
Patch also adds mangled triplets to the output.
Sergei Trofimovich [Tue, 1 Mar 2011 06:41:08 +0000 (06:41 +0000)]
configure: triplet: accept i486 CPU (and more), more vendors and OSes
Gentoo has interesting ports:
- freebsd with following triplet:
./configure --build=i686-gentoo-freebsd8 --host=i686-gentoo-freebsd8 --host=i686-gentoo-freebsd8
should be recognized as 'i386-unknown-freebsd'
- 'pc' vendor along with non-'i386' is very common:
./configure --build=i486-pc-linux-gnu --i486-pc-linux-gnu --host=i486-pc-linux-gnu
./configure --build=i686-pc-linux-gnu --i686-pc-linux-gnu --host=i686-pc-linux-gnu
should be recognized as 'i386-unknown-linux'
Patch adds:
- 'pc' vendor (maps to 'unknown')
- 'gentoo' vendor (maps to 'unknown')
- 'i486', 'i586', 'i686' CPUs (maps to 'i386')
- 'freebsd8' OS (maps to 'freebsd')
simonpj@microsoft.com [Sun, 6 Mar 2011 00:02:16 +0000 (00:02 +0000)]
Document -fwarn-missing-import-lists
Also change the behaviour slightly, to warn only for
*unqualified* imports. See Trac #4977.
Manuel M T Chakravarty [Sat, 5 Mar 2011 12:36:25 +0000 (12:36 +0000)]
Completed the implementation of VECTORISE SCALAR
- The pragma {-# VECTORISE SCALAR foo #-} marks 'foo' as a
scalar function for for vectorisation and generates a
vectorised version by applying 'scalar_map' and friends.
- The set of scalar functions is not yet emitted into
interface files. This will be added in a subsequent
patch via 'VectInfo'.
Ian Lynagh [Sat, 5 Mar 2011 15:39:31 +0000 (15:39 +0000)]
Fix build, and improve ghc-cabal's errors
Ian Lynagh [Sat, 5 Mar 2011 15:02:38 +0000 (15:02 +0000)]
Whitespace only
Ian Lynagh [Sat, 5 Mar 2011 15:01:18 +0000 (15:01 +0000)]
Sanity check values that we wrap in single quotes
Make sure they contain no single quotes, leading spaces, or trailing spaces.
Ian Lynagh [Sat, 5 Mar 2011 14:48:25 +0000 (14:48 +0000)]
Avoid some shell calls in the build system
The DEP_INCLUDE_DIRS and DEP_LIB_DIRS variables always contain
single-quote dirs, so we can use e.g.
$(subst $(space)',$(space)-L',$(space)$($1_$2_DEP_LIB_DIRS_SINGLE_QUOTED))
to add -L to the front of each dir. I've appended "_SINGLE_QUOTED" to
the variable names so we don't accidentally add bare directories to
them.
simonpj@microsoft.com [Wed, 2 Mar 2011 11:43:17 +0000 (11:43 +0000)]
Make -fno-enable-rewrite-rules work properly
I'd failed to propagate the Opt_EnableRewriteRules flag properly,
which meant that -fno-enable-rewrite-rules didn't disable all
rewrites. This patch fixes it.
simonpj@microsoft.com [Wed, 2 Mar 2011 11:30:41 +0000 (11:30 +0000)]
Comments only
simonpj@microsoft.com [Tue, 22 Feb 2011 17:31:12 +0000 (17:31 +0000)]
Restore SPECIALISE INSTANCE pragmas
For some reason I'd commented out this code, which
meant that we weren't getting the the goodness of
the SPECIALISE INSTANCE pragamas in GHC.Real. And
that in turn killed performance in nofib 'power'