ghc-hetmet.git
17 years agoInterface file optimisation and removal of nameParent
Simon Marlow [Wed, 11 Oct 2006 12:05:18 +0000 (12:05 +0000)]
Interface file optimisation and removal of nameParent

This large commit combines several interrelated changes:

  - IfaceSyn now contains actual Names rather than the special
    IfaceExtName type.  The binary interface file contains
    a symbol table of Names, where each entry is a (package,
    ModuleName, OccName) triple.  Names in the IfaceSyn point
    to entries in the symbol table.

    This reduces the size of interface files, which should
    hopefully improve performance (not measured yet).

    The toIfaceXXX functions now do not need to pass around
    a function from Name -> IfaceExtName, which makes that
    code simpler.

  - Names now do not point directly to their parents, and the
    nameParent operation has gone away.  It turned out to be hard to
    keep this information consistent in practice, and the parent info
    was only valid in some Names.  Instead we made the following
    changes:

    * ImportAvails contains a new field
          imp_parent :: NameEnv AvailInfo
      which gives the family info for any Name in scope, and
      is used by the renamer when renaming export lists, amongst
      other things.  This info is thrown away after renaming.

    * The mi_ver_fn field of ModIface now maps to
      (OccName,Version) instead of just Version, where the
      OccName is the parent name.  This mapping is used when
      constructing the usage info for dependent modules.
      There may be entries in mi_ver_fn for things that are not in
      scope, whereas imp_parent only deals with in-scope things.

    * The md_exports field of ModDetails now contains
      [AvailInfo] rather than NameSet.  This gives us
      family info for the exported names of a module.

Also:

   - ifaceDeclSubBinders moved to IfaceSyn (seems like the
     right place for it).

   - heavily refactored renaming of import/export lists.

   - Unfortunately external core is now broken, as it relied on
     IfaceSyn.  It requires some attention.

17 years agoadd extendNameEnvList_C
Simon Marlow [Tue, 10 Oct 2006 15:31:37 +0000 (15:31 +0000)]
add extendNameEnvList_C

17 years agogetMainDeclBinder should return Nothing for a binding with no variables
Simon Marlow [Tue, 10 Oct 2006 15:30:23 +0000 (15:30 +0000)]
getMainDeclBinder should return Nothing for a binding with no variables
See test rn003

17 years agoUse ":Co", not "Co" to prefix coercion TyCon names
Simon Marlow [Tue, 10 Oct 2006 13:44:49 +0000 (13:44 +0000)]
Use ":Co", not "Co" to prefix coercion TyCon names
Avoid possibility of name clash

17 years agoFix another hi-boot file
Ian Lynagh [Tue, 10 Oct 2006 23:51:57 +0000 (23:51 +0000)]
Fix another hi-boot file

17 years agoRemoved unused unwrapFamInstBody from MkId
Manuel M T Chakravarty [Tue, 10 Oct 2006 20:58:43 +0000 (20:58 +0000)]
Removed unused unwrapFamInstBody from MkId

17 years agoRejig the auto-scc wrapping stuff
simonpj@microsoft.com [Tue, 10 Oct 2006 16:41:16 +0000 (16:41 +0000)]
Rejig the auto-scc wrapping stuff

17 years agoDo not filter the type envt after each GHCi stmt
simonpj@microsoft.com [Tue, 10 Oct 2006 14:32:25 +0000 (14:32 +0000)]
Do not filter the type envt after each GHCi stmt

Fixes Trac #925

A new comment in TcRnDriver in tcRnStmt reads thus:

At one stage I removed any shadowed bindings from the type_env;
they are inaccessible but might, I suppose, cause a space leak if we leave them there.
However, with Template Haskell they aren't necessarily inaccessible.  Consider this
GHCi session
 Prelude> let f n = n * 2 :: Int
 Prelude> fName <- runQ [| f |]
 Prelude> $(return $ AppE fName (LitE (IntegerL 7)))
 14
 Prelude> let f n = n * 3 :: Int
 Prelude> $(return $ AppE fName (LitE (IntegerL 7)))
In the last line we use 'fName', which resolves to the *first* 'f'
in scope. If we delete it from the type env, GHCi crashes because
it doesn't expect that.

17 years agoFail more informatively when a global isn't in the type environment
simonpj@microsoft.com [Tue, 10 Oct 2006 14:31:45 +0000 (14:31 +0000)]
Fail more informatively when a global isn't in the type environment

17 years agoRough matches for family instances
Manuel M T Chakravarty [Tue, 10 Oct 2006 04:46:56 +0000 (04:46 +0000)]
Rough matches for family instances
- Class and type family instances just got a lot more similar.
- FamInst, like Instance, now has a rough match signature.  The idea is the
  same: if the rough match doesn't match, there is no need to pull in the while
  tycon describing the instance (from a lazily read iface).
- IfaceFamInst changes in a similar way and the list of all IFaceFamInsts is
  now written into the binary iface (as for class instances), as deriving it
  from the tycon (as before) would render the whole rough matching useless.
- As a result of this, the plumbing of class instances and type instances
  through the various environments, ModIface, ModGuts, and ModDetails is now
  almost the same.  (The remaining difference are mostly because the dfun of a
  class instance is an Id, but type instance refer to a TyCon, not an Id.)

*** WARNING: The interface file format changed! ***
***      Rebuild from scratch. ***

17 years agoTweaks and missing case in disassembler
Ian Lynagh [Mon, 9 Oct 2006 23:05:39 +0000 (23:05 +0000)]
Tweaks and missing case in disassembler

17 years agoUpdate hi-boot files to fix building with old GHCs
Ian Lynagh [Mon, 9 Oct 2006 19:32:18 +0000 (19:32 +0000)]
Update hi-boot files to fix building with old GHCs

17 years agoSTM invariants
tharris@microsoft.com [Sat, 7 Oct 2006 12:29:07 +0000 (12:29 +0000)]
STM invariants

17 years agoFix unregisterised alpha builds
Ian Lynagh [Wed, 4 Oct 2006 12:58:57 +0000 (12:58 +0000)]
Fix unregisterised alpha builds

17 years agoComments and an import-trim
simonpj@microsoft.com [Fri, 6 Oct 2006 16:14:03 +0000 (16:14 +0000)]
Comments and an import-trim

17 years agoMention that the module sub-directory structure for .o and .hi files is created autom...
simonpj@microsoft.com [Fri, 6 Oct 2006 15:12:34 +0000 (15:12 +0000)]
Mention that the module sub-directory structure for .o and .hi files is created automatically by GHC

17 years agoBale out before renamer errors are duplicated
simonpj@microsoft.com [Fri, 6 Oct 2006 14:02:50 +0000 (14:02 +0000)]
Bale out before renamer errors are duplicated

With the new Haddock patch, renamer errors can be duplicated;
so we want to bale out before doing the Haddock stuff if errors
are found.

(E.g test mod67 shows this up.)

17 years agoAvoid repeatedly loading GHC.Prim
simonpj@microsoft.com [Fri, 6 Oct 2006 14:01:02 +0000 (14:01 +0000)]
Avoid repeatedly loading GHC.Prim

This patch changes HscTypes.lookupIfaceByModule.  The problem was that
when compiling the 'base' package, we'd repeatedly reload GHC.Prim.
This is easily fixed by looking in the PIT too. A comment with
lookupIfaceByModule explains

17 years agoPrint the 'skipping' messages at verbosity level 1
simonpj@microsoft.com [Fri, 6 Oct 2006 14:00:34 +0000 (14:00 +0000)]
Print the 'skipping' messages at verbosity level 1

17 years agoFix up the typechecking of interface files during --make
simonpj@microsoft.com [Fri, 6 Oct 2006 13:19:32 +0000 (13:19 +0000)]
Fix up the typechecking of interface files during --make

This patch fixes Trac #909.  The problem was that when compiling
the base package, the handling of wired-in things wasn't right;
in TcIface.tcWiredInTyCon it repeatedly loaded GHC.Base.hi into the
PIT, even though that was the very module it was compiling.

The main fix is by introducing TcIface.ifCheckWiredInThing.

But I did some minor refactoring as well.

17 years agoImport trimming
simonpj@microsoft.com [Fri, 6 Oct 2006 13:18:30 +0000 (13:18 +0000)]
Import trimming

17 years agoFigure out where the rest of the repositories are, based on defaultrepo
Simon Marlow [Fri, 6 Oct 2006 10:00:49 +0000 (10:00 +0000)]
Figure out where the rest of the repositories are, based on defaultrepo
This is a slight improvement over the patch sent by jamey@minilop.net,
we now do it properly if the source repo was a GHC tree on the local
filesystem too.

Merge post 6.6.

17 years agoYet another fix to mkAtomicArgs (for floating of casts)
simonpj@microsoft.com [Fri, 6 Oct 2006 07:52:13 +0000 (07:52 +0000)]
Yet another fix to mkAtomicArgs (for floating of casts)

Comment Note [Take care] explains.

mkAtomicArgs is a mess.  A substantial rewrite of Simplify is needed.

17 years agoImprove comments and error tracing
simonpj@microsoft.com [Fri, 6 Oct 2006 07:50:58 +0000 (07:50 +0000)]
Improve comments and error tracing

17 years agoImprove error message
simonpj@microsoft.com [Fri, 6 Oct 2006 07:20:02 +0000 (07:20 +0000)]
Improve error message

17 years agoUndo an accidentally-committed patch by Audrey
simonpj@microsoft.com [Fri, 6 Oct 2006 07:19:25 +0000 (07:19 +0000)]
Undo an accidentally-committed  patch by Audrey

17 years agoMerge Haddock comment support from ghc.haddock -- big patch
davve@dtek.chalmers.se [Thu, 5 Oct 2006 22:02:58 +0000 (22:02 +0000)]
Merge Haddock comment support from ghc.haddock -- big patch

17 years agoRemove casts from lvalues to allow compilation under GCC 4.0
brianlsmith@gmail.com [Fri, 29 Sep 2006 18:59:31 +0000 (18:59 +0000)]
Remove casts from lvalues to allow compilation under GCC 4.0

17 years agoCorrect the float-coercions-out-of-let patch
simonpj@microsoft.com [Thu, 5 Oct 2006 16:18:19 +0000 (16:18 +0000)]
Correct the float-coercions-out-of-let patch

17 years agoMerge changes
Ian Lynagh [Thu, 5 Oct 2006 15:06:30 +0000 (15:06 +0000)]
Merge changes

17 years agoImprove the correlation betweens documented and existent options
Ian Lynagh [Tue, 3 Oct 2006 22:03:54 +0000 (22:03 +0000)]
Improve the correlation betweens documented and existent options

17 years agoDocument -dfaststring-stats
Ian Lynagh [Tue, 3 Oct 2006 15:41:47 +0000 (15:41 +0000)]
Document -dfaststring-stats

17 years agoRearrange docs to have all the -ddump-* options together
Ian Lynagh [Tue, 3 Oct 2006 15:34:22 +0000 (15:34 +0000)]
Rearrange docs to have all the -ddump-* options together

17 years agoRemove unused option -femit-extern-decls
Ian Lynagh [Tue, 3 Oct 2006 14:58:54 +0000 (14:58 +0000)]
Remove unused option -femit-extern-decls

17 years agoDocumentation updates
Ian Lynagh [Tue, 3 Oct 2006 14:26:58 +0000 (14:26 +0000)]
Documentation updates

17 years agoFix typo
Ian Lynagh [Tue, 3 Oct 2006 12:19:26 +0000 (12:19 +0000)]
Fix typo

17 years agoMore bootstrapping updates
Ian Lynagh [Thu, 5 Oct 2006 14:56:29 +0000 (14:56 +0000)]
More bootstrapping updates

17 years agoTeach SpecConstr about Cast 2006-10-05
simonpj@microsoft.com [Thu, 5 Oct 2006 14:36:24 +0000 (14:36 +0000)]
Teach SpecConstr about Cast

This patch teaches SpecConstr about casts; see Note [SpecConstr for casts]

17 years agoFloat coercions out of lets
simonpj@microsoft.com [Thu, 5 Oct 2006 13:24:37 +0000 (13:24 +0000)]
Float coercions out of lets

Note [Float coercions]
~~~~~~~~~~~~~~~~~~~~~~
When we find the binding
x = e `cast` co
we'd like to transform it to
x' = e
x = x `cast` co -- A trivial binding
There's a chance that e will be a constructor application or function, or something
like that, so moving the coerion to the usage site may well cancel the coersions
and lead to further optimisation.  Example:

     data family T a :: *
     data instance T Int = T Int

     foo :: Int -> Int -> Int
     foo m n = ...
        where
          x = T m
          go 0 = 0
          go n = case x of { T m -> go (n-m) }
-- This case should optimise

17 years agoRemove unused argument to mkAtomicArgs
simonpj@microsoft.com [Thu, 5 Oct 2006 13:07:52 +0000 (13:07 +0000)]
Remove unused argument to mkAtomicArgs

17 years agoComments and layout
simonpj@microsoft.com [Thu, 5 Oct 2006 13:07:23 +0000 (13:07 +0000)]
Comments and layout

17 years agoRemove unused OccInfo (simplification)
simonpj@microsoft.com [Thu, 5 Oct 2006 13:03:27 +0000 (13:03 +0000)]
Remove unused OccInfo (simplification)

The substitution used to carry "fragile" OccInfo to call sites via the
DoneId constructor of SimplEnv.SimplSR.  This was always a tricky thing
to do, and for some time I've been removing the need for it.

Now at last I think we can nuke it altogether.  Hooray.

I did a full nonfib run, and got zero perf changes.

17 years agoTake 2 on the recursive-rule fix
simonpj@microsoft.com [Thu, 5 Oct 2006 12:10:23 +0000 (12:10 +0000)]
Take 2 on the recursive-rule fix

This is another attempt to fix the interaction between recursion and
RULES.  I just had it wrong before!  Now the significance of the
flag on IAmALoopBreaker is given in BasicTypes

  | IAmALoopBreaker -- Used by the occurrence analyser to mark loop-breakers
-- in a group of recursive definitions
!RulesOnly -- True <=> This loop breaker mentions the other binders
--     in its recursive group only in its RULES, not
--     in its rhs
--  See OccurAnal Note [RulesOnly]

17 years agoTake advantage of non-rec-ness in occurrence analysis (minor)
simonpj@microsoft.com [Thu, 5 Oct 2006 10:57:21 +0000 (10:57 +0000)]
Take advantage of non-rec-ness in occurrence analysis (minor)

17 years agoSpelling in comment
simonpj@microsoft.com [Thu, 5 Oct 2006 10:56:40 +0000 (10:56 +0000)]
Spelling in comment

17 years agoAdd intersectsUFM
simonpj@microsoft.com [Thu, 5 Oct 2006 10:56:15 +0000 (10:56 +0000)]
Add intersectsUFM

17 years agoMade 'for' a special ID in the grammar.
bjorn@bringert.net [Thu, 21 Sep 2006 05:20:53 +0000 (05:20 +0000)]
Made 'for' a special ID in the grammar.

17 years agoMerged stand-alone deriving with FC stuff.
bjorn@bringert.net [Wed, 20 Sep 2006 22:39:17 +0000 (22:39 +0000)]
Merged stand-alone deriving with FC stuff.

17 years agoFirst documentation on stand-alone instance deriving.
bjorn@bringert.net [Tue, 19 Sep 2006 01:06:06 +0000 (01:06 +0000)]
First documentation on stand-alone instance deriving.

17 years agoFixed source location and instance origin in stand-alone deriving error messages.
bjorn@bringert.net [Tue, 19 Sep 2006 01:05:35 +0000 (01:05 +0000)]
Fixed source location and instance origin in stand-alone deriving error messages.

17 years agoAdded type signature for tcSplitSigmaTy.
bjorn@bringert.net [Mon, 18 Sep 2006 23:09:25 +0000 (23:09 +0000)]
Added type signature for tcSplitSigmaTy.

17 years agoNew syntax for stand-alone deriving. Implemented fully.
bjorn@bringert.net [Mon, 18 Sep 2006 23:08:54 +0000 (23:08 +0000)]
New syntax for stand-alone deriving. Implemented fully.

17 years agoRenamer part of stand-alone deriving extension.
bjorn@bringert.net [Sun, 17 Sep 2006 21:54:20 +0000 (21:54 +0000)]
Renamer part of stand-alone deriving extension.

17 years agoAdded parser and abstract syntax support for stand-alone deriving declarations.
bjorn@bringert.net [Sun, 17 Sep 2006 00:09:56 +0000 (00:09 +0000)]
Added parser and abstract syntax support for stand-alone deriving declarations.

17 years agoComments only
simonpj@microsoft.com [Wed, 4 Oct 2006 21:10:15 +0000 (21:10 +0000)]
Comments only

17 years agoFix comment in RdrName
simonpj@microsoft.com [Wed, 4 Oct 2006 21:08:45 +0000 (21:08 +0000)]
Fix comment in RdrName

17 years agoImprove unboxing of strict fields
simonpj@microsoft.com [Wed, 4 Oct 2006 15:27:05 +0000 (15:27 +0000)]
Improve unboxing of strict fields

Note [Recursive unboxing]
~~~~~~~~~~~~~~~~~~~~~~~~~
Be careful not to try to unbox this!
data T = MkT !T Int
But it's the *argument* type that matters. This is fine:
data S = MkS S !Int
because Int is non-recursive.

Before this patch, we were only doing the unboxing if the *parent*
data type was non-recursive (eg that meant S was not unboxed), but
that is over-conservative.

This showed up with indexed data types (thanks to Roman for finding it)
because indexed data types are conservatively regarded as always recursive.

17 years agoRemove redundant dump
simonpj@microsoft.com [Wed, 4 Oct 2006 15:26:14 +0000 (15:26 +0000)]
Remove redundant dump

17 years agoTrim imports
simonpj@microsoft.com [Wed, 4 Oct 2006 15:25:21 +0000 (15:25 +0000)]
Trim imports

17 years agoImprove liberate-case to take account of coercions
simonpj@microsoft.com [Wed, 4 Oct 2006 13:51:55 +0000 (13:51 +0000)]
Improve liberate-case to take account of coercions

Note [Scrutinee with cast]
~~~~~~~~~~~~~~~~~~~~~~~~~~
Consider this:
    f = \ t -> case (v `cast` co) of
         V a b -> a : f t

Exactly the same optimistaion (unrolling one call to f) will work here,
despite the cast.  See mk_alt_env in the Case branch of libCase.

This patch does the job.  For a change, it was really easy.

17 years agoRemvove totally unused static flags
simonpj@microsoft.com [Wed, 4 Oct 2006 12:48:26 +0000 (12:48 +0000)]
Remvove totally unused static flags

17 years agoRemove ILX from the GHC altogether (although I left the source file IlxGen in case...
simonpj@microsoft.com [Wed, 4 Oct 2006 12:32:42 +0000 (12:32 +0000)]
Remove ILX from the GHC altogether (although I left the source file IlxGen in case anyone wants to see it)

17 years ago-frule-check is not a static flag
simonpj@microsoft.com [Wed, 4 Oct 2006 12:32:22 +0000 (12:32 +0000)]
-frule-check is not a static flag

17 years agoTidy tyvar OccNames in TcTyClDecl
simonpj@microsoft.com [Wed, 4 Oct 2006 12:12:39 +0000 (12:12 +0000)]
Tidy tyvar OccNames in TcTyClDecl

We want the universal and existential tyvars of a data constructor to
have distinct OccNames.  It's confusing if they don't (in error messages,
for example), and with the current way of generating IfaceSyn, it actally
generates bogus interface files.  (Which bit Roman.)

When IfaceSyn is full of Names, this won't matter so much, but it still
seems cleaner.

This patch adds a 'tidy' step to the generation of DataCon type
variables in TcTyClDecls.tcResultType

17 years agoImprove pretty printing slightly
simonpj@microsoft.com [Wed, 4 Oct 2006 12:12:24 +0000 (12:12 +0000)]
Improve pretty printing slightly

17 years agoSecond bite at the rules-only idea
simonpj@microsoft.com [Wed, 4 Oct 2006 11:10:00 +0000 (11:10 +0000)]
Second bite at the rules-only idea

This is part 2 of the patch that improved the interaction of RULES and
recursion.  It's vital that all Ids that may be referred to from later in
the module are marked 'IAmALoopBreaker' because otherwise we may do
postInlineUnconditionally, and lose the binding altogether.

So I've added a boolean rules-only flag to IAmALoopBreaker.  Now we can
do inlining for rules-only loop-breakers.

17 years agoEliminate case-of-cast
simonpj@microsoft.com [Wed, 4 Oct 2006 11:07:41 +0000 (11:07 +0000)]
Eliminate case-of-cast

Note [Case of cast]
~~~~~~~~~~~~~~~~~~~
Consider  case (v `cast` co) of x { I# ->
... (case (v `cast` co) of {...}) ...
We'd like to eliminate the inner case.  We can get this neatly by
arranging that inside the outer case we add the unfolding
v |-> x `cast` (sym co)
to v.  Then we should inline v at the inner case, cancel the casts,
and away we go

This patch does the job, fixing a performance hole reported by Roman.

17 years agoFixes for the porting process for 6.6
Ian Lynagh [Tue, 3 Oct 2006 12:42:32 +0000 (12:42 +0000)]
Fixes for the porting process for 6.6

17 years agoMake recursion and RULES interact better
simonpj@microsoft.com [Tue, 3 Oct 2006 15:30:57 +0000 (15:30 +0000)]
Make recursion and RULES interact better

See Trac #683

This patch improves the interaction of recursion and RULES; at least I
hope it does.   The problem was that a RULE was being treated uniformly like
an "extra RHS". This worked badly when you have a non-recursive definition
that is made recursive only by RULE.

This patch maeks the occurrence analyser know whether a binder is referred to
only from RULES (the RulesOnly constructor in OccInfo).  Then we can ignore
such edges when deciding on the order of bindings in a letrec, and when
setting the LoopBreaker flag.

The remaining potential problem is this:
rec{ f = ...g...
   ; g = ...f...
     RULE g True = ...
   }

The RULE for g may not be visible in f's rhs.  This is fixable, but not
today.

17 years agoWarning police only
simonpj@microsoft.com [Tue, 3 Oct 2006 13:44:14 +0000 (13:44 +0000)]
Warning police only

17 years agoFix scoped type variables for expression type signatures
simonpj@microsoft.com [Tue, 3 Oct 2006 13:40:56 +0000 (13:40 +0000)]
Fix scoped type variables for expression type signatures

I had forgotten to bring scoped type variables into scope at an expression
type signature, such as
e :: forall s. <type>
where 's' should scope over the expression e.

Like everything to do with scoped type variables, fixing this took an
unreasonable amount of work.  I'm sure there must be a better way to
achitect this!

I updated the user manual too.

A test is tc213.

It would be good to push this into 6.6.1

17 years agoTrim imports
simonpj@microsoft.com [Tue, 3 Oct 2006 13:38:45 +0000 (13:38 +0000)]
Trim imports

17 years agoAdd error check for operators in types
simonpj@microsoft.com [Tue, 3 Oct 2006 08:28:05 +0000 (08:28 +0000)]
Add error check for operators in types

Fixes Trac #919

17 years agoAdd a C++ phase. Fixes bug #800
Lemmih [Thu, 27 Jul 2006 08:00:23 +0000 (08:00 +0000)]
Add a C++ phase. Fixes bug #800

17 years agoLatin-1-to-UTF8 pre-processor example for docs from Christian Maeder
Ian Lynagh [Sun, 1 Oct 2006 01:07:00 +0000 (01:07 +0000)]
Latin-1-to-UTF8 pre-processor example for docs from Christian Maeder

17 years agoadd :edit to the release notes, and improve the docs a bit
Simon Marlow [Fri, 29 Sep 2006 11:21:08 +0000 (11:21 +0000)]
add :edit to the release notes, and improve the docs a bit

17 years agoSimplify the way in which the coKindFun in CoercionTyCon is handled
simonpj@microsoft.com [Fri, 29 Sep 2006 22:28:45 +0000 (22:28 +0000)]
Simplify the way in which the coKindFun in CoercionTyCon is handled

Before the coKindFun could be applied to too many arguments;
now it expects exactly the right number of arguments.  That
makes it easier to write the coKindFuns, and localises the work.

17 years agoMatch let before lambda in rule-matching (see comment with Lam case of Rules.match)
simonpj@microsoft.com [Fri, 29 Sep 2006 22:26:45 +0000 (22:26 +0000)]
Match let before lambda in rule-matching (see comment with Lam case of Rules.match)

17 years agoFix bug in SCRIPT_SHELL patch (| should be ||)
simonpj@microsoft.com [Fri, 29 Sep 2006 22:24:33 +0000 (22:24 +0000)]
Fix bug in SCRIPT_SHELL patch (| should be ||)

17 years agoAdd missing case for EqPred
simonpj@microsoft.com [Fri, 29 Sep 2006 16:51:18 +0000 (16:51 +0000)]
Add missing case for EqPred

17 years agoAmplify scoped tyvar changes
simonpj@microsoft.com [Fri, 29 Sep 2006 16:50:38 +0000 (16:50 +0000)]
Amplify scoped tyvar changes

17 years agoUpdate release notes
simonpj@microsoft.com [Fri, 29 Sep 2006 12:28:55 +0000 (12:28 +0000)]
Update release notes

17 years agoRemove Linear Implicit Parameters, and all their works
simonpj@microsoft.com [Fri, 29 Sep 2006 16:07:17 +0000 (16:07 +0000)]
Remove Linear Implicit Parameters, and all their works

Linear implicit parameters have been in GHC quite a while,
but we decided they were a mis-feature and scheduled them for
removal.  This patch does the job.

17 years agoGlobal renamings in HsSyn
simonpj@microsoft.com [Fri, 29 Sep 2006 14:39:10 +0000 (14:39 +0000)]
Global renamings in HsSyn

17 years agoImprove pretty-printing of Core
simonpj@microsoft.com [Fri, 29 Sep 2006 13:35:49 +0000 (13:35 +0000)]
Improve pretty-printing of Core

17 years agoAnother correction to the (subtle) exprIsConApp_maybe
simonpj@microsoft.com [Fri, 29 Sep 2006 13:35:12 +0000 (13:35 +0000)]
Another correction to the (subtle) exprIsConApp_maybe

17 years agoSpelling correction
simonpj@microsoft.com [Fri, 29 Sep 2006 12:36:44 +0000 (12:36 +0000)]
Spelling correction

17 years agoImprove pretty printing of IfaceSyn
simonpj@microsoft.com [Fri, 29 Sep 2006 12:33:55 +0000 (12:33 +0000)]
Improve pretty printing of IfaceSyn

17 years agoImprove unification error messages (again) (push to 6.6 branch)
simonpj@microsoft.com [Fri, 29 Sep 2006 12:20:10 +0000 (12:20 +0000)]
Improve unification error messages (again) (push to 6.6 branch)

17 years ago:edit runs notepad by default on Windows
Simon Marlow [Fri, 29 Sep 2006 10:27:39 +0000 (10:27 +0000)]
:edit runs notepad by default on Windows

17 years agounbreak :edit patch on Windows
Simon Marlow [Thu, 28 Sep 2006 15:59:51 +0000 (15:59 +0000)]
unbreak :edit patch on Windows

17 years agoFix #906, and do #914 while I'm in here (it wasn't too hard)
Simon Marlow [Thu, 28 Sep 2006 15:17:05 +0000 (15:17 +0000)]
Fix #906, and do #914 while I'm in here (it wasn't too hard)

17 years agoAdd basic :edit support
Simon Marlow [Thu, 28 Sep 2006 13:51:56 +0000 (13:51 +0000)]
Add basic :edit support
Without jumping to line numbers or %-expansion, we could add that later.

17 years agotiny fix in porting docs I just spotted
Simon Marlow [Thu, 28 Sep 2006 10:56:11 +0000 (10:56 +0000)]
tiny fix in porting docs I just spotted

17 years agoonly make stdin/stdout unbuffered in GHCi, not runghc or ghc -e.
Simon Marlow [Thu, 28 Sep 2006 10:54:03 +0000 (10:54 +0000)]
only make stdin/stdout unbuffered in GHCi, not runghc or ghc -e.

17 years agotestsuite *is* boring
Simon Marlow [Thu, 28 Sep 2006 10:53:42 +0000 (10:53 +0000)]
testsuite *is* boring

17 years agofix typo in comment
Andres Loeh [Thu, 14 Sep 2006 23:56:48 +0000 (23:56 +0000)]
fix typo in comment

17 years agoremove non-boring directories
Norman Ramsey [Fri, 15 Sep 2006 23:49:02 +0000 (23:49 +0000)]
remove non-boring directories

17 years agoModify toArgs to parse quotes/escapes like /bin/sh
rjmccall@gmail.com [Sun, 17 Sep 2006 00:36:41 +0000 (00:36 +0000)]
Modify toArgs to parse quotes/escapes like /bin/sh
Addresses ticket #197, which asks for escape sequences to be supported directly (i.e.
not only in dquoted strings) on :load commands in GHCI.  Fix modifies the toArgs
function to parse its input like /bin/sh does, i.e. recognizing escapes anywhere
and treating quoted strings as atomic chunks.  Thus:
  :load a\ b c\"d e" "f
would parse with three arguments, namely 'a b', 'c"d', and 'e f'.

toArgs is used to parse arguments for both :load and :main, but doesn't appear to
be used elsewhere.  I see no harm in modifying both to be consistent -- in fact,
the functionality is probably more useful for :main than for :load.

17 years agoFix mulIntMayOflo on 64-bit arches; fixes trac #867
Ian Lynagh [Thu, 28 Sep 2006 00:48:06 +0000 (00:48 +0000)]
Fix mulIntMayOflo on 64-bit arches; fixes trac #867
We were assuming we could multiply 2 32-bit numbers without overflowing
a 64-bit number, but we can't as the top bit is the sign bit.