1. 10 Jul, 2008 10 commits
  2. 08 Jul, 2008 1 commit
    • Ian Lynagh's avatar
      Get rid of compat/ · 2002bc3d
      Ian Lynagh authored
      Compat.Unicode is not utils/Unicode in the compiler.
      We build the hpc package with the stage1 compiler.
      Nothing else in the compat package was still used.
      2002bc3d
  3. 03 Jul, 2008 1 commit
  4. 23 Jun, 2008 1 commit
  5. 16 Jun, 2008 3 commits
  6. 14 Jun, 2008 3 commits
  7. 11 Jun, 2008 1 commit
  8. 03 Jun, 2008 1 commit
  9. 28 May, 2008 1 commit
    • Simon Marlow's avatar
      Use MD5 checksums for recompilation checking (fixes #1372, #1959) · 526c3af1
      Simon Marlow authored
      This is a much more robust way to do recompilation checking.  The idea
      is to create a fingerprint of the ABI of an interface, and track
      dependencies by recording the fingerprints of ABIs that a module
      depends on.  If any of those ABIs have changed, then we need to
      recompile.
      
      In bug #1372 we weren't recording dependencies on package modules,
      this patch fixes that by recording fingerprints of package modules
      that we depend on.  Within a package there is still fine-grained
      recompilation avoidance as before.
      
      We currently use MD5 for fingerprints, being a good compromise between
      efficiency and security.  We're not worried about attackers, but we
      are worried about accidental collisions.
      
      All the MD5 sums do make interface files a bit bigger, but compile
      times on the whole are about the same as before.  Recompilation
      avoidance should be a bit more accurate than in 6.8.2 due to fixing
      #1959, especially when using -O.
      526c3af1
  10. 08 Apr, 2008 1 commit
    • Simon Marlow's avatar
      Import libffi-3.0.4, and use it to provide FFI support in GHCi · e0fcf61d
      Simon Marlow authored
      This replaces the hand-rolled architecture-specific FFI support in
      GHCi with the standard libffi as used in GCJ, Python and other
      projects.  I've bundled the complete libffi-3.0.4 tarball in the
      source tree in the same way as we do for GMP, the difference being
      that we always build and install our own libffi regardless of whether
      there's one on the system (it's small, and we don't want
      dependency/versioning headaches).
      
      In particular this means that unregisterised builds will now have a
      fully working GHCi including FFI out of the box, provided libffi
      supports the platform.
      
      There is also code in the RTS to use libffi in place of
      rts/Adjustor.c, but it is currently not enabled if we already have
      support in Adjustor.c for the current platform.  We need to assess the
      performance impact before using libffi here too (in GHCi we don't care
      too much about performance).
      e0fcf61d
  11. 16 Mar, 2008 2 commits
  12. 09 Mar, 2008 1 commit
    • rl@cse.unsw.edu.au's avatar
      Remove ndpFlatten · e415eeaf
      rl@cse.unsw.edu.au authored
      This patch removes the ndpFlatten directory and the -fflatten static flag.
      This code has never worked and has now been superceded by vectorisation.
      e415eeaf
  13. 20 Feb, 2008 1 commit
  14. 21 Feb, 2008 1 commit
  15. 10 Feb, 2008 3 commits
  16. 04 Feb, 2008 1 commit
    • Simon Marlow's avatar
      Support for using libffi to implement FFI calls in GHCi (#631) · 937eb1f1
      Simon Marlow authored
      This means that an unregisterised build on a platform not directly
      supported by GHC can now have full FFI support using libffi.
      
      Also in this commit:
      
       - use PrimRep rather than CgRep to describe FFI args in the byte
         code generator.  No functional changes, but PrimRep is more correct.
      
       - change TyCon.sizeofPrimRep to primRepSizeW, which is more useful
      937eb1f1
  17. 25 Jan, 2008 1 commit
  18. 23 Jan, 2008 1 commit
  19. 21 Jan, 2008 1 commit
  20. 10 Jan, 2008 1 commit
  21. 03 Jan, 2008 1 commit
    • Simon Marlow's avatar
      Optionally use libffi to implement 'foreign import "wrapper"' (#793) · 5123ae93
      Simon Marlow authored
      To enable this, set UseLibFFI=YES in mk/build.mk.  
      
      The main advantage here is that this reduces the porting effort for
      new platforms: libffi works on more architectures than our current
      adjustor code, and it is probably more heavily tested.  We could
      potentially replace our existing code, but since it is probably faster
      than libffi (just a guess, I'll measure later) and is already working,
      it doesn't seem worthwhile.
      
      Right now, you must have libffi installed on your system.  I used the
      one supplied by Debian/Ubuntu.
      5123ae93
  22. 01 Jan, 2008 1 commit
  23. 27 Nov, 2007 1 commit
  24. 16 Nov, 2007 1 commit