1. 16 Feb, 2012 8 commits
  2. 14 Feb, 2012 6 commits
  3. 13 Feb, 2012 4 commits
    • Simon Marlow's avatar
      Revert "Don't add a bad import to the saved context." · 4a0973bb
      Simon Marlow authored
      This reverts commit e5272d9b.
      
      Reverting to fix validate regression, and pending a redesign of the
      changes.
      4a0973bb
    • Simon Marlow's avatar
      Revert "Have :load work under -XSafe in GHCi." · 1cbd950d
      Simon Marlow authored
      This reverts commit 5e9e07a3.
      
      Reverting to fix validate regression, and pending a redesign of the
      changes.
      1cbd950d
    • Simon Marlow's avatar
      c61b014d
    • Simon Marlow's avatar
      Allocate pinned object blocks from the nursery, not the global · 67f4ab7e
      Simon Marlow authored
      allocator.
      
      Prompted by a benchmark posted to parallel-haskell@haskell.org by
      Andreas Voellmy <andreas.voellmy@gmail.com>.  This program exhibits
      contention for the block allocator when run with -N2 and greater
      without the fix:
      
      {-# LANGUAGE MagicHash, UnboxedTuples, BangPatterns #-}
      module Main where
      
      import Control.Monad
      import Control.Concurrent
      import System.Environment
      import GHC.IO
      import GHC.Exts
      import GHC.Conc
      
      main = do
       [m] <- fmap (fmap read) getArgs
       n <- getNumCapabilities
       ms <- replicateM n newEmptyMVar
       sequence [ forkIO $ busyWorkerB (m `quot` n) >> putMVar mv () | mv <- ms ]
       mapM takeMVar ms
      
      busyWorkerB :: Int -> IO ()
      busyWorkerB n_loops = go 0
        where go !n | n >= n_loops = return ()
                    | otherwise    =
                do p <- (IO $ \s ->
                          case newPinnedByteArray# 1024# s      of
                            { (# s', mbarr# #) ->
                                 (# s', () #)
                            }
                        )
                   go (n+1)
      67f4ab7e
  4. 11 Feb, 2012 3 commits
  5. 10 Feb, 2012 12 commits
  6. 09 Feb, 2012 1 commit
  7. 08 Feb, 2012 1 commit
  8. 07 Feb, 2012 5 commits