ghc.git
12 years ago-findexed-types -> -ftype-families
Manuel M T Chakravarty [Mon, 14 May 2007 11:53:34 +0000 (11:53 +0000)] 
-findexed-types -> -ftype-families
. This change tracks our current terminology.  It'll break all programs
  using the old option, sorry.  But this has only been an experimental
  feature in the HEAD so far.

12 years agoremove accidentally-committed change
Simon Marlow [Mon, 14 May 2007 10:55:16 +0000 (10:55 +0000)] 
remove accidentally-committed change

12 years agofix for Vista workaround: "PATH" can be spelt "Path"
Simon Marlow [Mon, 14 May 2007 10:45:09 +0000 (10:45 +0000)] 
fix for Vista workaround: "PATH" can be spelt "Path"

12 years agoRevised signature of tcLookupFamInst and lookupFamInstEnv
Manuel M T Chakravarty [Mon, 14 May 2007 06:52:34 +0000 (06:52 +0000)] 
Revised signature of tcLookupFamInst and lookupFamInstEnv
- This changes the signature of FamInstEnv.lookupFamInstEnv and
  FamInstEnv.lookupFamInstEnvUnify in a manner similar to SPJ's
  previous patch for InstEnv.llokupInstEnv
- tcLookupFamInst now permits the lookup of instances that are more
  general than the type instance requested.

12 years agoRemove non-functional uninstall Makefile target
Ian Lynagh [Sun, 13 May 2007 17:38:18 +0000 (17:38 +0000)] 
Remove non-functional uninstall Makefile target

12 years agoMove the libraries bindist generation code into libraries/Makefile
Ian Lynagh [Sun, 13 May 2007 16:34:51 +0000 (16:34 +0000)] 
Move the libraries bindist generation code into libraries/Makefile
This should mean it works even when some libraries are unbuildable.

12 years agoCabal now uses filepath, so we need a bootstrapping filepath too
Ian Lynagh [Wed, 9 May 2007 14:25:57 +0000 (14:25 +0000)] 
Cabal now uses filepath, so we need a bootstrapping filepath too

12 years agoTweak generation of generated files
Ian Lynagh [Sat, 12 May 2007 12:37:36 +0000 (12:37 +0000)] 
Tweak generation of generated files
Use "chmod a-w" rather than "chmod 444", and allow the command used to
be overridden.

12 years agoCorrect an egregious typo in LiberateCase that emasculated it
simonpj@microsoft.com [Fri, 11 May 2007 15:55:07 +0000 (15:55 +0000)] 
Correct an egregious typo in LiberateCase that emasculated it

Somehow in the patch
  * Record-ise the liberate-case envt, in preparation for new stuff
I managed to make lookupLevelEnv do entirely the wrong thing.

I think it was just a typo.  The result was that LiberateCase essentially
never did anything any more.

Easily fixed though!

12 years agodon't remove c++ files from Windows binary distribution
Simon Marlow [Fri, 11 May 2007 14:53:52 +0000 (14:53 +0000)] 
don't remove c++ files from Windows binary distribution

12 years agoSupport for adding custom commands to an individual breakpoint
Simon Marlow [Fri, 11 May 2007 12:49:29 +0000 (12:49 +0000)] 
Support for adding custom commands to an individual breakpoint

  :set stop N <cmd>

runs <cmd> when breakpoint N is hit.  Note that the command to run
might be a macro (defined with :def), and the macro can invoke
:continue, so it is now possible to do clever things like conditional
breakpoints, or ignoring the next K hits of a breakpoint.

12 years agoFixed copy-and-paste error in the machOps of compiler/cmm/CmmParse.y
Michael D. Adams [Fri, 11 May 2007 13:25:57 +0000 (13:25 +0000)] 
Fixed copy-and-paste error in the machOps of compiler/cmm/CmmParse.y

12 years agoRemoved UNBOX_FIELD from HsVersions.h since it is not used anywhere.
Michael D. Adams [Fri, 11 May 2007 10:53:22 +0000 (10:53 +0000)] 
Removed UNBOX_FIELD from HsVersions.h since it is not used anywhere.

12 years agoFixed a minor redundancy in the C-- lexer
Michael D. Adams [Thu, 10 May 2007 15:14:54 +0000 (15:14 +0000)] 
Fixed a minor redundancy in the C-- lexer

12 years agoFixed the C-- lexer to comply with the standard on hex escape sequences.
Michael D. Adams [Thu, 10 May 2007 15:03:50 +0000 (15:03 +0000)] 
Fixed the C-- lexer to comply with the standard on hex escape sequences.
The C-- standard [1] says in Section 3.3.5 "Character literals" that:
 - the hex escape sequence "must contain at least one and
   at most two hexdigits."
 - the octal escape sequence "must contain at least one and
   at most three octdigits."

[1] Norman Ramsey, Simon Peyton Jones, and Christian Lindig.
    "The C-- Language Specication, Version 2.0 ( CVS Revision 1.128 )"
    <http://www.cminusminus.org/extern/man2.pdf>

12 years agoDocumented the Unicode tricks that are being played in the lexers
Michael D. Adams [Thu, 10 May 2007 14:59:35 +0000 (14:59 +0000)] 
Documented the Unicode tricks that are being played in the lexers

12 years agoFixed apparent typo in STRICT1(f) of HsVersions.h
Michael D. Adams [Fri, 4 May 2007 14:23:25 +0000 (14:23 +0000)] 
Fixed apparent typo in STRICT1(f) of HsVersions.h

12 years agoRemove the distinction between data and newtype families
Manuel M T Chakravarty [Fri, 11 May 2007 11:30:57 +0000 (11:30 +0000)] 
Remove the distinction between data and newtype families
- This patch removes "newtype family" declarations.
- "newtype instance" declarations can now be instances of data families
- This also fixes bug #1331

  ** This patch changes the interface format.  All libraries and all of **
  ** Stage 2 & 3 need to be re-compiled from scratch.                   **

12 years agoFIX BUILD: revert accidentally-committed patch
Simon Marlow [Fri, 11 May 2007 07:29:44 +0000 (07:29 +0000)] 
FIX BUILD: revert accidentally-committed patch

12 years agoStore a SrcSpan instead of a SrcLoc inside a Name
Simon Marlow [Fri, 11 May 2007 10:49:26 +0000 (10:49 +0000)] 
Store a SrcSpan instead of a SrcLoc inside a Name
This has been a long-standing ToDo.

12 years agoimprove :abandon, it wasn't properly terminating the computation (see comments)
Simon Marlow [Fri, 11 May 2007 09:07:19 +0000 (09:07 +0000)] 
improve :abandon, it wasn't properly terminating the computation (see comments)

12 years agorefactoring only
Simon Marlow [Fri, 11 May 2007 07:55:05 +0000 (07:55 +0000)] 
refactoring only

12 years agoAdd a warning flag for when the Prelude is implicitly imported (trac #1317)
Isaac Dupree [Fri, 11 May 2007 08:45:25 +0000 (08:45 +0000)] 
Add a warning flag for when the Prelude is implicitly imported (trac #1317)
GHC already determines all the implicit (Prelude) imports,
so we just need to check whether there are any of those,
for each module being compiled.

12 years agoComments only
simonpj@microsoft.com [Fri, 11 May 2007 08:40:17 +0000 (08:40 +0000)] 
Comments only

12 years agoFIX #1181: parseStaticFlags should not be required
Simon Marlow [Thu, 10 May 2007 15:45:42 +0000 (15:45 +0000)] 
FIX #1181: parseStaticFlags should not be required

- parseStaticFlags is now not required, but if it is called, it should
  be called only once and before newSession, otherwise you get an
  error.
- parseStaticFlags is exported from GHC

12 years agoFIX: loading the ghc package under GHCi
Simon Marlow [Thu, 10 May 2007 14:42:29 +0000 (14:42 +0000)] 
FIX: loading the ghc package under GHCi

12 years agoremove now-unused usage information (#1003)
Simon Marlow [Thu, 10 May 2007 13:50:07 +0000 (13:50 +0000)] 
remove now-unused usage information (#1003)

12 years agoFIX #1321: problems with accessing the interpreter's Handles
Simon Marlow [Thu, 10 May 2007 13:37:21 +0000 (13:37 +0000)] 
FIX #1321: problems with accessing the interpreter's Handles

I've had to redo the way we turn off buffering and flush the
stdin/stdout/stderr Handles in the dynamically-loaded base package.
Compiling the expression "hSetBuffering stdout NoBuffering" and then
re-using the compiled expression didn't work sometimes (see comments
for details).  Now, I'm explicitly looking up the address the stdout
closure and re-using that.  It should be more robust, if somewhat
unclean.

12 years agoWarning fix for unused and redundant imports
Michael D. Adams [Thu, 10 May 2007 09:31:35 +0000 (09:31 +0000)] 
Warning fix for unused and redundant imports

12 years agoFix cloning bugs in SpecConstr
simonpj@microsoft.com [Thu, 10 May 2007 09:31:13 +0000 (09:31 +0000)] 
Fix cloning bugs in SpecConstr

These bugs produced a core-lint error when compiling
GHC.PArr with -O2.  Roman found and fixed them; this
patch also includes some type synonyms to make things a
bit clearer.

12 years agoDead code elimination
simonpj@microsoft.com [Thu, 10 May 2007 09:30:01 +0000 (09:30 +0000)] 
Dead code elimination

12 years agoimprove comments about x86-64 relative-offset hackery
Simon Marlow [Thu, 10 May 2007 09:31:35 +0000 (09:31 +0000)] 
improve comments about x86-64 relative-offset hackery

12 years agoFIX #1343: regex bug in the x86_64 mangler settings
Simon Marlow [Thu, 10 May 2007 09:20:19 +0000 (09:20 +0000)] 
FIX #1343: regex bug in the x86_64 mangler settings

12 years agoFIX BUILD: remove accidentally committed hunk
Simon Marlow [Thu, 10 May 2007 08:15:54 +0000 (08:15 +0000)] 
FIX BUILD: remove accidentally committed hunk

12 years agoFIX BUILD with GHC 6.2.x: VectInfo -> HscTypes.VectInfo
Simon Marlow [Thu, 10 May 2007 07:55:06 +0000 (07:55 +0000)] 
FIX BUILD with GHC 6.2.x: VectInfo -> HscTypes.VectInfo

12 years agoTwo more small bugs in abstractFloats
simonpj@microsoft.com [Wed, 9 May 2007 15:44:47 +0000 (15:44 +0000)] 
Two more small bugs in abstractFloats

12 years agoRemove ghc_ge_504 (it's required to be true now anyway)
Ian Lynagh [Wed, 9 May 2007 15:05:08 +0000 (15:05 +0000)] 
Remove ghc_ge_504 (it's required to be true now anyway)

12 years agofix confusion with return value of runStmt
Simon Marlow [Wed, 9 May 2007 13:25:10 +0000 (13:25 +0000)] 
fix confusion with return value of runStmt

12 years agoeliminate a crash when trying to use :break on a compiled module (test: break007)
Simon Marlow [Wed, 9 May 2007 13:24:24 +0000 (13:24 +0000)] 
eliminate a crash when trying to use :break on a compiled module (test: break007)

12 years agoStore the constructor name in the info table in UTF-8
Simon Marlow [Wed, 9 May 2007 10:38:34 +0000 (10:38 +0000)] 
Store the constructor name in the info table in UTF-8

12 years agoFIX: Linker.getHValue should be linking in any dependencies it requires
Simon Marlow [Wed, 9 May 2007 10:37:12 +0000 (10:37 +0000)] 
FIX: Linker.getHValue should be linking in any dependencies it requires
Otherwise :print only works for local identifiers, not global ones.
In fact it was silently failing, so I fixed that too.

12 years agoFix a missing prime spotted by -fwarn-unused-binds
Simon Marlow [Wed, 9 May 2007 10:34:35 +0000 (10:34 +0000)] 
Fix a missing prime spotted by -fwarn-unused-binds

12 years agoTidy up the interface to lookupInstEnv
simonpj@microsoft.com [Wed, 9 May 2007 11:25:30 +0000 (11:25 +0000)] 
Tidy up the interface to lookupInstEnv

This patch changes the interface to lookupInstEnv, so that it
returns a pair (Instance, [Either TyVar Type])
rather than    (Inst,     TvSubst)

There is no functionality change, but the interface is tidier,
and closer to lookupFamInstEnv (when Manuel has changed that too).
The [Either TyVar Type] gives the type(s) at which the dfun should
be instantiated.  We need an Either because it might be instantiated
freely: see Note [InstTypes: instantiating types] in InstEnv.

(This might be a pattern we want to use elsewhere too.)

12 years agoFix a bug in (the new function) SimplUtils.abstractFloats
simonpj@microsoft.com [Wed, 9 May 2007 11:19:19 +0000 (11:19 +0000)] 
Fix a bug in (the new function) SimplUtils.abstractFloats

12 years agoImprove full laziness by floating allocations out of value lambdas
simonpj@microsoft.com [Wed, 9 May 2007 11:18:12 +0000 (11:18 +0000)] 
Improve full laziness by floating allocations out of value lambdas

This patch simplifies the code slightly, and simultaneously improves
full laziness by floating allocations (lambdas, constructor apps) out
of loops.

See Note [Escaping a value lambda] in SetLevels, which explains.

There's a test that shows it up: simplrun009

This relevant to SpecConstr, because a call looks like
f lvl
instead of
f (\x. blah)
and the latter is easier to match in a robust way.

12 years agoFixed a badly defined pattern match
Pepe Iborra [Wed, 9 May 2007 10:18:54 +0000 (10:18 +0000)] 
Fixed a badly defined pattern match

12 years agoAllow you to say :unset -f<flag> (see #1328)
Simon Marlow [Tue, 8 May 2007 14:10:05 +0000 (14:10 +0000)] 
Allow you to say :unset -f<flag> (see #1328)

12 years agooverhaul :help, group the debugging commands together
Simon Marlow [Tue, 8 May 2007 13:57:25 +0000 (13:57 +0000)] 
overhaul :help, group the debugging commands together

12 years agolet you :show things that you can :set (e.g. args, prog etc.)
Simon Marlow [Tue, 8 May 2007 13:57:07 +0000 (13:57 +0000)] 
let you :show things that you can :set (e.g. args, prog etc.)

12 years agoimprovements to :history
Simon Marlow [Tue, 8 May 2007 13:33:14 +0000 (13:33 +0000)] 
improvements to :history
:hist <n> displays at most the last <n> steps (default 20).

12 years agoFIX BUILD (non-profiling RTS was broken in previous patch)
Simon Marlow [Tue, 8 May 2007 13:20:49 +0000 (13:20 +0000)] 
FIX BUILD (non-profiling RTS was broken in previous patch)

12 years agoFIX parsing of Haddock comments (broken by me in the previous patch)
Simon Marlow [Tue, 8 May 2007 12:55:30 +0000 (12:55 +0000)] 
FIX parsing of Haddock comments (broken by me in the previous patch)

12 years agoFIX: #1227 (biographical profiling broken)
Simon Marlow [Tue, 8 May 2007 10:45:51 +0000 (10:45 +0000)] 
FIX: #1227 (biographical profiling broken)
We were freeing the hash table storage with exitHashTable() before
calling endProfiling(), which uses hash tables.

12 years agoFIX crash on exit with biographical profiling
Simon Marlow [Tue, 8 May 2007 10:09:08 +0000 (10:09 +0000)] 
FIX crash on exit with biographical profiling
Seems to be a bug introduced by code to free the memory allocated by
the heap profiler.

12 years agoFIX profiling :-(
Simon Marlow [Tue, 8 May 2007 10:01:34 +0000 (10:01 +0000)] 
FIX profiling :-(

12 years agoImproved VectInfo
Manuel M T Chakravarty [Tue, 8 May 2007 08:06:09 +0000 (08:06 +0000)] 
Improved VectInfo
- We need to keep pairs of (f, f_CC) in VectInfo as it is difficult
  to obtain Names from OccNames (of imported modules) in Core passes.
- There is a choice of keeping Names or Vars in VectInfo.  We go with Vars
  for now; mainly to avoid converting between Names and Vars repeatedly for
  the same VectInfo in other than one-shot mode.

  Again goes to the HEAD straight away to avoid conflicts down the road.

12 years agoOccNames for closure conversion
Roman Leshchinskiy [Tue, 1 May 2007 04:14:04 +0000 (04:14 +0000)] 
OccNames for closure conversion

12 years agoadd defaultObjectTarget to the GHC API
Simon Marlow [Mon, 7 May 2007 13:42:35 +0000 (13:42 +0000)] 
add defaultObjectTarget to the GHC API
We had no way of getting the right value of HscTarget to use to
request object files as output.

12 years agoMake let-floating work even if there are big lambdas in the way
simonpj@microsoft.com [Mon, 7 May 2007 16:24:22 +0000 (16:24 +0000)] 
Make let-floating work even if there are big lambdas in the way

This patch generalises the let-floating transformation in a way
suggested by Roman and Manuel when doing closure conversion.

There are extensive comments in Note [Floating and type abstraction],
which begins thus.  Consider this:
x = /\a. C e1 e2
We'd like to float this to
y1 = /\a. e1
y2 = /\a. e2
x = /\a. C (y1 a) (y2 a)
for the usual reasons: we want to inline x rather vigorously.

(Further commennts follow in SimplUtils.)

The implementation is not hard; indeed it used to be in GHC years ago.
I removed it thinking that full laziness would achieve the same
effect, but I'm not sure it does; and in any case it seems more direct
to do it here.

The transformation should not make anything worse, so yell if
you see anything unexpected happening.

12 years agoFix comments on HsWrapper type
simonpj@microsoft.com [Mon, 7 May 2007 16:16:53 +0000 (16:16 +0000)] 
Fix comments on HsWrapper type

12 years agoDocument -fspec-threshold
simonpj@microsoft.com [Mon, 7 May 2007 16:00:32 +0000 (16:00 +0000)] 
Document -fspec-threshold

This size-threshold flag is for both liberate-case and SpecConstr.

Replaces -flibereate-case-threshold.

12 years agoFIX Trac #1332: make isStringTy work right
simonpj@microsoft.com [Mon, 7 May 2007 10:41:37 +0000 (10:41 +0000)] 
FIX Trac #1332: make isStringTy work right

For some ancient reason, TcType.isStringTy was treating newtypes as
transparent, which is quite consistent with isIntTy, isBoolTy etc.
(I think the reason is that isStringTy was written to go with isFFIDotNetTy,
which deals in representation types.)

Anyway, this inconsistency is Utterly Wrong when called from
Inst.shortCutStringLit, and that made tc224 fail.  I can't think how
it ever succeeded.  Maybe it never did!

Anyway this fixes it. It may be that .NET FFI calls are not quite as
permissive, but they are almost certainly broken in more serious ways,
so I'm going to jump that bridge if we come to it.

12 years agoFIX print020: conversion of case expressions of type 'Any' was wrong
Simon Marlow [Mon, 7 May 2007 14:53:50 +0000 (14:53 +0000)] 
FIX print020: conversion of case expressions of type 'Any' was wrong
All primitive types were getting PrimAlts, where actually case
expressions on 'Any' should get a PolyAlt.  The result was that seq on
Any compiled into a no-op, which caused :force to go into an infinite
loop.

12 years agoFIX: #1253 (Can't use non-layout at top level)
Simon Marlow [Mon, 7 May 2007 13:25:14 +0000 (13:25 +0000)] 
FIX: #1253 (Can't use non-layout at top level)

12 years agoproperly fix leakage of Haddock comment syntax (see #1091, test: read044)
Simon Marlow [Mon, 7 May 2007 11:37:01 +0000 (11:37 +0000)] 
properly fix leakage of Haddock comment syntax (see #1091, test: read044)

12 years agoAdd VectInfo to HPT
Manuel M T Chakravarty [Mon, 7 May 2007 11:03:36 +0000 (11:03 +0000)] 
Add VectInfo to HPT

  I am putting this patch (as the previous VectInfo patch) straight away
  into the head to avoid the kind of merging disaster we had with the FC
  branch.  The patch does not interfere with any other functionality and
  hence should cause no harm in the head.

12 years agoFIX #1155: ghci -debug generates slightly odd message
Simon Marlow [Mon, 7 May 2007 10:24:18 +0000 (10:24 +0000)] 
FIX #1155: ghci -debug generates slightly odd message

12 years agoFIX Trac #1329: spelling error
simonpj@microsoft.com [Mon, 7 May 2007 08:42:47 +0000 (08:42 +0000)] 
FIX Trac #1329: spelling error

12 years agoBuild arrows library if available 2007-05-06
Alec Berryman [Mon, 30 Apr 2007 18:56:10 +0000 (18:56 +0000)] 
Build arrows library if available

arrows is the only library in libraries/extra-packages not built when present

12 years agofix exit code of ghci -e "return ()"
Bertram Felgenhauer [Thu, 3 May 2007 21:25:14 +0000 (21:25 +0000)] 
fix exit code of ghci -e "return ()"
This should result in successful program termination. Not doing this
breaks checking the exit code of  runghc Setup.lhs build  for example.

12 years agoExtend hptInstances to also cover family instances
Manuel M T Chakravarty [Sun, 6 May 2007 07:59:59 +0000 (07:59 +0000)] 
Extend hptInstances to also cover family instances

12 years agoIfaceVectInfo and propagation through EPS
Manuel M T Chakravarty [Fri, 4 May 2007 07:37:34 +0000 (07:37 +0000)] 
IfaceVectInfo and propagation through EPS

12 years agoAdded VectInfo to ModGuts
Manuel M T Chakravarty [Fri, 4 May 2007 06:39:40 +0000 (06:39 +0000)] 
Added VectInfo to ModGuts

12 years agoHandle ParStmt in collectStmtBinders; fixes tcrun013(ghci) failure
Ian Lynagh [Sat, 5 May 2007 17:09:34 +0000 (17:09 +0000)] 
Handle ParStmt in collectStmtBinders; fixes tcrun013(ghci) failure

12 years agoDon't print parens around list comprehensions
Ian Lynagh [Sat, 5 May 2007 15:00:39 +0000 (15:00 +0000)] 
Don't print parens around list comprehensions

12 years agoTweak ... generation
Ian Lynagh [Sat, 5 May 2007 14:41:31 +0000 (14:41 +0000)] 
Tweak ... generation
Avoid:
    let x ...
i.e. always put the = in:
    let x = ...

12 years agoTweak the ... generation
Ian Lynagh [Sat, 5 May 2007 14:29:51 +0000 (14:29 +0000)] 
Tweak the ... generation

12 years agoPanic properly if wrongKindOfFamily is given an unexpected family
Ian Lynagh [Fri, 4 May 2007 22:18:57 +0000 (22:18 +0000)] 
Panic properly if wrongKindOfFamily is given an unexpected family
Used to just give a "Non-exhaustive patterns" failure

12 years agoThe libraries/* directories themselves are boring, as well as their contents
Ian Lynagh [Fri, 4 May 2007 14:59:30 +0000 (14:59 +0000)] 
The libraries/* directories themselves are boring, as well as their contents

12 years agolibraries/filepath/ is boring
Ian Lynagh [Fri, 4 May 2007 14:57:56 +0000 (14:57 +0000)] 
libraries/filepath/ is boring

12 years agoWarning police
simonpj@microsoft.com [Fri, 4 May 2007 12:24:19 +0000 (12:24 +0000)] 
Warning police

12 years agoMake -frewrite-rules into a dynamic flag; off for -O0
simonpj@microsoft.com [Fri, 4 May 2007 12:24:05 +0000 (12:24 +0000)] 
Make -frewrite-rules into a dynamic flag; off for -O0

Argubly rewrite rules should not fire with -O0, and it turns
out that when compiling GHC.Base with -O0 we get a crash if
the rewrite rules do fire (see Note [Scoping for Builtin rules]
in PrelRules).

So unless someone yells, rewrite rules are off with -O0.

The new (now dynamic) flag is
    -frewrite rules (with -fno-rewrite-rules to disable)

The old (static) flag -frules-off is gone.

12 years agoImprove printing of "..." in HsExpr; fixes a stupidity in my earlier change
simonpj@microsoft.com [Fri, 4 May 2007 11:34:54 +0000 (11:34 +0000)] 
Improve printing of "..." in HsExpr; fixes a stupidity in my earlier change

12 years agoFix the pruning of dead case alternatives
simonpj@microsoft.com [Fri, 4 May 2007 11:06:50 +0000 (11:06 +0000)] 
Fix the pruning of dead case alternatives

This fixes Trac #1251; test case is gadt/CasePrune

GHC was being over-eager about pruning dead alternatives from case
expressions, and that led to a crash because the case expression
ended up with no alternatives at all!

See the long comments Note [Pruning dead case alternatives] in Unify.

12 years agoWarning police
simonpj@microsoft.com [Fri, 4 May 2007 11:03:41 +0000 (11:03 +0000)] 
Warning police

12 years agoisDataTyCon should be False for all type families, even data type families
simonpj@microsoft.com [Fri, 4 May 2007 11:03:01 +0000 (11:03 +0000)] 
isDataTyCon should be False for all type families, even data type families

isDataTyCon advertises that it's true of "data types that are
definitely represented by heap-allocated constructors.  These are
srcutinised by Core-level @case@ expressions, and they get info tables
allocated for them."

Type-family TyCons never have this property, not even data type families.
It's the *instance* TyCons that do.

I hope that this change does not break anything that somehow relied
on the old (wrong) semantics.

12 years agoFix dependency information for RULES
simonpj@microsoft.com [Thu, 3 May 2007 12:47:59 +0000 (12:47 +0000)] 
Fix dependency information for RULES

A SpecInfo (inside IdInfo) keeps track of the free variables of a RULE
so that the occurrency analyser knows about its dependencies.

Previously it was only tracking the *rhs* free vars, but it should
really include the *lhs* ones too.  See Note [Rule dependency info]
in IdInfo.

This fixes a WARNING when compiling some libraries.

12 years agoLess voluminous debug
simonpj@microsoft.com [Thu, 3 May 2007 12:47:15 +0000 (12:47 +0000)] 
Less voluminous debug

12 years agoRemove "__" prefix for forall when printing a RULE
simonpj@microsoft.com [Thu, 3 May 2007 12:46:06 +0000 (12:46 +0000)] 
Remove "__" prefix for forall when printing a RULE

12 years agoAdd the -ddump-mod-cycles flag to the user manual
simonpj@microsoft.com [Thu, 3 May 2007 12:45:18 +0000 (12:45 +0000)] 
Add the -ddump-mod-cycles flag to the user manual

12 years agoFix truncate on amd64 NCG; fixes arith005.
Ian Lynagh [Thu, 3 May 2007 22:38:33 +0000 (22:38 +0000)] 
Fix truncate on amd64 NCG; fixes arith005.
cvts[sd]2siq? ->
cvtts[sd]2siq?

12 years agoAdd missing libraries/Makefile dependencies on ifBuildable/ifBuildable
Ian Lynagh [Thu, 3 May 2007 14:07:32 +0000 (14:07 +0000)] 
Add missing libraries/Makefile dependencies on ifBuildable/ifBuildable

12 years agoUse a primop for getting the fields of the AP_STACK rather than an FFI call
Simon Marlow [Thu, 3 May 2007 15:19:41 +0000 (15:19 +0000)] 
Use a primop for getting the fields of the AP_STACK rather than an FFI call
This means we can avoid some StablePtrs, and also catch cases where
the AP_STACK has been evaluated (this can happen with :history, see
the hist001 test).

12 years agoimprove the :list command
Simon Marlow [Thu, 3 May 2007 15:06:12 +0000 (15:06 +0000)] 
improve the :list command
Now you can list source code in various ways:
  :list <line>
  :list <module> <line>
  :list <function>

12 years agoAdd a little documentation to the libraries/Makefile
Ian Lynagh [Thu, 3 May 2007 13:36:54 +0000 (13:36 +0000)] 
Add a little documentation to the libraries/Makefile

12 years agoOnly touch the configure stamp if configure succeeds
Ian Lynagh [Thu, 3 May 2007 12:39:13 +0000 (12:39 +0000)] 
Only touch the configure stamp if configure succeeds
We don't touch $@ if configure failed as we would prefer to try
configuring it next time round, rather than assuming it'll still fail.
This is particularly important for corelibs, where failure means the
build dies!

12 years agoAdd history/trace functionality to the GHCi debugger
Simon Marlow [Thu, 3 May 2007 13:19:55 +0000 (13:19 +0000)] 
Add history/trace functionality to the GHCi debugger

The debugger can now log each step of the evaluation without actually
stopping, keeping a history of the recent steps (currently 50).  When
a (real) breakpoint is hit, you can examine previous steps in the
history (and their free variables) using the :history, :back and
:forward commands.

12 years agouse extendInteractiveContext instead of custom code
Simon Marlow [Thu, 3 May 2007 13:15:25 +0000 (13:15 +0000)] 
use extendInteractiveContext instead of custom code

12 years agocancel out some reverses by changing the order of ic_tmp_ids
Simon Marlow [Thu, 3 May 2007 12:52:24 +0000 (12:52 +0000)] 
cancel out some reverses by changing the order of ic_tmp_ids

12 years agouse the reader part of the monad for the inScope set
Simon Marlow [Thu, 3 May 2007 12:50:06 +0000 (12:50 +0000)] 
use the reader part of the monad for the inScope set