This project is mirrored from https://gitlab.haskell.org/ghc/ghc.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
  1. 21 Feb, 2007 6 commits
    • simonpj@microsoft.com's avatar
      Deal more correctly with orphan instances · eb2bf7ad
      simonpj@microsoft.com authored
      Conal Eliott (Trac #1145) exposed a nasty flaw in the way in which
      orphan instances are computed, when there are functional dependencies
      in the class.  It took me some time to figure out what was going on,
      and led to more refactoring.
      
      Briefly:
      
      * Elaborate comments about orphan-hood and versioning added to IfaceSyn
      * The is_orph field vanishes from InstEnv.Instance
      * Similarly ru_orph vanishes from CoreSyn.CoreRule
      * Orphan-hood is computed in MkIface.instanceToIfaceInst, and
      	MkIface.coreRuleToIfaceRule
      
      Elsewhere just tidying up.
      eb2bf7ad
    • simonpj@microsoft.com's avatar
      Remove dead code from FunDeps · ede4d6f3
      simonpj@microsoft.com authored
      I forgot to to this when refactoring some months ago!
      ede4d6f3
    • simonpj@microsoft.com's avatar
      Fix a deriving bug, arising from recent refactoring · 66f73ee4
      simonpj@microsoft.com authored
      This one is a hangover from something I did a month or two ago, but
      didn't get quite right.  tcSimplifyDefault should not check for no-instances;
      instead the checkValidInstance in TcDeriv does so.
      
      Conal's DeepArrow needs this fix.  Test is drv015.
      
      66f73ee4
    • simonpj@microsoft.com's avatar
      Fix defaulting for overloaded strings · 041c35e5
      simonpj@microsoft.com authored
      This patch fixes the typechecking of the default declaration itself,
      when overloaded strings are involved.  It also documents the behaviour
      in the user manual.
      
      nofib/spectral/power should work again now!
      041c35e5
    • Simon Marlow's avatar
    • simonpj@microsoft.com's avatar
      Fix case-merge bug that was breaking the HEAD · dc8d5354
      simonpj@microsoft.com authored
      My re-org of the case-merging transformation introduced a bug, which led
      to incorrect code.   This only showed up occasionally, but it generated
      incorrect code for PprC.pprCastReg in the stage-2 compiler. As a result
      the stage-2 compiler ran without crashing, but itself generated bogus C.
      
      For a change, this is one that Core Lint couldn't find, so the trail was
      a bit longer.  The fix is easy (and commented).
      
      dc8d5354
  2. 20 Feb, 2007 4 commits
  3. 19 Feb, 2007 1 commit
    • simonpj@microsoft.com's avatar
      Signature type variables must not be instantiated with tycons · ad17cf6e
      simonpj@microsoft.com authored
      An egregious bug in the type checker meant that it was possible for a 
      "signature type variable" (a MetaTv of SigTv form) to be instantatiated 
      with a type-constructor application.  This destroys the invariant for
      SigTv.
      
      The fix is easy; adding the predicate TcType.isTyConableTyVar
      
      Fixes Trac #1153
      ad17cf6e
  4. 16 Feb, 2007 3 commits
  5. 14 Feb, 2007 1 commit
  6. 15 Feb, 2007 1 commit
    • mnislaih's avatar
      Fixed a bug in the datacon names extension in the dynamic linker · 47ec5807
      mnislaih authored
      My code was doing unnecessary work when trying to get hold of all the BCOs in order to sniff the datacon names.
      This involved calculating the transitive closure of a relation and was causing a huge performance slowdown in GHCi, as benchmarks uncovered. It turns out that this calculation was unnecessary.
      47ec5807
  7. 13 Feb, 2007 1 commit
  8. 15 Feb, 2007 1 commit
    • Simon Marlow's avatar
      When the pipeline just copies the file, prepend a LINE pragma · cf411c9a
      Simon Marlow authored
      For example, "ghc -E Foo.hs -o Foo.bar" just copies Foo.hs to
      Foo.bar.  This patch adds a LINE pragma to the beginning of Foo.bar so
      that further processing can track the location of the original file.
      
      The motiviation for this is bug #1044.  When generating Haddock docs,
      we preprocess the .hs to a .raw-hs, sometimes this doesn't involve any
      actual preprocessing and in those cases we lose track of the original
      filename.
      cf411c9a
  9. 14 Feb, 2007 2 commits
    • Simon Marlow's avatar
      add a ToDo, reference bug #1147 · 4564c112
      Simon Marlow authored
      4564c112
    • Simon Marlow's avatar
      fix closure_sizeW_() for AP closures · dcecd7a5
      Simon Marlow authored
      Since thunks grew an extra padding word in GHC 6.6, closure_sizeW()
      has been wrong for AP closures because it assumed compatible layout
      between PAPs and APs.  One symptom is that the compacting GC would
      crash if it encountered an AP.  APs conly crop up in GHCi or
      when using asynchronous exceptions.
      
      Fixes #1010
      dcecd7a5
  10. 13 Feb, 2007 2 commits
  11. 09 Feb, 2007 3 commits
    • simonpj@microsoft.com's avatar
      Major improvement to SpecConstr · cac2aca1
      simonpj@microsoft.com authored
      This patch improves the SpecConstr pass, by 
        a) making it work with join points
        b) making it generate specialisations transitively
      
      As part of it, SpecConstr now carries a substitution with it, which
      runs over the whole program as it goes.  This turned out to be 
      a big win; simplified the implementation quite a bit.
      
      I have *disabled* the specialisation on lambdas; it's pretty fragile,
      and sometimes generates more and more specialisations. Something to
      come back to, perhaps.
      
      I rejigged the flag-handling a bit.  Now the specification of passes
      in DynFlags is a bit nicer; see
      	- optLevelFlags top-level data structure
      	- runWhen function
      	- CoreDoPasses constructor
      
      There are now command-line flags
      	-fspec-constr
      	-fliberate-case
      	-fspec-threshold=N
      which do the obvious thing.  -O2 switches on both spec-constr and liberate-case.
      You can use -fno-liberate-case, -fno-spec-constr after -O2 to switch them off again.
      
      The spec-threshold applies to both these transformations; default value 200 for now.
      
      
      
      
      cac2aca1
    • simonpj@microsoft.com's avatar
      Refactor the simplifier's treatment of case expressions · e9f23b4c
      simonpj@microsoft.com authored
      (NB: this patch could conceivably require some bits of the 
      following SpecConstr patch to compile cleanly.  It's conceptually
      independent, but I'm not 100% certain that I've included all
      the necessary bits here.)
      
      This patch cleans up the simplifier's handling of various
      otimisations for case expressions, notably
        - case elimination (discarding the case altogether)
        - merging identical alternatives
        - discarding impossible alternative
        - merging nested cases
      
      Previously this was partly handled before, and partly after,
      simplifying the case alternatives. The trouble with that is
      that the dead-ness information on the case binders gets munged
      during simplification, and that turned out to mean that 
      case elmination essentially never happened -- stupid.
      
      Now I've moved it all to before simplifying the alterntives.
      In fact this reduces the amount of code, I think, and it's
      certainly tidier.  I don't think there is any loss.
      
      e9f23b4c
    • Simon Marlow's avatar
      Ticky is an RTS-only way; also fix collateral damage to other ways · 5bf1b7f5
      Simon Marlow authored
      The ticky static flag was being poked too early, which lead to
      breakage in the -prof way amongst other things.  I've installed some
      sanity checking to make sure we catch this earlier if it happens again.
      5bf1b7f5
  12. 08 Feb, 2007 3 commits
  13. 07 Feb, 2007 12 commits