Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Sep 12, 2008

  1. Simon Marlow

    Fix crash in biographical heap profiling (#2576)

    simonmar authored
  2. Simon Marlow

    Fix retainer profiling (#2576)

    simonmar authored
  3. Simon Marlow

    Fix some bugs in the stack-reducing code (#2571)

    simonmar authored
  4. Tim Chevalier

    ext-core library: Add dead code eliminator for Core

    Added code for dead code elimination to the ext-core library. This can be used in concert with Language.Core.Merge to produce a single self-contained module without unnecessary cruft.
    catamorphism authored
  5. Tim Chevalier

    ext-core library: expose some more modules

    catamorphism authored
  6. Tim Chevalier

    ext-core library: Change syntax for primitive coercions

    Changed the ext-core syntax to include primitive coercions (left, right, sym, trans, etc.) as syntax rather than referring them to their names as in GHC. (I hope I updated the docs to reflect this...)
    catamorphism authored
  7. Tim Chevalier

    ext-core library: Export a lot more things from Prims

    See comments for details.
    catamorphism authored
  8. Tim Chevalier

    ext-core library: Extend Core preprocessor

    See comments for details.
    catamorphism authored
  9. Tim Chevalier

    ext-core library: Export a bunch more stuff from the parser

    catamorphism authored
  10. Tim Chevalier

    ext-core library: Fix performance bug

    isUtupleTy was implemented inefficiently (and is called a lot by the typechecker). Replaced with uglier but faster code.
    catamorphism authored
  11. Tim Chevalier

    ext-core library: Remove some cruft

    catamorphism authored
  12. Tim Chevalier

    ext-core library: Add code for merging multiple Core modules into a s…

    …ingle module
    
    I added a new module, Merge, to the ext-core library that combines a list of ext-core modules into a new, uniquely renamed module.
    
    See comments in Merge.hs for more details.
    catamorphism authored

Sep 11, 2008

  1. igfoo

    Use OSThreadProcAttr for workerStart

    igfoo authored
  2. igfoo

    Include docs in the bindists

    igfoo authored
  3. igfoo

    Don't install pwd

    igfoo authored
  4. igfoo

    In stgReallocForGMP, we need to copy min(old_size,new_size)

    We used to always copy old_size
    igfoo authored
  5. igfoo

    Tell perl to autoflush output in darcs-all. Suggested by Claus Reinke

    igfoo authored

Sep 10, 2008

  1. Remove dataConInstOrigDictsAndArgTys

    This suspicious function had just one call, in BuildTyCl.mkNewTyConRhs.
    I've done it another way now, which is tidier.
    simonpj@microsoft.com authored
  2. Fix debug message formatting on Windows

    simonpj@microsoft.com authored
  3. Check the *right* set of type variables for escape!

    I did the wrong checkSigTyVars, which (happily) triggered an ASSERT
    failure.  This should fix it.
    simonpj@microsoft.com authored
  4. More refactoring of instance declarations (fixes Trac #2572)

    In refactoring instance declarations I'd taken a short cut over
    scoped type variables, but it wasn't right as #2572 shows.
    
    Fixing it required a significant chunk of further refactoring,
    alas. But it's done!  Quite tidily as it turns out.
    
    The main issue is that when typechecking a default method, we
    need two sets of type variables in scope
    	class C a where
       	  op :: forall b. ...
    	  op = e
    In 'e', *both* 'a' and 'b' are in scope.  But the type of the
    default method has a nested flavour
    	op :: forall a. C a => forall b. ....
    and our normal scoping mechanisms don't bring 'b' into scope.
    (And probably shouldn't.)  
    
    Solution (which is done for instance methods too) is to use
    a local defintion, like this:
    
      $dmop :: forall a. C a => forall b. ....
      $dmop a d = let 
                     op :: forall b. ...
                     op = e
                  in op
    
    and now the scoping works out.  I hope I have now see the
    last of this code for a bit!
    simonpj@microsoft.com authored
  5. Fix Trac #2581: inlining of record selectors

    Bryan discovered that a non-trivial record selector (non-trivial in 
    the sense that it has to reconstruct the result value because of
    UNPACK directives) weren't being inlined.  The reason was that the
    unfolding generated by MkId.mRecordSelId was never being optimised
    *at all*, and hence looked big, and hence wasn't inlined.
    
    (The out-of-line version *is* put into the code of the module
    and *is* optimised, which made this bug pretty puzzling.  But the
    unfolding inside the record-selector-Id itself, which is a GlobalId
    and hence does not get its inlining updated like LocalIds, was
    big and fat.)
    
    Solution: I wrote a very simple optimiser, CoreUnfold.simplOptExpr,
    which does enough optimisation to solve this particular problem.
    It's short, simple, and will be useful in other contexts.
    simonpj@microsoft.com authored
  6. Fix Trac #2573; and explanatory comment

    simonpj@microsoft.com authored
  7. Fix the zonking of HsWrappers

    HsWrappers are horribly inconsistent at the moment. I intended that
      WpLam, WpApp     are for evidence abstraction/application
      WpTyLam, WpTyApp are for type abstraction/application
    
    But when we zonk (WpApp co), where co is a coercion variable, we 
    get a *coercion* not a coercion *variable*.   So for now I'm making
    it into a WpTyApp, which the desugarer handles perfectly well.
    
    (I'd forgotten to zonk it properly at all; that is the bug that 
    this patch fixes.)
    simonpj@microsoft.com authored
  8. Add newDictOcc, newDictOccs

    simonpj@microsoft.com authored
  9. Layout and type synonyms only

    simonpj@microsoft.com authored
  10. Robustify the setting of implied flags

    When setting implied flags, do so recursively.  So if -Xa implies -Xb,
    and -Xb implies -Xc, we do the right thing. 
    
    I thought we needed this, but we don't.  But it seems like a good idea
    anyway.
    simonpj@microsoft.com authored
  11. Rename a variable

    simonpj@microsoft.com authored
  12. Comments only

    simonpj@microsoft.com authored
  13. Simplify the type signature for tcPolyBinds

    simonpj@microsoft.com authored

Sep 09, 2008

  1. igfoo

    We always install stage2, so we need to always put stage2 into bindists

    igfoo authored
  2. igfoo

    Add a do-nothing install-docs rule in ext-core/ when LATEX_DOCS=NO

    igfoo authored
  3. igfoo

    Link to core.pdf, not core.ps.gz

    igfoo authored
  4. Tell GHC which module nON_EXHAUSTIVE_GUARDS_ERROR_ID comes from

    This one was missed when the error-ids all moved to Control.Exception.Base
    (The nofib test 'fluid' showed it up.)
    simonpj@microsoft.com authored
  5. Improve float-in somewhat

    See Note [Floating in past a lambda group]. The new thing
    here is that we previously were not floating in past a group
    that had (\(a:*) \(x:State# a). e), with a type var *and* a
    one-shot lambda.  
    
    The fix makes wave4main allocate 2% less, and doesn't change any other
    nofib number, so it's not a big deal.
    simonpj@microsoft.com authored
Something went wrong with that request. Please try again.