1. 24 Oct, 2007 1 commit
  2. 23 Oct, 2007 1 commit
  3. 24 Oct, 2007 2 commits
  4. 23 Oct, 2007 2 commits
  5. 22 Oct, 2007 1 commit
  6. 18 Oct, 2007 1 commit
    • Simon Marlow's avatar
      add PIC relocations for x86_64, and use a simpler hack in place of x86_64_high_symbol() · 2fc88e73
      Simon Marlow authored
      This is Wolfgang Thaller's patch sent to cvs-ghc recently, with extra
      commentary by me.  It turns out that this patch is not just a cleanup,
      it is also necessary for GHCi to work on x86_64 with shared libraries,
      because previously lookupSymbol() was creating jump-table entries for
      all symbols looked up that resolved outside 2Gb, whereas Wolfgang's
      version only generates jump-table entries for 32-bit symbol references
      in object code that we load.
      2fc88e73
  7. 17 Oct, 2007 1 commit
  8. 16 Oct, 2007 1 commit
  9. 19 Oct, 2007 2 commits
    • Simon Marlow's avatar
      second attempt to fix C compiler warnings with -fhpc · a0d2d5bb
      Simon Marlow authored
      The hs_hpc_module() prototype in RtsExternal.h didn't match its usage:
      we were passing StgWord-sized parameters but the prototype used C
      ints.  I think it accidentally worked because we only ever passed
      constants that got promoted.  The constants unfortunately were
      sometimes negative, which caused the C compiler to emit warnings.
      
      I suspect PprC.pprHexVal may be wrong to emit negative constants in
      the generated C, but I'm not completely sure.  Anyway, it's easy to
      fix this in CgHpc, which is what I've done.
      a0d2d5bb
    • chak@cse.unsw.edu.au.'s avatar
      Zonk quantified tyvars with skolems · cad764aa
      chak@cse.unsw.edu.au. authored
      We used to zonk quantified type variables to regular TyVars.  However, this
      leads to problems.  Consider this program from the regression test suite:
      
        eval :: Int -> String -> String -> String
        eval 0 root actual = evalRHS 0 root actual
      
        evalRHS :: Int -> a
        evalRHS 0 root actual = eval 0 root actual
      
      It leads to the deferral of an equality
      
        (String -> String -> String) ~ a
      
      which is propagated up to the toplevel (see TcSimplify.tcSimplifyInferCheck).
      In the meantime `a' is zonked and quantified to form `evalRHS's signature.
      This has the *side effect* of also zonking the `a' in the deferred equality
      (which at this point is being handed around wrapped in an implication
      constraint).
      
      Finally, the equality (with the zonked `a') will be handed back to the
      simplifier by TcRnDriver.tcRnSrcDecls calling TcSimplify.tcSimplifyTop.
      If we zonk `a' with a regular type variable, we will have this regular type
      variable now floating around in the simplifier, which in many places assumes to
      only see proper TcTyVars.
      
      We can avoid this problem by zonking with a skolem.  The skolem is rigid
      (which we requirefor a quantified variable), but is still a TcTyVar that the
      simplifier knows how to deal with.
      cad764aa
  10. 18 Oct, 2007 1 commit
  11. 19 Oct, 2007 2 commits
  12. 18 Oct, 2007 8 commits
  13. 17 Oct, 2007 2 commits
  14. 18 Oct, 2007 2 commits
  15. 17 Oct, 2007 5 commits
  16. 25 Sep, 2007 1 commit
  17. 17 Oct, 2007 1 commit
  18. 16 Oct, 2007 5 commits
  19. 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