1. 16 Oct, 2007 1 commit
  2. 10 Oct, 2007 1 commit
    • Dan Licata's avatar
      View patterns, record wildcards, and record puns · 6a05ec5e
      Dan Licata authored
      This patch implements three new features:
      * view patterns (syntax: expression -> pat in a pattern)
      * working versions of record wildcards and record puns
      See the manual for detailed descriptions.
      
      Other minor observable changes:
      * There is a check prohibiting local fixity declarations
        when the variable being fixed is not defined in the same let
      * The warn-unused-binds option now reports warnings for do and mdo stmts
      
      Implementation notes: 
      
      * The pattern renamer is now in its own module, RnPat, and the
      implementation is now in a CPS style so that the correct context is
      delivered to pattern expressions.
      
      * These features required a fairly major upheaval to the renamer.
      Whereas the old version used to collect up all the bindings from a let
      (or top-level, or recursive do statement, ...) and put them into scope
      before renaming anything, the new version does the collection as it
      renames.  This allows us to do the right thing with record wildcard
      patterns (which need to be expanded to see what names should be
      collected), and it allows us to implement the desired semantics for view
      patterns in lets.  This change had a bunch of domino effects brought on
      by fiddling with the top-level renaming.
      
      * Prior to this patch, there was a tricky bug in mkRecordSelId in HEAD,
      which did not maintain the invariant necessary for loadDecl.  See note
      [Tricky iface loop] for details.
      6a05ec5e
  3. 15 Oct, 2007 2 commits
  4. 10 Oct, 2007 1 commit
  5. 04 Oct, 2007 1 commit
  6. 03 Oct, 2007 1 commit
  7. 12 Oct, 2007 4 commits
  8. 15 Oct, 2007 1 commit
  9. 14 Oct, 2007 1 commit
    • andy@galois.com's avatar
      Improving the combine mode for hpc · 1267b64b
      andy@galois.com authored
      we now have
      Processing Coverage files:
        sum         Sum multiple .tix files in a single .tix file
        combine     Combine two .tix files in a single .tix file
        map         Map a function over a single .tix file
      
      Where sum joins many .tix files, combine joins two files (with
      extra functionality possible), and map just applied a function
      to single .tix file.
      
      These changes were improvements driven by hpc use cases.
      
      END OF DESCRIPTION***
      
      Place the long patch description above the ***END OF DESCRIPTION*** marker.
      The first line of this file will be the patch name.
      
      
      This patch contains the following changes:
      
      M ./utils/hpc/Hpc.hs -1 +3
      M ./utils/hpc/HpcCombine.hs -33 +84
      M ./utils/hpc/HpcFlags.hs -11 +59
      1267b64b
  10. 12 Oct, 2007 1 commit
    • simonpj@microsoft.com's avatar
      Fix DoCon: Another try at getting extractResults right · d3e977c6
      simonpj@microsoft.com authored
      For some reason TcSimplify.extractResults is quite difficult to get right.
      This is another attempt; finally I think I have it.
      
      Strangely enough, it's only Sergey's DoCon program that shows up the
      bug, which manifested as a failure in the Simplifier
      
              lookupRecBndr $dGCDRing{v a1Lz} [lid]
      
      But it was due to extractResults producing multiple bindings for
      the same dictionary.
      
      Please merge this to the stable branch (after previous patches to
      TcSimplify though).
      
      d3e977c6
  11. 11 Oct, 2007 2 commits
    • Simon Marlow's avatar
      mention what SCC stands for · 13359d47
      Simon Marlow authored
      13359d47
    • Simon Marlow's avatar
      Add a proper write barrier for MVars · 1ed01a87
      Simon Marlow authored
      Previously MVars were always on the mutable list of the old
      generation, which meant every MVar was visited during every minor GC.
      With lots of MVars hanging around, this gets expensive.  We addressed
      this problem for MUT_VARs (aka IORefs) a while ago, the solution is to
      use a traditional GC write-barrier when the object is modified.  This
      patch does the same thing for MVars.
      
      TVars are still done the old way, they could probably benefit from the
      same treatment too.
      1ed01a87
  12. 10 Oct, 2007 1 commit
  13. 11 Oct, 2007 1 commit
  14. 10 Oct, 2007 10 commits
  15. 09 Oct, 2007 2 commits
    • Simon Marlow's avatar
      tiny refactoring · efe8ba48
      Simon Marlow authored
      efe8ba48
    • Simon Marlow's avatar
      small reworking of the loop-breaker-choosing algorithm · 1cc3d6d1
      Simon Marlow authored
      Previously inline candidates were given higher preference as
      non-loop-breakers than constructor applications, but the reason for
      this was that making a wrapper into a loop-breaker is to be avoided at
      all costs.  This patch refines the algorithm slightly so that wrappers
      are explicitly avoided by giving them a much higher score, and other
      inline candidates are given lower scores than constructor
      applications.
      
      This makes almost zero difference to a complete nofib run, so it
      amounts to just a tidyup.
      1cc3d6d1
  16. 10 Oct, 2007 4 commits
  17. 29 Sep, 2007 2 commits
  18. 09 Oct, 2007 4 commits