This project is mirrored from https://gitlab.haskell.org/ghc/ghc.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
  1. 20 Aug, 2014 34 commits
  2. 19 Aug, 2014 6 commits
    • Facundo Domínguez's avatar
      15faa0ec
    • Sergei Trofimovich's avatar
      validate: add simple CPU count autodetection · f3288900
      Sergei Trofimovich authored
      Summary: Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
      
      Test Plan: ran ./validate on linux
      
      Reviewers: austin
      
      Reviewed By: austin
      
      Subscribers: phaskell, simonmar, relrod, ezyang, carter
      
      Differential Revision: https://phabricator.haskell.org/D146
      f3288900
    • AndreasVoellmy's avatar
      rts/base: Fix #9423 · f9f89b78
      AndreasVoellmy authored
      Summary:
      Fix #9423.
      
      The problem in #9423 is caused when code invoked by `hs_exit()` waits
      on all foreign calls to return, but some IO managers are in `safe` foreign
      calls and do not return. The previous design signaled to the timer manager
      (via its control pipe) that it should "die" and when the timer manager
      returned to Haskell-land, the Haskell code in timer manager then signalled
      to the IO manager threads that they should return from foreign calls and
      `die`. Unfortunately, in the shutdown sequence the timer manager is unable
      to return to Haskell-land fast enough and so the code that signals to the
      IO manager threads (via their control pipes) is never executed and the IO
      manager threads remain out in the foreign calls.
      
      This patch solves this problem by having the RTS signal to all the IO
      manager threads (via their control pipes; and in addition to signalling
      to the timer manager thread) that they should shutdown (in `ioManagerDie()`
      in `rts/Signals.c`. To do this, we arrange for each IO manager thread to
      register its control pipe with the RTS (in `GHC.Thread.startIOManagerThread`).
      In addition, `GHC.Thread.startTimerManagerThread` registers its control pipe.
      These are registered via C functions `setTimerManagerControlFd` (in
      `rts/Signals.c`) and `setIOManagerControlFd` (in `rts/Capability.c`). The IO
      manager control pipe file descriptors are stored in a new field of the
      `Capability_ struct`.
      
      Test Plan: See the notes on #9423 to recreate the problem and to verify that it no longer occurs with the fix.
      
      Auditors: simonmar
      
      Reviewers: simonmar, edsko, ezyang, austin
      
      Reviewed By: austin
      
      Subscribers: phaskell, simonmar, ezyang, carter, relrod
      
      Differential Revision: https://phabricator.haskell.org/D129
      
      GHC Trac Issues: #9423, #9284
      f9f89b78
    • Joachim Breitner's avatar
      travis: Use hvr’s multi-ghc-PPA · 51a0b600
      Joachim Breitner authored
      51a0b600
    • thomie's avatar
      Check if file is present instead of directory · 7012ed85
      thomie authored
      
      
      Fixes #8886.
      
      Problem: any `sync-all` command that is run before the first succesfull
      `sync-all get` would trigger a false warning about an old `time` package
      being present.
      
      Cause: after cloning the ghc repository, the (empty) `libraries/time`
      directory is already present.
      
      Solution: check if the directory actually contains any of the `time`
      files. I picked the `LICENSE` file, since `boot` does so as well.
      Signed-off-by: default avatarAustin Seipp <austin@well-typed.com>
      7012ed85
    • archblob's avatar
      Correct checkStrictBinds for generalised type · 806d823e
      archblob authored
      
      
      See Trac #9140.
      
      Auditors: simonpj
      Signed-off-by: default avatarAustin Seipp <austin@well-typed.com>
      806d823e