Ian Lynagh [Mon, 24 Mar 2008 22:40:06 +0000 (22:40 +0000)]
Another change for GHC.PrimopWrappers moving from base to ghc-prim
Ian Lynagh [Mon, 24 Mar 2008 21:23:19 +0000 (21:23 +0000)]
Update darcs-boring
Tim Chevalier [Mon, 24 Mar 2008 01:43:11 +0000 (01:43 +0000)]
Fix primMname in External Core printer
My earlier changes broke printing of function types in .hcr files.
In other words: the z-encoding must die.
Tim Chevalier [Mon, 24 Mar 2008 00:52:46 +0000 (00:52 +0000)]
Fix primMname in External Core printer
My earlier changes broke printing of function types in .hcr files.
In other words: the z-encoding must die.
Ian Lynagh [Sun, 23 Mar 2008 18:25:57 +0000 (18:25 +0000)]
Follow library changes
Integer, Bool and Unit/Inl/Inr are now in new packages integer
and ghc-prim.
Ian Lynagh [Thu, 20 Mar 2008 19:58:36 +0000 (19:58 +0000)]
CgTicky now doesn't know about the Integer data constructors
Ian Lynagh [Sat, 22 Mar 2008 14:06:41 +0000 (14:06 +0000)]
-DDEBUG build fix
Ian Lynagh [Thu, 20 Mar 2008 22:19:15 +0000 (22:19 +0000)]
Rename rebuild to remake, and define rebuild to "clean; build"
Tim Chevalier [Thu, 20 Mar 2008 01:44:49 +0000 (01:44 +0000)]
Handle hierarchical module names in External Core tools
I updated the parser to handle hierarchical module names (with package names)
the way GHC is currently printing them out in External Core.
Beware kludgy use of z-encoding and gratutious copy-pasta from GHC.
You can now use the stand-alone Core parser to parse a very simple
GHC-generated .hcr file (progress!) but not to typecheck or interpret it
(the typechecker/interpreter don't snarf in the right libraries yet, among
other things.) And, the parser is still incomplete in that it doesn't handle
programs with newtypes/GADTs/etc. whose syntax has changed since 2003. In
other words: probably don't try to use this yet.
Tim Chevalier [Wed, 19 Mar 2008 19:04:29 +0000 (19:04 +0000)]
Improve hierarchical module name handling in MkExternalCore
It's easier for the External Core parser if MkExternalCore prints
module names like:
base:GHCziBase
rather than like:
base:GHC.Base
(which it was doing before.)
So now we z-encode the hierarchical module-name part of a module
name, but don't z-encode the ':'.
I also removed some old comments that don't seem relevant anymore.
Tim Chevalier [Wed, 19 Mar 2008 18:25:21 +0000 (18:25 +0000)]
Fixed remaining warning in coreSyn/MkExternalCore
There was a (suppressed) warning about an incomplete pattern match in make_alt. This was because the DEFAULT alt never has variable bindings. I thought it would be better to check that case and panic if it happens than to have an incomplete pattern. It's still not great, but at least now we don't have to suppress any warnings in this file.
Ian Lynagh [Mon, 17 Mar 2008 20:01:30 +0000 (20:01 +0000)]
Revert an accidental change
Ian Lynagh [Mon, 17 Mar 2008 18:50:32 +0000 (18:50 +0000)]
Print some extra debugging info when doing --show-iface
Ian Lynagh [Mon, 17 Mar 2008 18:01:50 +0000 (18:01 +0000)]
Eliminate a global variable
Very little parameter passing is needed without it, so there was no real
benefit to it.
Ian Lynagh [Mon, 17 Mar 2008 10:36:17 +0000 (10:36 +0000)]
Follow changes in editline
Ian Lynagh [Sun, 16 Mar 2008 06:04:07 +0000 (06:04 +0000)]
Use editline instead of readline
Roman Leshchinskiy [Mon, 17 Mar 2008 03:34:36 +0000 (03:34 +0000)]
Vectorise tuple constructorsn
keller@cse.unsw.edu.au [Mon, 17 Mar 2008 02:55:53 +0000 (02:55 +0000)]
Added double divide and unzipP
keller@cse.unsw.edu.au [Tue, 11 Mar 2008 12:50:35 +0000 (12:50 +0000)]
Added 'div' to set of vectorising functions
Ian Lynagh [Sun, 16 Mar 2008 21:41:04 +0000 (21:41 +0000)]
If unregisterised, link with -optl-Wl,--relax on IA64
This fixes part of trac #856
Ian Lynagh [Sat, 15 Mar 2008 14:17:51 +0000 (14:17 +0000)]
When concatenating variables in Makefile, strip spaces in case one is empty
Otherwise "$(A) $(B)" will not be equal to "" even if A and B are empty.
Trac #856.
Ian Lynagh [Sun, 16 Mar 2008 21:17:48 +0000 (21:17 +0000)]
Fix a space leak in :trace (trac #2128)
We were doing lots of cons'ing and tail'ing without forcing the tails,
so were building up lots of thunks.
Ian Lynagh [Sun, 16 Mar 2008 19:56:36 +0000 (19:56 +0000)]
If we are failing due to a warning and -Werror, say so
Fixes trac #1893, based on a patch from Daniel Franke.
Ian Lynagh [Sat, 15 Mar 2008 19:42:20 +0000 (19:42 +0000)]
Remove leftover NoteTy/FTVNote bits
Ian Lynagh [Sat, 15 Mar 2008 15:50:27 +0000 (15:50 +0000)]
Remove uses of addFreeTyVars
This optimisation actually make things a bit slower on average, as
measured by nofib. The example in #1136 in particular suffers from high
memory usage. Therefore we no longer do the optimisation.
Simon Marlow [Thu, 13 Mar 2008 18:29:36 +0000 (18:29 +0000)]
parsing tweak for :break
Simon Marlow [Thu, 7 Feb 2008 12:24:45 +0000 (12:24 +0000)]
Tweaks to stack squeezing
1. We weren't squeezing two frames if one of them was a marked update
frame. This is easy to fix.
2. The heuristic to decide whether to squeeze was a little
conservative. It's worth copying 3 words to save an update frame.
Manuel M T Chakravarty [Thu, 13 Mar 2008 06:52:20 +0000 (06:52 +0000)]
Some cleanup in TcSimplify.reduceContext
- Makes this horrid function a bit better - and shorter!
- Also gets rid of another API function of TcTyFuns
Manuel M T Chakravarty [Thu, 13 Mar 2008 05:17:08 +0000 (05:17 +0000)]
Properly normalise reduced dicts
- Another chapter in the never-ending TcSimplify.reduceContext saga: after
context reduction of wanted dicts it is not sufficient to normalise them
wrt to the wanted equalities. We also need to take top-level equalities
into account. (In fact, we probably also have to normalise wrt to given
equalities, but I have left that open for the moment - but added a TODO
note.)
- This finally eliminates substEqInDictInsts from TcTyFuns interface and
suggest some further possible clean up (which will be in a separate patch).
Thanks to Roman for the intricate example that uncovered this bug.
Roman Leshchinskiy [Thu, 13 Mar 2008 06:14:11 +0000 (06:14 +0000)]
Bump mAX_NDP_PROD to 5
Simon Marlow [Wed, 12 Mar 2008 21:57:24 +0000 (21:57 +0000)]
#2050: save the GHCi history in ~/.ghc/ghci_history
Modified version of Judah's patch
Roman Leshchinskiy [Wed, 12 Mar 2008 03:49:05 +0000 (03:49 +0000)]
Make sure we generate PA dictionaries for tuples up to mAX_NDP_PROD
Roman Leshchinskiy [Wed, 12 Mar 2008 03:02:45 +0000 (03:02 +0000)]
Bump mAX_NDP_PROD to 4
Tim Chevalier [Mon, 10 Mar 2008 02:58:21 +0000 (02:58 +0000)]
First cut at reviving the External Core tools
I updated the External Core AST to be somewhat closer to reality (where reality is defined by the HEAD), and got all the code to compile under GHC 6.8.1. (That means it works, right?)
Major changes:
- Added a Makefile.
- Core AST:
- Represented package names and qualified module names.
- Added type annotation on Case exps.
- Changed Coerce to Cast.
- Cleaned up representation of qualified/unqualified names.
- Fixed up wired-in module names (no more "PrelGHC", etc.)
- Updated parser/interpreter/typechecker/prep for the new AST.
- Typechecker:
- Used a Reader monad to pass around the global environment and top module name.
- Added an entry point to check a single expression.
- Prep:
- Got rid of typeofExp; it's now defined in terms of the typechecker.
Roman Leshchinskiy [Sun, 9 Mar 2008 22:59:14 +0000 (22:59 +0000)]
Remove ndpFlatten
This patch removes the ndpFlatten directory and the -fflatten static flag.
This code has never worked and has now been superceded by vectorisation.
iavor.diatchki@gmail.com [Sun, 9 Mar 2008 19:19:11 +0000 (19:19 +0000)]
documentation fix: change flag -frules-off to -fno-rewrite-rules
simonpj@microsoft.com [Thu, 6 Mar 2008 13:50:26 +0000 (13:50 +0000)]
Don't expose the unfolding of dictionary selectors without -O
When compiling without -O we were getting code like this
f x = case GHC.Base.$f20 of
:DEq eq neq -> eq x x
But because of the -O the $f20 dictionary is not available, so exposing
the dictionary selector was useless. Yet it makes the code bigger!
Better to get
f x = GHC.Base.== GHC.Bsae.$f20 x x
This patch suppresses the implicit unfolding for dictionary selectors
when compiling without -O. We could do the same for other implicit
Ids, but this will do for now.
There should be no effect when compiling with -O. Programs should
be smaller without -O and may run a tiny bit slower.
simonpj@microsoft.com [Thu, 6 Mar 2008 13:47:34 +0000 (13:47 +0000)]
Fix Trac #783: improve short-cutting literals in the type checker
The Inst.shortCutIntLit mechanism in the type checker was missing cases
where a floating-point literal was given without an explicit decimal point.
As a result, programs with lots of floating-point literals (without decimals)
ended up with massive Static Reference Tables. This is not cool. See
comments with Trac #783 for details.
simonpj@microsoft.com [Thu, 6 Mar 2008 13:46:51 +0000 (13:46 +0000)]
Fix Trac #2138: print the 'stupid theta' of a data type
Roman Leshchinskiy [Fri, 7 Mar 2008 05:08:59 +0000 (05:08 +0000)]
Fix vectorisation monad
simonpj@microsoft.com [Thu, 6 Mar 2008 12:00:04 +0000 (12:00 +0000)]
Improve SpecConstr for local bindings: seed specialisation from the calls
This patch makes a significant improvement to SpecConstr, based on
Roman's experience with using it for stream fusion. The main change is
this:
* For local (not-top-level) declarations, seed the specialisation
loop from the calls in the body of the 'let'.
See Note [Local recursive groups] for discussion and example. Top-level
declarations are treated just as before.
Other changes in this patch:
* New flag -fspec-constr-count=N sets the maximum number of specialisations
for any single function to N. -fno-spec-constr-count removes the limit.
* Refactoring in specLoop and friends; new algebraic data types
OneSpec and SpecInfo instead of the tuples that were there before
* Be less keen to specialise on variables that are simply in scope.
Example
f p q = letrec g a y = ...g.... in g q p
We probably do not want to specialise 'g' for calls with exactly
the arguments 'q' and 'p', since we know nothing about them.
simonpj@microsoft.com [Wed, 5 Mar 2008 15:57:08 +0000 (15:57 +0000)]
Refactor OccAnal; and improve dead-code elimination
The occurrence analyer is now really rather subtle when dealing
with recursive groups; see Note [Loop breaking and RULES] especially.
This patch refactors this code a bit, notably
* Introduces a new data type Details instead of a tuple
* More clearly breaks up a recursive group into its SCCs
before processing it in a separate function occAnalRec
* As a result, does better dead-code elimination, becuause it's
done per SCC rather than for the whole Rec
Ian Lynagh [Wed, 5 Mar 2008 22:40:20 +0000 (22:40 +0000)]
Copy the right ghc-pkg.bin into bindists
Ian Lynagh [Wed, 5 Mar 2008 22:11:36 +0000 (22:11 +0000)]
Add a missing endif to the bindist Makefile
Ian Lynagh [Wed, 5 Mar 2008 13:45:56 +0000 (13:45 +0000)]
Fix bashisms; patch from Bernie Pope
Ian Lynagh [Wed, 5 Mar 2008 01:12:42 +0000 (01:12 +0000)]
Improve no-type-signature warning
Instead of
Warning: Definition but no type signature for `.+.'
Inferred type: .+. :: forall a. a
we now say
Warning: Definition but no type signature for `.+.'
Inferred type: (.+.) :: forall a. a
Ian Lynagh [Sun, 2 Mar 2008 15:13:39 +0000 (15:13 +0000)]
Fix typo
Ian Lynagh [Sun, 2 Mar 2008 14:04:08 +0000 (14:04 +0000)]
In bindists, look in the right place to see if we have provided docs
Fixes trac #1971: unjustified warning about documentation
Manuel M T Chakravarty [Fri, 29 Feb 2008 03:57:40 +0000 (03:57 +0000)]
Remove GADT refinements, part 3
Manuel M T Chakravarty [Thu, 28 Feb 2008 05:07:07 +0000 (05:07 +0000)]
MacOS installer: Uninstaller must be able to deal with ATiger receipts
Ian Lynagh [Wed, 27 Feb 2008 14:45:05 +0000 (14:45 +0000)]
Add and use seqBitmap when constructing SRTs
This roughly halves memory usage when compiling
module Foo where
foo :: Double -> Int
foo x | x == 1 = 1
...
foo x | x == 500 = 500
without optimisation.
Ian Lynagh [Wed, 20 Feb 2008 19:12:30 +0000 (19:12 +0000)]
Whitespace
Manuel M T Chakravarty [Thu, 28 Feb 2008 05:53:26 +0000 (05:53 +0000)]
Remove GADT refinements, part 2
simonpj@microsoft.com [Thu, 28 Feb 2008 12:11:06 +0000 (12:11 +0000)]
Fix Trac #2130: improve derived Ord for primmitive types
This patch does two things:
* (Minor): in TcGenDeriv.careful_compare_Case, test for less-than before
equality. This should reduce the number of dynamic tests, and also gives
more scope for optimisation, since less-than tells us more than equality.
* (More important): add special-case derived code for data types that are
simple wrappers of primitive types. See
Note [Comparision of primitive types]
This fixes Trac 2130.
However see also Trac #2132, which is not addressed here.
simonpj@microsoft.com [Thu, 28 Feb 2008 11:13:01 +0000 (11:13 +0000)]
Comments only
Simon Marlow [Thu, 28 Feb 2008 11:22:09 +0000 (11:22 +0000)]
add a note about SMP execution not being supported with profiling
Simon Marlow [Thu, 28 Feb 2008 11:16:31 +0000 (11:16 +0000)]
Enable -prof -threaded (#886)
It turns out that -prof -threaded works (modulo some small changes),
because all the data structures used in profiling are only accessed by
one thread at a time, at long as we don't use +RTS -N2 or higher. So
this patch enables the use of -prof -threaded, but an error is given
if you ask for more than one CPU with +RTS -N.
simonpj@microsoft.com [Thu, 28 Feb 2008 08:31:04 +0000 (08:31 +0000)]
Wibble to error message (stmt of do block or comprehension)
Max Bolingbroke [Thu, 28 Feb 2008 08:30:50 +0000 (08:30 +0000)]
Make explicit lists more fusable
simonpj@microsoft.com [Thu, 28 Feb 2008 08:29:35 +0000 (08:29 +0000)]
Add comments explaining flags
Manuel M T Chakravarty [Thu, 28 Feb 2008 04:53:51 +0000 (04:53 +0000)]
Remove GADT refinements, part 1
- A while ago, I changed the type checker to use equality constraints together
with implication constraints to track local type refinement due to GADT
pattern matching. This patch is the first of a number of surgical strikes
to remove the resulting dead code of the previous GADT refinement machinery.
Hurray to code simplification!
Manuel M T Chakravarty [Thu, 28 Feb 2008 00:19:57 +0000 (00:19 +0000)]
Eliminate SkolemOccurs skolems only after checkLoop reached a fixed point
- See test case indexed-types/should_fail/SkolemOccursLoop, which sends the
type checker into an endless loop without this fix
simonpj@microsoft.com [Wed, 27 Feb 2008 16:32:02 +0000 (16:32 +0000)]
Fix Trac #2126: re-order tests (easy)
simonpj@microsoft.com [Tue, 26 Feb 2008 17:56:35 +0000 (17:56 +0000)]
Fix Trac #2111: improve error handling for 'rec' in do-notation
We were not dealing correctly with all the combinations of
do notation
mdo notation
arrow notation
in combination with 'rec' Stmts.
I think this patch sorts it out.
simonpj@microsoft.com [Tue, 26 Feb 2008 17:53:05 +0000 (17:53 +0000)]
Remove gaw comment
simonpj@microsoft.com [Tue, 26 Feb 2008 17:47:43 +0000 (17:47 +0000)]
Fix Trac #1899; missing equality check in typechecker's constraint simplifier
This patch fixes a missing equality check (uifying type variable b=b) in
the new constraint simplifier in TcTyFuns. As it stands, we were making
'b' point to itself, which subsequently led to an infinite loop when
zonking. Test is T1899.hs
Simon Marlow [Tue, 26 Feb 2008 10:46:50 +0000 (10:46 +0000)]
FIX #2122: file locking bug
Second and subsequent readers weren't being inserted into the
fd->lock hash table, which meant that the file wasn't correctly
unlocked when the Handles were closed.
Simon Marlow [Tue, 26 Feb 2008 10:26:12 +0000 (10:26 +0000)]
documentation improvements from Frederik Eaton
Simon Marlow [Tue, 26 Feb 2008 10:25:58 +0000 (10:25 +0000)]
markup fix
Manuel M T Chakravarty [Mon, 25 Feb 2008 09:37:34 +0000 (09:37 +0000)]
Mac installer: cross-compile for 10.4
Ian Lynagh [Mon, 25 Feb 2008 17:13:05 +0000 (17:13 +0000)]
Make UniqFM non-strict again while we work out what we're doing.
This "fixes" the very-slow problem we have when compiling dictionaries.
simonpj@microsoft.com [Tue, 19 Feb 2008 17:34:10 +0000 (17:34 +0000)]
Fix Trac #2082
simonpj@microsoft.com [Fri, 22 Feb 2008 18:26:46 +0000 (18:26 +0000)]
Fix Trac #2114: error reporting for 'forall' without appropriate flags
simonpj@microsoft.com [Fri, 22 Feb 2008 18:25:14 +0000 (18:25 +0000)]
Improve error messages from type-checking data constructors
This addresses Trac #2112
simonpj@microsoft.com [Fri, 22 Feb 2008 18:23:05 +0000 (18:23 +0000)]
Add type sigs and minor refactoring
Ian Lynagh [Sun, 24 Feb 2008 14:32:56 +0000 (14:32 +0000)]
FIX #2073: Don't add empty lines to GHCI's history
Ian Lynagh [Sun, 24 Feb 2008 13:43:34 +0000 (13:43 +0000)]
FIX #1977: Check to see if $(bindir) is in the path
Before telling the user to add it, when installing a bindist, check to
see if $(bindir) is already in the path.
Ian Lynagh [Fri, 22 Feb 2008 15:03:18 +0000 (15:03 +0000)]
Fix warnings in Simplify
Ian Lynagh [Fri, 22 Feb 2008 14:07:55 +0000 (14:07 +0000)]
Whitespace
Ian Lynagh [Wed, 20 Feb 2008 20:58:44 +0000 (20:58 +0000)]
Add a comment
Ian Lynagh [Wed, 20 Feb 2008 17:18:58 +0000 (17:18 +0000)]
Fix most of the warnings in StgLint
Ian Lynagh [Wed, 20 Feb 2008 17:11:40 +0000 (17:11 +0000)]
Whitespace
Ian Lynagh [Wed, 20 Feb 2008 17:08:43 +0000 (17:08 +0000)]
CprAnalyse is warning-free
Ian Lynagh [Wed, 20 Feb 2008 17:06:50 +0000 (17:06 +0000)]
Whitespace
Simon Marlow [Tue, 19 Feb 2008 10:22:12 +0000 (10:22 +0000)]
Fix #1984: missing context switches
Simon Marlow [Tue, 19 Feb 2008 09:34:07 +0000 (09:34 +0000)]
fix unregisterised stage 2 build
Manuel M T Chakravarty [Thu, 21 Feb 2008 22:44:49 +0000 (22:44 +0000)]
Mac OS X deployment target: piping opts through Makefiles
Ian Lynagh [Wed, 20 Feb 2008 15:37:52 +0000 (15:37 +0000)]
Rewrite fixTvSubstEnv so it iteratively applies its substition
This fixes a stack overflow when using strict UniqFMs. It might be
possible to rewrite it more efficiently, or to avoid needing it in the
first place.
Ian Lynagh [Tue, 19 Feb 2008 20:41:17 +0000 (20:41 +0000)]
Typo
Ian Lynagh [Thu, 7 Feb 2008 01:57:14 +0000 (01:57 +0000)]
Make some more modules use LazyUniqFM instead of UniqFM
If these modules use UniqFM then we get a stack overflow when compiling
modules that use fundeps. I haven't tracked down the actual cause.
Manuel M T Chakravarty [Tue, 19 Feb 2008 03:17:55 +0000 (03:17 +0000)]
Add configure option --with-macos-deployment-target
Ian Lynagh [Tue, 19 Feb 2008 02:04:29 +0000 (02:04 +0000)]
Fix warning in SCCfinal
Ian Lynagh [Tue, 19 Feb 2008 01:52:59 +0000 (01:52 +0000)]
Whitespace only
Ian Lynagh [Tue, 19 Feb 2008 01:32:33 +0000 (01:32 +0000)]
Fix warnings in UniqSupply
Ian Lynagh [Tue, 19 Feb 2008 01:24:17 +0000 (01:24 +0000)]
Whitespace only
Ian Lynagh [Tue, 19 Feb 2008 01:09:17 +0000 (01:09 +0000)]
Fix non-missing-signature warnings in MkId
Ian Lynagh [Tue, 19 Feb 2008 00:50:42 +0000 (00:50 +0000)]
Whitespace only
Ian Lynagh [Mon, 18 Feb 2008 23:45:59 +0000 (23:45 +0000)]
Whitespace only
Ian Lynagh [Mon, 18 Feb 2008 18:34:24 +0000 (18:34 +0000)]
Make literals in the syntax tree strict
Ian Lynagh [Mon, 18 Feb 2008 17:55:14 +0000 (17:55 +0000)]
Make the parser a bit stricter