1. 27 May, 2009 1 commit
  2. 26 May, 2009 1 commit
  3. 19 May, 2009 2 commits
  4. 18 May, 2009 1 commit
    • Ben.Lippmeier@anu.edu.au's avatar
      Split Reg into vreg/hreg and add register pairs · f9288086
      Ben.Lippmeier@anu.edu.au authored
       * The old Reg type is now split into VirtualReg and RealReg.
       * For the graph coloring allocator, the type of the register graph
         is now (Graph VirtualReg RegClass RealReg), which shows that it colors
         in nodes representing virtual regs with colors representing real regs.
         (as was intended)  
       * RealReg contains two contructors, RealRegSingle and RealRegPair,
         where RealRegPair is used to represent a SPARC double reg 
         constructed from two single precision FP regs. 
       * On SPARC we can now allocate double regs into an arbitrary register
         pair, instead of reserving some reg ranges to only hold float/double values. 
      f9288086
  5. 21 Apr, 2009 1 commit
  6. 27 May, 2009 5 commits
    • simonpj@microsoft.com's avatar
      Fix Trac #3221: renamer warnings for deriving clauses · 685f6314
      simonpj@microsoft.com authored
      This patch arranges to gather the variables used by 'deriving' clauses,
      so that unused bindings are correctly reported.
      685f6314
    • simonpj@microsoft.com's avatar
      Template Haskell: allow type splices · 389cca21
      simonpj@microsoft.com authored
      At last!  Trac #1476 and #3177
      
      This patch extends Template Haskell by allowing splices in
      types.  For example
      
        f :: Int -> $(burble 3)
      
      A type splice should work anywhere a type is expected.  This feature
      has been long requested, and quite a while ago I'd re-engineered the
      type checker to make it easier, but had never got around to finishing
      the job.  With luck, this does it.
      
      There's a ToDo in the HsSpliceTy case of RnTypes.rnHsType, where I
      am not dealing properly with the used variables; but that's awaiting
      the refactoring of the way we report unused names.
      
      
      389cca21
    • simonpj@microsoft.com's avatar
      Template Haskell: improve lifting for strings · 97a8fe87
      simonpj@microsoft.com authored
      When you have a (\s::String -> ....[| s |]....), the string 
      's' is lifted.  We used to get a chain of single-character 
      Cons nodes, correct but lots and lots of code.  
      
      This patch arranges to optimise that to a string literal. It does
      so in two places:
        a) In TcExpr, if we know that s::String, we generate liftString directly
        b) In DsMeta, if we find a list of character literals, we convert to
           a string.  This catches a few cases that (a) does not
      
      There an accompanying  patch in the template-haskell package, 
      adding Language.Haskell.TH.Syntax.liftString
      
      
      97a8fe87
    • simonpj@microsoft.com's avatar
    • simonpj@microsoft.com's avatar
      Comments about wiredInIds · e598b8f9
      simonpj@microsoft.com authored
      e598b8f9
  7. 26 May, 2009 1 commit
  8. 24 May, 2009 2 commits
  9. 20 May, 2009 2 commits
  10. 19 May, 2009 2 commits
    • Duncan Coutts's avatar
      When linking a shared library with --make, always do the link step · 8aaa9ef4
      Duncan Coutts authored
      Without -shared, the default target is a binary and in that case
      it makes sense for --make to not try and link a binary when there
      is no Main module. But for a shared library the user already has
      to specify -shared and there's no reason a shared lib should
      contain any Main module or main function.
      8aaa9ef4
    • Duncan Coutts's avatar
      Make -dynload sysdep mean to embed rpaths in shared libs as well as binaries · 527f52a7
      Duncan Coutts authored
      Previously it only did it for binaries. This was presumably on the
      theory that the binary could specify the rpath for all the libs.
      However when it is the shared lib that is the final product (ie to
      link into a bigger project) then we need the rpaths for the shared
      lib to be self-contianed.
      527f52a7
  11. 17 May, 2009 1 commit
  12. 15 May, 2009 2 commits
    • Duncan Coutts's avatar
      Set the soname when creating a shared lib · 6efacfe8
      Duncan Coutts authored
      It's still possible to override it, just use -optl-Wl,-soname, eg:
      ghc -shared -dynamic foo.o -o libfoo.so -optl-Wl,-soname,libbar.so
      6efacfe8
    • Duncan Coutts's avatar
      Keep C main separate from rts lib and link it in for standalone progs · fa00cc50
      Duncan Coutts authored
      Previously the object code for the C main function lived in the rts
      lib, however this is a problem when the rts is built as a shared lib.
      With Windows DLLs it always causes problems while on ELF systems it's a
      problem when the user decides to use their own C main function rather
      than a Haskell Main.main. So instead we now put main in it's own tiny
      little static lib libHSrtsmain.a which we install next to the rts libs.
      Whenever ghc links a program (without -no-hs-main) then it also links
      in -lHSrtsmain. For consistency we always do it this way now rather
      than trying to do it differently for static vs shared libraries.
      fa00cc50
  13. 14 May, 2009 1 commit
    • Duncan Coutts's avatar
      Remove old Windows-only implementation of keeping main outside the rts · 3d411991
      Duncan Coutts authored
      We now do it for all ways and for all platforms. This was a Windows-only
      version that only kept a separate Main.dyn_o for the dynamic linking case.
      It had to do that because Windows DLLs are stricter about unresolved symbols
      where as for ELF platforms we only run into the problem when we're not using
      a Haskell main function.
      3d411991
  14. 20 May, 2009 5 commits
  15. 19 May, 2009 2 commits
  16. 18 May, 2009 1 commit
  17. 15 May, 2009 2 commits
  18. 14 May, 2009 2 commits
  19. 13 May, 2009 4 commits
  20. 01 May, 2009 1 commit
    • Duncan Coutts's avatar
      Make ghc -dynamic imply -fPIC for C code · 431e40e1
      Duncan Coutts authored
      As is already the case for ghc -fPIC. This is needed because ghc -dynamic
      means to generate code that is capable of being linked to Haskell shared
      libs and for C code the equivalent is -fPIC. Normally C code does not need
      -fPIC merely to link to shared libs however Haskell shared libs do not
      follow common conventions. In particular the static data cannot be
      referenced statically because it cannot be copied by the static linker.
      The linker cannot copy them because we do not specify a .size for the
      _closure entries (in the .data section) though in principle we could.
      431e40e1
  21. 13 May, 2009 1 commit