13 years agoFIX BUILD with ghc-6.2.x
Simon Marlow [Wed, 16 May 2007 08:07:49 +0000 (08:07 +0000)]
FIX BUILD with ghc-6.2.x

13 years agoAdd a missing backslash that was breaking building bindists
Ian Lynagh [Tue, 15 May 2007 13:47:34 +0000 (13:47 +0000)]
Add a missing backslash that was breaking building bindists

13 years agoGHCi debugger: new flag -fbreak-on-exception
Simon Marlow [Tue, 15 May 2007 12:45:54 +0000 (12:45 +0000)]
GHCi debugger: new flag -fbreak-on-exception

When -fbreak-on-exception is set, an exception will cause GHCi to
suspend the current computation and return to the prompt, where the
history of the current evaluation can be inspected (if we are in
:trace).  This isn't on by default, because the behaviour could be
confusing: for example, ^C will cause a breakpoint.  It can be very
useful for finding the cause of a "head []" or a "fromJust Nothing",

13 years agosmall performance improvement: unbox some fields
Simon Marlow [Tue, 15 May 2007 09:11:09 +0000 (09:11 +0000)]
small performance improvement: unbox some fields

13 years agoresult_id should be a GlobalId
Simon Marlow [Mon, 14 May 2007 15:30:40 +0000 (15:30 +0000)]
result_id should be a GlobalId

13 years agoFix invalid simplification I made while moving the libraries bindist stuff
Ian Lynagh [Tue, 15 May 2007 12:25:45 +0000 (12:25 +0000)]
Fix invalid simplification I made while moving the libraries bindist stuff

13 years agoIface representation of synonym family instances
Manuel M T Chakravarty [Tue, 15 May 2007 08:14:21 +0000 (08:14 +0000)]
Iface representation of synonym family instances

  ** This patch changes the interface file format.  All libraries etc **
  ** need to be compiled from scratch.                                **

13 years agoAdded -ftype-families to the user's manual
Manuel M T Chakravarty [Tue, 15 May 2007 01:20:36 +0000 (01:20 +0000)]
Added -ftype-families to the user's manual
- This adds the option to the flag reference and puts a stub pointing to the
  Haskell wiki page about type families into the section about type extensions.
- Once, the implementation has stabilised, the material from the wiki page
  will be integreated into the user's manual.

13 years agoAdd filepath modules to compat/
Ian Lynagh [Mon, 14 May 2007 17:28:59 +0000 (17:28 +0000)]
Add filepath modules to compat/

13 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.

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

13 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"

13 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.

13 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

13 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.

13 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

13 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.

13 years agoCorrect an egregious typo in LiberateCase that emasculated it [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!

13 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

13 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.

13 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

13 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.

13 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

13 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 )"

13 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

13 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

13 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.                   **

13 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

13 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.

13 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)

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

13 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.

13 years agoComments only [Fri, 11 May 2007 08:40:17 +0000 (08:40 +0000)]
Comments only

13 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
- parseStaticFlags is exported from GHC

13 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

13 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)

13 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

13 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

13 years agoFix cloning bugs in SpecConstr [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.

13 years agoDead code elimination [Thu, 10 May 2007 09:30:01 +0000 (09:30 +0000)]
Dead code elimination

13 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

13 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

13 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

13 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

13 years agoTwo more small bugs in abstractFloats [Wed, 9 May 2007 15:44:47 +0000 (15:44 +0000)]
Two more small bugs in abstractFloats

13 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)

13 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

13 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)

13 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

13 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.

13 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

13 years agoTidy up the interface to lookupInstEnv [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.)

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

13 years agoImprove full laziness by floating allocations out of value lambdas [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.

13 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

13 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)

13 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

13 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.)

13 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).

13 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)

13 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)

13 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.

13 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.

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

13 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.

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

13 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.

13 years agoMake let-floating work even if there are big lambdas in the way [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.

13 years agoFix comments on HsWrapper type [Mon, 7 May 2007 16:16:53 +0000 (16:16 +0000)]
Fix comments on HsWrapper type

13 years agoDocument -fspec-threshold [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.

13 years agoFIX Trac #1332: make isStringTy work right [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.

13 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

13 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)

13 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)

13 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.

13 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

13 years agoFIX Trac #1329: spelling error [Mon, 7 May 2007 08:42:47 +0000 (08:42 +0000)]
FIX Trac #1329: spelling error

13 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

13 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.

13 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

13 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

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

13 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

13 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

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

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

13 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

13 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

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

13 years agoWarning police [Fri, 4 May 2007 12:24:19 +0000 (12:24 +0000)]
Warning police

13 years agoMake -frewrite-rules into a dynamic flag; off for -O0 [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.

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

13 years agoFix the pruning of dead case alternatives [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.

13 years agoWarning police [Fri, 4 May 2007 11:03:41 +0000 (11:03 +0000)]
Warning police

13 years agoisDataTyCon should be False for all type families, even data type families [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.

13 years agoFix dependency information for RULES [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.

13 years agoLess voluminous debug [Thu, 3 May 2007 12:47:15 +0000 (12:47 +0000)]
Less voluminous debug

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

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

13 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? ->