X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Futils%2FPanic.lhs;h=2a5d3a417482f6b5aff0cadafc263ba0c4fd9ea2;hb=423d477bfecd490de1449c59325c8776f91d7aac;hp=efb3c6a72a2a479c76d923b9229f4a6366cb8fda;hpb=1ffeecdb62fc6d91348b5d22c61111bf65fa76ec;p=ghc-hetmet.git diff --git a/ghc/compiler/utils/Panic.lhs b/ghc/compiler/utils/Panic.lhs index efb3c6a..2a5d3a4 100644 --- a/ghc/compiler/utils/Panic.lhs +++ b/ghc/compiler/utils/Panic.lhs @@ -16,30 +16,33 @@ module Panic showException, showGhcException, tryMost, installSignalHandlers, -#if __GLASGOW_HASKELL__ <= 408 - catchJust, ioErrors, throwTo, -#endif + catchJust, tryJust, ioErrors, throwTo, ) where #include "HsVersions.h" +#include "../includes/ghcconfig.h" import Config import FastTypes -#if __GLASGOW_HASKELL__ > 504 +#ifndef mingw32_HOST_OS +# if __GLASGOW_HASKELL__ > 504 import System.Posix.Signals -#else +# else import Posix ( Handler(Catch), installHandler, sigINT, sigQUIT ) -#endif +# endif /* GHC > 504 */ -#ifndef mingw32_HOST_OS import CONCURRENT ( myThreadId ) +#endif /* mingw32_HOST_OS */ # if __GLASGOW_HASKELL__ < 500 import EXCEPTION ( raiseInThread ) # else import EXCEPTION ( throwTo ) -# endif +# endif /* GHC < 500 */ + +#if __GLASGOW_HASKELL__ > 408 +import EXCEPTION ( catchJust, tryJust, ioErrors ) #endif import DYNAMIC @@ -118,10 +121,16 @@ showGhcException (Panic s) ++ "to glasgow-haskell-bugs@haskell.org,\n" ++ "or http://sourceforge.net/projects/ghc/.\n\n") +#if __GLASGOW_HASKELL__ < 603 +myMkTyConApp = mkAppTy +#else +myMkTyConApp = mkTyConApp +#endif + ghcExceptionTc = mkTyCon "GhcException" {-# NOINLINE ghcExceptionTc #-} instance Typeable GhcException where - typeOf _ = mkAppTy ghcExceptionTc [] + typeOf _ = myMkTyConApp ghcExceptionTc [] \end{code} Panics and asserts. @@ -172,6 +181,7 @@ Compatibility stuff: \begin{code} #if __GLASGOW_HASKELL__ <= 408 catchJust = Exception.catchIO +tryJust = Exception.tryIO ioErrors = Exception.justIoErrors throwTo = Exception.raiseInThread #endif