1. 02 Jun, 2008 4 commits
  2. 30 May, 2008 1 commit
    • Simon Marlow's avatar
      Fix a bug to do with recursive modules in one-shot mode · d83e1ac4
      Simon Marlow authored
      The problem was that when loading interface files in checkOldIface, we
      were not passing the If monad the mutable variable for use when
      looking up entities in the *current* module, with the result that the
      knots wouldn't be tied properly, and some instances of TyCons would
      be incorrectly abstract.
      This bug has subtle effects: for example, recompiling a module without
      making any changes might lead to a slightly different result (noticed
      due to the new interface-file fingerprints).  The bug doesn't lead to
      any direct failures that we're aware of.
  3. 29 May, 2008 1 commit
    • dias@eecs.harvard.edu's avatar
      Replacing copyins and copyouts with data-movement instructions · 0d80489c
      dias@eecs.harvard.edu authored
      o Moved BlockId stuff to a new file to avoid module recursion
      o Defined stack areas for parameter-passing locations and spill slots
      o Part way through replacing copy in and copy out nodes
        - added movement instructions for stack pointer
        - added movement instructions for call and return parameters
          (but not with the proper calling conventions)
      o Inserting spills and reloads for proc points is now procpoint-aware
        (it was relying on the presence of a CopyIn node as a proxy for
         procpoint knowledge)
      o Changed ZipDataflow to expect AGraphs (instead of being polymorphic in
         the type of graph)
  4. 30 May, 2008 2 commits
  5. 29 May, 2008 4 commits
  6. 28 May, 2008 1 commit
  7. 29 May, 2008 1 commit
    • dias@eecs.harvard.edu's avatar
      Cmm back end upgrades · 25628e27
      dias@eecs.harvard.edu authored
      Several changes in this patch, partially bug fixes, partially new code:
      o bug fixes in ZipDataflow
         - added some checks to verify that facts converge
         - removed some erroneous checks of convergence on entry nodes
         - added some missing applications of transfer functions
      o changed dataflow clients to use ZipDataflow, making ZipDataflow0 obsolete
      o eliminated DFA monad (no need for separate analysis and rewriting monads with ZipDataflow)
      o started stack layout changes
         - no longer generating CopyIn and CopyOut nodes (not yet fully expunged though)
         - still not using proper calling conventions
      o simple new optimizations:
         - common block elimination
            -- have not yet tried to move the Adams opt out of CmmProcPointZ
         - block concatenation
      o piped optimization fuel up to the HscEnv
         - can be limited by a command-line flag
         - not tested, and probably not yet properly used by clients
      o added unique supply to FuelMonad, also lifted unique supply to DFMonad
  8. 27 May, 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
      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.
  10. 23 May, 2008 1 commit
  11. 27 May, 2008 1 commit
  12. 28 May, 2008 1 commit
  13. 26 May, 2008 3 commits
  14. 01 May, 2008 1 commit
  15. 23 May, 2008 1 commit
  16. 21 May, 2008 2 commits
  17. 22 May, 2008 1 commit
  18. 21 May, 2008 2 commits
    • simonpj@microsoft.com's avatar
      Fix Trac #1061: refactor handling of default methods · 24f3ffda
      simonpj@microsoft.com authored
      In an instance declaration, omitted methods get a definition that
      uses the default method.  We used to generate source code and feed it
      to the type checker.  But tc199 shows that is a bad idea -- see
      Note [Default methods in instances] in TcClassDcl.
      So this patch refactors to insteadl all us to generate the 
      *post* typechecked code directly for default methods.
    • simonpj@microsoft.com's avatar
      Comment typo · 08ffc907
      simonpj@microsoft.com authored
  19. 20 May, 2008 2 commits
  20. 15 May, 2008 1 commit
    • simonpj@microsoft.com's avatar
      Tuples cannot contain unboxed types · 48565ca8
      simonpj@microsoft.com authored
      This bug allowed, for example
        f = let x = ( 1#, 'x' ) in x
      which is ill-typed because you can't put an unboxed value in a tuple.
      Core Lint fails on this program.
      The patch makes the program be rejcted up-front.
  21. 20 May, 2008 1 commit
  22. 17 May, 2008 1 commit
  23. 19 May, 2008 4 commits
  24. 20 May, 2008 2 commits