1. 10 Apr, 2008 4 commits
  2. 11 Apr, 2008 1 commit
  3. 10 Apr, 2008 1 commit
    • chevalier@alum.wellesley.edu's avatar
      Extend genprimopcode to print primop types for ext-core · 07d1b116
      chevalier@alum.wellesley.edu authored
      I added a new flag, --make-ext-core-source, to genprimopcode. It prints out the
      type information for primops that the External Core typechecker needs. This
      replaces the old mechanism where the ext-core tools had a hard-wired Prims
      module that could get out of sync with the old primops.txt. Now, that won't happen.
      07d1b116
  4. 09 Apr, 2008 3 commits
  5. 10 Apr, 2008 1 commit
    • chevalier@alum.wellesley.edu's avatar
      Another round of External Core fixes · 4c6a3f78
      chevalier@alum.wellesley.edu authored
      With this patch, GHC should now be printing External Core in a format
      that a stand-alone program can parse and typecheck. Major bug fixes:
      
      - The printer now handles qualified/unqualified declarations correctly
         (particularly data constructor declarations)
      - It prints newtype declarations with enough information to
        typecheck code that uses the induced coercions (this required a
      syntax change)
      - It expands type synonyms correctly
       
      Documentation and external tool patches will follow.
      4c6a3f78
  6. 08 Apr, 2008 3 commits
    • andy@galois.com's avatar
    • andy@galois.com's avatar
    • 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
  7. 07 Apr, 2008 2 commits
  8. 03 Apr, 2008 1 commit
  9. 07 Apr, 2008 2 commits
  10. 03 Mar, 2008 1 commit
    • chak@cse.unsw.edu.au.'s avatar
      Remove GADT refinements, part 4 · bf1bf9fb
      chak@cse.unsw.edu.au. authored
      - MkId.mkRecordSelId only used a special case of refineGadt, which doesn't
        need full unification.  That special case is now implemented as 
        TcGadt.matchRefine and TcGadt.refineGadt can finally go.
      bf1bf9fb
  11. 06 Apr, 2008 2 commits
  12. 05 Apr, 2008 1 commit
    • mnislaih's avatar
      Virtualize the cwd in GHCi · 24f608a8
      mnislaih authored
      This fixes the issue where :list would stop working if the
      program being debugged side-effected the working directory,
      and should prevent other similar issues
      24f608a8
  13. 19 Dec, 2007 1 commit
  14. 04 Apr, 2008 1 commit
    • simonpj@microsoft.com's avatar
      Fix Trac #2188: scoping in TH declarations quotes · a27c5f77
      simonpj@microsoft.com authored
      This patch fixes a rather tiresome issue, namely the fact that
      a TH declaration quote *shadows* bindings in outer scopes:
      
        f g = [d| f :: Int
                  f = g
        	    g :: Int
                  g = 4 |]
      
      Here, the outer bindings for 'f' (top-level) and 'g' (local)
      are shadowed, and the inner bindings for f,g should not be
      reported as duplicates.  (Remember they are top-level bindings.)
      
      The actual bug was that we'd forgotten to delete 'g' from the
      LocalRdrEnv, so the type sig for 'g' was binding to the outer
      'g' not the inner one.
      a27c5f77
  15. 03 Apr, 2008 3 commits
  16. 02 Apr, 2008 3 commits
    • simonpj@microsoft.com's avatar
      Fix Trac #2137: report correct location for shadowed binding · 6e55d34a
      simonpj@microsoft.com authored
      The error message generation for a shadowed binding was
      plain wrong, at least where the shadowed binding isn't
      top-level.  Just a typo really -- the fix is trivial.
      6e55d34a
    • simonpj@microsoft.com's avatar
      Fix Trac #2141: invalid record update · 1c9ffbe6
      simonpj@microsoft.com authored
      See Note [Record field lookup] in TcEnv.  The fix here
      is quite straightforward.
      1c9ffbe6
    • Simon Marlow's avatar
      Do not #include external header files when compiling via C · c245355e
      Simon Marlow authored
      This has several advantages:
      
       - -fvia-C is consistent with -fasm with respect to FFI declarations:
         both bind to the ABI, not the API.
      
       - foreign calls can now be inlined freely across module boundaries, since
         a header file is not required when compiling the call.
      
       - bootstrapping via C will be more reliable, because this difference
         in behavour between the two backends has been removed.
      
      There is one disadvantage:
      
       - we get no checking by the C compiler that the FFI declaration
         is correct.
      
      So now, the c-includes field in a .cabal file is always ignored by
      GHC, as are header files specified in an FFI declaration.  This was
      previously the case only for -fasm compilations, now it is also the
      case for -fvia-C too.
      c245355e
  17. 30 Mar, 2008 1 commit
  18. 29 Mar, 2008 9 commits