1. 12 Feb, 2003 4 commits
    • simonpj's avatar
      [project @ 2003-02-12 15:01:31 by simonpj] · 42b63073
      simonpj authored
      -------------------------------------
        Big upheaval to the way that constructors are named
      	-------------------------------------
      
      This commit enshrines the new story for constructor names.  We could never
      really get External Core to work nicely before, but now it does.
      
      The story is laid out in detail in the Commentary
      	ghc/docs/comm/the-beast/data-types.html
      so I will not repeat it here.
      
      	[Manuel: the commentary isn't being updated, apparently.]
      
      However, the net effect is that in Core and in External Core, contructors look
      like constructors, and the way things are printed is all consistent.
      
      It is a fairly pervasive change (which is why it has been so long postponed),
      but I hope the question is now finally closed.
      
      All the libraries compile etc, and I've run many tests, but doubtless there will
      be some dark corners.
      42b63073
    • simonmar's avatar
      [project @ 2003-02-12 11:59:49 by simonmar] · 87bfa396
      simonmar authored
      Fix two bugs/omissions in the new THUNK_SELECTOR code which cause
      biographical profiling to fall over.
      
      (aka rev. 1.135.4.10)
      87bfa396
    • simonmar's avatar
      [project @ 2003-02-12 11:05:41 by simonmar] · 85a6b8fe
      simonmar authored
      Fix bug caused by non-use of function prototypes (grrr!).
      85a6b8fe
    • simonmar's avatar
      [project @ 2003-02-12 10:32:38 by simonmar] · 49a478ab
      simonmar authored
      Adapt the dist target a little to work with the nightly build's new
      way of building source dists.
      
      It now works by building a link tree to the build tree, and doing
      'make dist' on the link tree, to avoid destroying the real build tree.
      This just needed a couple of tweaks to the dist target to work.
      49a478ab
  2. 11 Feb, 2003 4 commits
  3. 10 Feb, 2003 3 commits
  4. 08 Feb, 2003 2 commits
  5. 07 Feb, 2003 4 commits
    • sof's avatar
      [project @ 2003-02-07 22:26:08 by sof] · 761af30a
      sof authored
      hsc2hs-inplace: provide --ld default-default
      761af30a
    • sof's avatar
      [project @ 2003-02-07 22:14:32 by sof] · 01591a28
      sof authored
      Rip out rawSystem impl -- it only happened to work by accident.
      
      Simpler to just assume that SystemExts supplies it instead, which it
      has for a number of versions now.
      01591a28
    • sof's avatar
      [project @ 2003-02-07 21:55:36 by sof] · e1618c1f
      sof authored
      - default linker is now 'ghc' (i.e., consistent with the default compiler.)
      - new option, -v/--verbose, which makes the tool less inscrutable about what
        external commands it actually ends up exec'ing.
      - under Win32, try locating the default 'ghc' to run by looking in the dir
        where 'hsc2hs' resides (which they do in a binary install.)
      - make the default --template arg story actually work (win32 only.)
      e1618c1f
    • simonpj's avatar
      [project @ 2003-02-07 09:39:02 by simonpj] · 7f82f577
      simonpj authored
      Fix minor bugs in simplifier iteration control
      7f82f577
  6. 06 Feb, 2003 8 commits
  7. 05 Feb, 2003 7 commits
  8. 04 Feb, 2003 8 commits
    • simonpj's avatar
      [project @ 2003-02-04 15:31:18 by simonpj] · 17777c53
      simonpj authored
      -------------------------------------
      	Fix a name-capture bug in Ext-Core
      	-------------------------------------
      
      Don't expand newtypes (even non-recursive ones) when going to External Core.
      Reason: the expansion was performed *after* Tidying; the expansion performs
      type substitution, which is only done right if you take account of the Uniques.
      But since it's post-tidying, we got capture of occurence names.
      
      I hope the lack of newtype expansion doesn't hurt anyone; I doubt it will.
      If so, we can think again.
      
      Thanks to Tobias Gedell for this one.
      17777c53
    • simonpj's avatar
      [project @ 2003-02-04 15:09:38 by simonpj] · 957bf375
      simonpj authored
      -------------------------------------
      	Remove all vestiges of usage analysis
      	-------------------------------------
      
      This commit removes a large blob of usage-analysis-related code, almost
      all of which was commented out.
      
      Sadly, it doesn't look as if Keith is going to have enough time to polish it
      up, and in any case the actual performance benefits (so far as we can measure
      them) turned out to be pretty modest (a few percent).
      
      So, with regret, I'm chopping it all out.  It's still there in the repository
      if anyone wants go hack on it.  And Tobias Gedell at Chalmers is implementing
      a different analysis, via External Core.
      957bf375
    • simonpj's avatar
      [project @ 2003-02-04 13:06:41 by simonpj] · e8f681e4
      simonpj authored
      ---------------------------------------------------
      			External Core fix
      	output implicit bindings in correct dependency order
      	---------------------------------------------------
      
      In coreSyn/MkExternalCore, output constructor wrappers before the
      other implicit bindings, because the latter may use the former.
      
      Thanks to Tobias Gedell for this one.
      e8f681e4
    • simonpj's avatar
      [project @ 2003-02-04 12:40:00 by simonpj] · 74775c6b
      simonpj authored
      Make utils/genprimopcode recognise the type ().
          It was previously written 'Unit', which is easily
          confused with the type 'Unit' (used for generic
          derived instances).
      74775c6b
    • simonpj's avatar
      [project @ 2003-02-04 12:33:05 by simonpj] · e6d00492
      simonpj authored
      ---------------------------------------------------
      	Template-Haskell fix to make the global environment
      		      more side-effect-ful
      	---------------------------------------------------
      
      Consider
      
      	f = $(...foldl...) $(...foldl...)
      
      The first splice sucks in the type sig for foldl, which the second
      splice needs.  That means that the second splice is going to have to
      consult the persistent compiler state to see the effect of imports
      by the first one.
      
      We used to cache the global type environment in the TcGblEnv, but
      this commit switches to the obvious thing: consult the persistent
      state on every global lookup.  After all, reading a MutVar is no
      big deal; and it's a benign, ever-growing cache of type signatures,
      so the side effect is fine.
      
      On the way I tidied up the knot-tying in TcIfaceSig a bit more.
      Previously, I think the setUnfoldingInfo was being strict in the
      unfolding, which forced it to be type-checked.  Now it's lazy.
      That could mean a lot less typechecking overall, for things whose
      unfolding isn't looked at.  I hope I havn't broken it, though.
      e6d00492
    • simonpj's avatar
      [project @ 2003-02-04 12:28:22 by simonpj] · 115f0fae
      simonpj authored
      ---------------------------------------------------
      	Important fix to the handling of class methods that
      	      mention their own class type variable
      	---------------------------------------------------
      
      [NB: I'm not 100% certain that this commit is independent of the
           Template-Haskell-related commit I'm doing at the same time.
           I've tried to separate them but may not have succeeded totally.]
      
      This bug gives utterly bogus (detected by Core Lint) programs.
      Isaac Jones discovered it.  Here's an example, now enshrined as tc165.
      
          class C a where
      	f :: (Eq a) => a
      
          instance C () where
      	f = f
      
      The instance decl was translated as
      
          dfC() = MkC (let f = \dEq -> f in f)
      
      which is utterly wrong.  Reason: the 'f' on the left was being treated
      as an available Inst, but it doesn't obey INVARIANT 2 for Insts, which
      is that they are applied to all their dictionaries.  (See the data type
      decl for Inst.)
      
      Solution: don't include such class methods in the available Insts.
      115f0fae
    • simonpj's avatar
      [project @ 2003-02-04 12:25:21 by simonpj] · 60beff5f
      simonpj authored
      Use nameIsLocalOrFrom instead of open code
      60beff5f
    • simonpj's avatar
      [project @ 2003-02-04 12:23:32 by simonpj] · 23a4e1f0
      simonpj authored
      Add type sig
      23a4e1f0