1. 20 Nov, 2007 4 commits
    • Simon Marlow's avatar
      Move file locking into the RTS, fixing #629, #1109 · 1d026619
      Simon Marlow authored
      File locking (of the Haskell 98 variety) was previously done using a
      static table with linear search, which had two problems: the array had
      a fixed size and was sometimes too small (#1109), and performance of
      lockFile/unlockFile was suboptimal due to the linear search.
      Also the algorithm failed to count readers as required by Haskell 98
      (#629).
      
      Now it's done using a hash table (provided by the RTS).  Furthermore I
      avoided the extra fstat() for every open file by passing the dev_t and
      ino_t into lockFile.  This and the improvements to the locking
      algorithm result in a healthy 20% or so performance increase for
      opening/closing files (see openFile008 test).
      1d026619
    • simonpj@microsoft.com's avatar
      FIX Trac #1825: standalone deriving Typeable · f22f248b
      simonpj@microsoft.com authored
      Standalone deriving of typeable now requires you to say
      	instance Typeable1 Maybe
      which is exactly the shape of instance decl that is generated
      by a 'deriving( Typeable )' clause on the data type decl.
      
      This is a bit horrid, but it's the only consistent way, at least
      for now.  If you say something else, the error messages are helpful.
      
      MERGE to 6.8 branch
      f22f248b
    • simonpj@microsoft.com's avatar
      FIX #1715: egregious bug in ifaceDeclSubBndrs · d5659c2d
      simonpj@microsoft.com authored
      ifaceDeclSubBndrs didn't have an IfaceSyn case; but with type
      families an IfaceSyn can introduce subordinate binders.  Result:
      chaos.
      
      The fix is easy though.  Merge to 6.8 branch.
      
      d5659c2d
    • Simon Marlow's avatar
      Always do 'setup makefile' before building each library · 5ca2e94e
      Simon Marlow authored
      This forces preprocessing to happen, which is necessary if any of the
      .hsc files have been modified.  Without this change, a 'setup
      makefile' would be required by hand after a .hsc file changed.
      Fortunately 'setup makefile' isn't much extra work, and I've made it
      not overwrite GNUmakefile if it hasn't changed, which avoids
      recalculating the dependencies each time.
      5ca2e94e
  2. 08 Nov, 2007 1 commit
  3. 20 Nov, 2007 2 commits
  4. 19 Nov, 2007 4 commits
  5. 18 Nov, 2007 8 commits
  6. 17 Nov, 2007 5 commits
  7. 16 Nov, 2007 5 commits
  8. 19 Nov, 2007 3 commits
  9. 17 Nov, 2007 1 commit
  10. 16 Nov, 2007 7 commits