Ian Lynagh [Tue, 14 Nov 2006 11:35:42 +0000 (11:35 +0000)]
Document new -L RTS flag
Ian Lynagh [Tue, 14 Nov 2006 11:25:14 +0000 (11:25 +0000)]
Be compatible with older C standards
Ravi Nanavati [Fri, 29 Sep 2006 22:54:18 +0000 (22:54 +0000)]
hp2ps_config_mk
Add variables for hp2ps to config.mk.in
Ravi Nanavati [Fri, 29 Sep 2006 22:53:24 +0000 (22:53 +0000)]
hp_slash_fix
Fix output of cost-centre stacks so that the slashes appear in the correct place
Please include this patch in the 6.6 branch as well as HEAD
Ravi Nanavati [Fri, 29 Sep 2006 22:51:15 +0000 (22:51 +0000)]
rts_ccs_length
Add the -L RTS flag to control the length of the cost-centre stacks reported in
a heap profile.
Please include this change in the 6.6 branch as well as HEAD
Ravi Nanavati [Fri, 29 Sep 2006 22:47:39 +0000 (22:47 +0000)]
multipage_hp2ps
Add support for splitting the key index over multiple pages in hp2ps
Multipage support can be requested with the -M command-line flag
or inferred if the number of bands requested is greater than 20
(the limit on the number of bands displayed has been removed)
Please include this change in the 6.6 branch as well as HEAD
Simon Marlow [Tue, 14 Nov 2006 12:31:57 +0000 (12:31 +0000)]
Fix (yet another) odd interaction between selector thunks and compacting GC
This should fix errors of the form
internal error: scavenge_mark_stack: unimplemented/strange closure
type 28 @ 0x2b92e5f79960
But since it's quite difficult to reproduce the error, I can't be 100%
certain it's gone. I certainly can't reproduce it again after the
fix, anyway.
simonpj@microsoft.com [Mon, 13 Nov 2006 09:35:01 +0000 (09:35 +0000)]
Add literal-shift rewrite rules
This is a re-factored version of Sam Bronson's patch
Need to take care with logical shifts.
simonpj@microsoft.com [Mon, 13 Nov 2006 09:05:17 +0000 (09:05 +0000)]
Fixups to PelRules (esp using intResult, wordResult)
In PrelRules we carefully use 'intResult' to trim off the overflow in
compile-time calculations, but we were not doing so consistently. This
patch fixes that, I think, and adds type signatures
Ian Lynagh [Sun, 12 Nov 2006 17:09:46 +0000 (17:09 +0000)]
Fix typo "comand" (trac #965)
Samuel Bronson [Fri, 10 Nov 2006 18:36:33 +0000 (18:36 +0000)]
Zap stray whitespace in lhs formatting
Samuel Bronson [Sat, 4 Nov 2006 01:56:42 +0000 (01:56 +0000)]
Fix up .lhs delimiters a bit
claus.reinke@talk21.com [Thu, 9 Nov 2006 16:40:54 +0000 (16:40 +0000)]
find fop.sh
the fop bundle contains fop.bat and fop.sh, but not fop;
let configuration find the latter.
Samuel Bronson [Wed, 8 Nov 2006 19:21:15 +0000 (19:21 +0000)]
Doc nit in OccName
Ian Lynagh [Fri, 10 Nov 2006 18:20:50 +0000 (18:20 +0000)]
Remove STANDALONE_PACKAGE bits that had escaped the removal
sven.panne@aedion.de [Fri, 10 Nov 2006 17:16:26 +0000 (17:16 +0000)]
Make StablePtr and friends visible, this seems to be necessary for 64bit architectures
sven.panne@aedion.de [Fri, 10 Nov 2006 16:27:43 +0000 (16:27 +0000)]
Make all needed prototypes visible to avoid warnings
sven.panne@aedion.de [Fri, 10 Nov 2006 16:26:54 +0000 (16:26 +0000)]
Added a comment about se.info.type being used uninitialized
sven.panne@aedion.de [Fri, 10 Nov 2006 16:26:16 +0000 (16:26 +0000)]
Added a workaround for format specifier mismatch
simonpj@microsoft.com [Fri, 10 Nov 2006 13:31:23 +0000 (13:31 +0000)]
Use implication constraints to improve type inference
simonpj@microsoft.com [Fri, 10 Nov 2006 13:15:13 +0000 (13:15 +0000)]
Cosmetics and debug printing only
simonpj@microsoft.com [Fri, 10 Nov 2006 13:13:45 +0000 (13:13 +0000)]
Cosmetics only
simonpj@microsoft.com [Fri, 10 Nov 2006 13:12:50 +0000 (13:12 +0000)]
Add HsUtils.unguardedGRHSs, and use it
simonpj@microsoft.com [Fri, 10 Nov 2006 13:10:36 +0000 (13:10 +0000)]
Comments and cosmetics only
simonpj@microsoft.com [Fri, 10 Nov 2006 13:08:36 +0000 (13:08 +0000)]
Add new utility function, partitionWith
simonpj@microsoft.com [Fri, 10 Nov 2006 13:08:14 +0000 (13:08 +0000)]
Trim imports
simonpj@microsoft.com [Fri, 10 Nov 2006 13:07:26 +0000 (13:07 +0000)]
Patch to demand analyser, to handle polymorphism in zipWithDmds
simonpj@microsoft.com [Wed, 8 Nov 2006 09:48:13 +0000 (09:48 +0000)]
Do not print HsDoc field when pretty-printing patterns (messes up error message)
Simon Marlow [Thu, 9 Nov 2006 10:17:53 +0000 (10:17 +0000)]
use the right $(HC) for stage 3
Simon Marlow [Thu, 9 Nov 2006 10:17:29 +0000 (10:17 +0000)]
remove unused STANDALONE_PACKAGE stuff
Simon Marlow [Wed, 8 Nov 2006 10:38:06 +0000 (10:38 +0000)]
update flag settings after files were relocated
simonpj@microsoft.com [Tue, 7 Nov 2006 17:13:36 +0000 (17:13 +0000)]
Comment out deeply suspicious (and unused) function insertStableSymbol
The function insertStableSymbol looks utterly wrong, because it
coerces a value of type 'a' to an Addr#! That was in turn making the
code generator get confused (now improved), but since insertStableSymbol
isn't used at all, I'm just commenting it out.
Meanwhile, this patch also enhances CoreToStg to report the most egregious
cases where an unsafe coerce is going to confuse the code generator.
simonpj@microsoft.com [Tue, 7 Nov 2006 17:10:40 +0000 (17:10 +0000)]
Layout and comments only
simonpj@microsoft.com [Mon, 6 Nov 2006 16:12:12 +0000 (16:12 +0000)]
Warn only of explicit imports that are unused (test is mod177)
This is really a long-standing bug. See test mod177.
simonpj@microsoft.com [Mon, 6 Nov 2006 16:02:44 +0000 (16:02 +0000)]
Various debugging print changes; nothing exciting
simonpj@microsoft.com [Mon, 6 Nov 2006 15:59:01 +0000 (15:59 +0000)]
Tidy up substitutions
The new simplifer stuff exposed the fact that the invariants on the
TvSubstEnv and IdSubstEnv were insufficiently explicit. (Resulted in
a bug found by Sam Brosnon.)
This patch fixes the bug, and tries to document the invariants pretty
thoroughly. See
Note [Extending the TvSubst] in Type
Note [Extenting the Subst] in CoreSubst
(Most of the new lines are comments.)
Samuel Bronson [Wed, 1 Nov 2006 00:36:49 +0000 (00:36 +0000)]
Get External Core (-fext-core) working with readline
Had to add support for dynamic C calls and for foreign labels (Addr#
constants). Actually I only did the printing side -- parsing is not
done yet. But at least now you can build the libraries with -fext-core.
I also got the function arrow to print out properly again (it was
printing fully-qualified and z-coded!)
I also added a field for calling convention name to the External
data constructor in ExternalCore.Exp (for static C calls).
I'm not exactly sure where to document all of this, so I haven't done
that, though I did comment the code a bit.
Ian Lynagh [Tue, 24 Oct 2006 01:10:26 +0000 (01:10 +0000)]
Remove pre-5.04 code
simonpj@microsoft.com [Wed, 1 Nov 2006 16:43:29 +0000 (16:43 +0000)]
Major overhaul of the Simplifier
This big patch completely overhauls the Simplifier. The simplifier
had grown old and crufty, and was hard to understand and maintain.
This new version is still quite complicated, because the simplifier
does a lot, but it's much easier to understand, for me at least.
It does mean that I have touched almost every line of the simplifier,
so the diff is a large one.
Big changes are these
* When simplifying an Expr we generate a simplified Expr plus a
bunch of "floats", which are bindings that have floated out
of the Expr. Before, this float stuff was returned separately,
but not they are embedded in the SimplEnv, which makes the
plumbing much easier and more robust. In particular, the
SimplEnv already meaintains the "in-scope set", and making
that travel with the floats helps to ensure that we always
use the right in-scope set.
This change has a pervasive effect.
* Rather than simplifying the args of a call before trying rules
and inlining, we now defer simplifying the args until both
rules and inlining have failed, so we're going to leave a
call in the result. This avoids the risk of repeatedly
simplifying an argument, which was handled by funny ad-hoc
flags before.
The downside is that we must apply the substitution to the args before
rule-matching; and if thep rule doesn't match that is wasted work.
But having any rules at all is the exception not the rule, and the
substitution is lazy, so we only substitute until a no-match is found.
The code is much more elegant though.
* A SimplCont is now more zipper-like. It used to have an embedded
function, but that was a bit hard to think about, and now it's
nice and consistent. The relevant constructors are StrictArg
and StrictBind
* Each Rule now has an *arity* (gotten by CoreSyn.ruleArity), which
tells how many arguments it matches against. This entailed adding
a field ru_nargs to a BuiltinRule. And that made me look at
PrelRules; I did quite a bit of refactoring in the end, so the
diff in PrelRules looks much biggger than it really is.
* A little refactoring in OccurAnal. The key change is that in
the RHS of x = y `cast` co
we regard 'y' as "many", so that it doesn't get inlined into
the RHS of x. This allows x to be inlined elsewhere. It's
very like the existing situation for
x = Just y
where we treat 'y' as "many".
simonpj@microsoft.com [Thu, 2 Nov 2006 12:31:11 +0000 (12:31 +0000)]
Improve error message from ghc --make when filename and modulename differ
simonpj@microsoft.com [Thu, 2 Nov 2006 12:04:41 +0000 (12:04 +0000)]
Improve handling of unused imports (test is mod75)
simonpj@microsoft.com [Thu, 2 Nov 2006 12:04:02 +0000 (12:04 +0000)]
Remove unused lookupDeprec function
simonpj@microsoft.com [Thu, 2 Nov 2006 12:03:04 +0000 (12:03 +0000)]
Fix handling of non-in-scope exports (fixes test mod7)
simonpj@microsoft.com [Thu, 2 Nov 2006 09:39:54 +0000 (09:39 +0000)]
Comments and layout only
sof@galois.com [Wed, 1 Nov 2006 22:11:08 +0000 (22:11 +0000)]
import Maybes wibble
sof@galois.com [Wed, 1 Nov 2006 22:09:50 +0000 (22:09 +0000)]
add a few #includes to make it compile
simonpj@microsoft.com [Wed, 1 Nov 2006 17:34:39 +0000 (17:34 +0000)]
Trim imports
simonpj@microsoft.com [Wed, 1 Nov 2006 17:33:25 +0000 (17:33 +0000)]
Default the kind of unconstrained meta-type variables before tcSimplifyTop
This patch fixes a long standing bug, Trac #179,
and a recently reported one, Trac #963.
The problem in both cases was an unconstrained type variable 'a', of kind
argTypeKind (printed "??") or openTypeKind ("?"). At top level we now default
the kind of such variables to liftedTypeKind ("*"). This is important because
then instance declarations can match it. The defaulting function is called
TcMType.zonkTopTyVar, and is commented. (Most of the extra lines in the
patch are comments!)
simonpj@microsoft.com [Wed, 1 Nov 2006 17:04:48 +0000 (17:04 +0000)]
Comments and layout only
simonpj@microsoft.com [Wed, 1 Nov 2006 14:34:16 +0000 (14:34 +0000)]
Minor refactoring
simonpj@microsoft.com [Wed, 1 Nov 2006 14:25:50 +0000 (14:25 +0000)]
Remove unused import
simonpj@microsoft.com [Wed, 1 Nov 2006 14:23:43 +0000 (14:23 +0000)]
Comments only
simonpj@microsoft.com [Wed, 1 Nov 2006 14:22:46 +0000 (14:22 +0000)]
Make idInfo fail more informatively on TyVars
simonpj@microsoft.com [Wed, 1 Nov 2006 12:37:27 +0000 (12:37 +0000)]
Improve error message (push to 6.6 branch)
simonpj@microsoft.com [Wed, 1 Nov 2006 12:21:20 +0000 (12:21 +0000)]
Fix error reporting for contexts during deriving (Trac 958)
When doing the fixpoint iteration for 'deriving' we have to be careful
not to end up in a loop, even if we have -fallow-undecidable-instances.
Test is tcfail169
simonpj@microsoft.com [Wed, 1 Nov 2006 11:04:42 +0000 (11:04 +0000)]
Fix a long-standing but obscure bug in worker-wrapper generation
Worker/wrapper generation sometimes has to add a dummy void (State#) argument
to retain laziness. But when generating the strictness signature for the
worker, I forgot to take account of the extra argument, resulting in a
bogus strictness signature.
Result, chaos. Trac 317 shows this up, and this patch fixes it.
simonpj@microsoft.com [Mon, 30 Oct 2006 13:52:04 +0000 (13:52 +0000)]
Move --help, --version etc to 4.4 (modes) because that is what they really are
Simon Marlow [Fri, 27 Oct 2006 15:21:29 +0000 (15:21 +0000)]
remove the *.raw files
Simon Marlow [Fri, 27 Oct 2006 13:36:11 +0000 (13:36 +0000)]
improve the diagnostic generated by memInventory() for a memory leak
Simon Marlow [Fri, 27 Oct 2006 13:34:45 +0000 (13:34 +0000)]
count mut-list bytes, not words
Simon Marlow [Fri, 27 Oct 2006 10:34:39 +0000 (10:34 +0000)]
fix calculation of GC Work for 6.6+
Simon Marlow [Thu, 26 Oct 2006 09:25:36 +0000 (09:25 +0000)]
copyright updates and add Commentary links
Simon Marlow [Thu, 26 Oct 2006 09:18:14 +0000 (09:18 +0000)]
rename spin lock functions, and use macros for non-THREADED_RTS
Simon Marlow [Wed, 25 Oct 2006 11:11:14 +0000 (11:11 +0000)]
Remove PAR/GRAN code from the storage manager
Simon Marlow [Thu, 26 Oct 2006 08:54:18 +0000 (08:54 +0000)]
markRootPtrTable: write out type in full instead of using evac_fn typedef
Fixes stage 2 build with -fvia-C
andy@galois.com [Wed, 25 Oct 2006 20:38:29 +0000 (20:38 +0000)]
an expression with a TickBox round it is not in HNF.
andy@galois.com [Wed, 25 Oct 2006 20:15:14 +0000 (20:15 +0000)]
Adding arrows to the acceptable code for hpc
andy@galois.com [Wed, 25 Oct 2006 20:14:22 +0000 (20:14 +0000)]
fixing type error inside Hpc inc; we had a 32 bit '1'.
andy@galois.com [Wed, 25 Oct 2006 20:13:38 +0000 (20:13 +0000)]
Improving error message in CmmLint
andy@galois.com [Wed, 25 Oct 2006 20:12:29 +0000 (20:12 +0000)]
Changing Main.tix to <prog_name>.tix in the Hpc RTS
Manuel M T Chakravarty [Wed, 25 Oct 2006 16:43:31 +0000 (16:43 +0000)]
Add pointer to coding conventions to HACKING
andy@galois.com [Wed, 25 Oct 2006 07:59:00 +0000 (07:59 +0000)]
6.4 compatiblity
andy@galois.com [Tue, 24 Oct 2006 21:29:07 +0000 (21:29 +0000)]
Haskell Program Coverage
This large checkin is the new ghc version of Haskell
Program Coverage, an expression-level coverage tool for Haskell.
Parts:
- Hpc.[ch] - small runtime support for Hpc; reading/writing *.tix files.
- Coverage.lhs - Annotates the HsSyn with coverage tickboxes.
- New Note's in Core,
- TickBox -- ticked on entry to sub-expression
- BinaryTickBox -- ticked on exit to sub-expression, depending
-- on the boolean result.
- New Stg level TickBox (no BinaryTickBoxes, though)
You can run the coverage tool with -fhpc at compile time.
Main must be compiled with -fhpc.
Simon Marlow [Tue, 24 Oct 2006 13:39:43 +0000 (13:39 +0000)]
fix 5.04 compile
Simon Marlow [Tue, 24 Oct 2006 12:28:00 +0000 (12:28 +0000)]
fix indentation wibble to make it compile with 5.04
wolfgang.thaller@gmx.net [Mon, 23 Oct 2006 20:33:21 +0000 (20:33 +0000)]
Re-enable TABLES_NEXT_TO_CODE for powerpc (was accidentally disabled)
Simon Marlow [Tue, 24 Oct 2006 09:13:57 +0000 (09:13 +0000)]
Split GC.c, and move storage manager into sm/ directory
In preparation for parallel GC, split up the monolithic GC.c file into
smaller parts. Also in this patch (and difficult to separate,
unfortunatley):
- Don't include Stable.h in Rts.h, instead just include it where
necessary.
- consistently use STATIC_INLINE in source files, and INLINE_HEADER
in header files. STATIC_INLINE is now turned off when DEBUG is on,
to make debugging easier.
- The GC no longer takes the get_roots function as an argument.
We weren't making use of this generalisation.
Simon Marlow [Tue, 24 Oct 2006 09:13:23 +0000 (09:13 +0000)]
fix a printf format warning
Simon Marlow [Fri, 20 Oct 2006 10:29:34 +0000 (10:29 +0000)]
add prototypes for exitHashTable()
Simon Marlow [Thu, 19 Oct 2006 14:12:18 +0000 (14:12 +0000)]
remove ^Ms
Simon Marlow [Thu, 19 Oct 2006 13:56:20 +0000 (13:56 +0000)]
add pure spin locks
Simon Marlow [Thu, 19 Oct 2006 10:12:00 +0000 (10:12 +0000)]
comments only: document allocateLocal()
Simon Marlow [Thu, 19 Oct 2006 10:11:29 +0000 (10:11 +0000)]
rename allocated_bytes() to allocatedBytes()
Simon Marlow [Thu, 19 Oct 2006 10:11:02 +0000 (10:11 +0000)]
remove performGCWithRoots()
I don't think this can ever be useful, because to add more roots you
need to do it consistently for every GC. The right way to add roots
is to use newStablePtr.
Ian Lynagh [Tue, 24 Oct 2006 00:35:53 +0000 (00:35 +0000)]
Bump the HEAD to 6.7
Manuel M T Chakravarty [Mon, 23 Oct 2006 18:05:03 +0000 (18:05 +0000)]
Clean up debugging code in RnNames
Simon Marlow [Mon, 23 Oct 2006 14:58:17 +0000 (14:58 +0000)]
wibble in parseStaticFlags
should fix profiling and unreg in HEAD
Manuel M T Chakravarty [Sun, 22 Oct 2006 17:12:12 +0000 (17:12 +0000)]
Improve error messages for indexed types
basvandijk@home.nl [Thu, 19 Oct 2006 15:23:28 +0000 (15:23 +0000)]
A little abstraction
Manuel M T Chakravarty [Sun, 22 Oct 2006 00:49:04 +0000 (00:49 +0000)]
Fix handling of family instances in the presense of this doc stuff
- Not sure whether I do the right thing, because I don't understand the
doc stuff. However, the original code was definitely wrong and
breaking the renaming of family instance declarations.
- The important point is that in
data instance T pats = rhs
T is *not* a defining occurence of T (similarly as C is not a defining
occurence in "instance C Int").
Manuel M T Chakravarty [Sat, 21 Oct 2006 03:58:29 +0000 (03:58 +0000)]
Fix parent position in RnNames.nubAvails
- `RnNames.nubAvails', which amalgamates AvailInfo items that belong to the
same parent, needs to be careful that the parent name occurs first if it is
in the list of subnames at all. (Otherwise, we can get funny export items
in ifaces.)
- I discovered this while debugging family import/exports, but I am pretty
sure the bug would also have shown up without using families under the
right circumstances.
Manuel M T Chakravarty [Sat, 21 Oct 2006 00:28:13 +0000 (00:28 +0000)]
Fix export of associated families with new name parent story
Given
module Exp (T)
where
class C a where
data T a :: *
we need the AvailInfo for the export item to be C|{T}, not just T.
This patch achieves that under the new name parent scheme.
Manuel M T Chakravarty [Fri, 20 Oct 2006 18:04:42 +0000 (18:04 +0000)]
Fix processing of imports involving ATs with the new name parent code
Associated types in import lists require special care and the new name
parent code broke that. What's the problem? in the presence of ATs
the name parent relation can have a depth of two (not just one as in H98).
Here is an example:
class GMapKey a where
data GMap a :: * -> *
instance GMapKey Int where
data GMap Int v = GMapInt ...
The data constructor GMapInt's parent is GMap whose parent in turn is the
class GMapKey; ie, GMapKey is GMapInt's grand parent. In H98, data types
have no parents (which is in some places in the code represented by making
them their own parent).
I fixed this by extending the information in filterImport's occ_env and
taking the case of associated types explicitly in consideration when
processing the various forms of IE items.
Manuel M T Chakravarty [Thu, 19 Oct 2006 18:01:03 +0000 (18:01 +0000)]
Fix family instance bug due to the name parent elimination
- Its important that `isImplicitTyCon' considers
(a) associated families to be implicit, but
(b) considers family instances *not* to be implicit (for the same reasons
that a dfun is not implicit).
Manuel M T Chakravarty [Thu, 19 Oct 2006 16:58:40 +0000 (16:58 +0000)]
Fix show-iface for family instances & add debug ppr for type declarations
Ian Lynagh [Thu, 19 Oct 2006 13:48:18 +0000 (13:48 +0000)]
Run dos2unix on all the outputs, and don't let it eat stderr
Ian Lynagh [Thu, 19 Oct 2006 00:08:07 +0000 (00:08 +0000)]
Fix stage1 build with 6.2.1 (from Andy Gill)
Ian Lynagh [Wed, 18 Oct 2006 23:05:55 +0000 (23:05 +0000)]
Fix the build with GHC 6.2.2
Manuel M T Chakravarty [Wed, 18 Oct 2006 22:13:00 +0000 (22:13 +0000)]
Cross-module consistency check for family instances
basvandijk@home.nl [Wed, 11 Oct 2006 20:43:01 +0000 (20:43 +0000)]
Fixed spelling error in compiler/ghci/InteractiveUI.hs and docs/users_guide/ghci.xml