From: simonmar Date: Tue, 12 Dec 2000 12:10:08 +0000 (+0000) Subject: [project @ 2000-12-12 12:10:08 by simonmar] X-Git-Tag: Approximately_9120_patches~3123 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=d6684fe7e4e40e54dd6237aab6b488307af8e17f;p=ghc-hetmet.git [project @ 2000-12-12 12:10:08 by simonmar] Treat an unhandled exception in the same way as a panic (i.e. the `impossible' happened), to make it clear that these really are compiler bugs. --- diff --git a/ghc/compiler/main/DriverUtil.hs b/ghc/compiler/main/DriverUtil.hs index 31808aa..e02b75d 100644 --- a/ghc/compiler/main/DriverUtil.hs +++ b/ghc/compiler/main/DriverUtil.hs @@ -1,5 +1,5 @@ ----------------------------------------------------------------------------- --- $Id: DriverUtil.hs,v 1.13 2000/12/11 14:42:21 sewardj Exp $ +-- $Id: DriverUtil.hs,v 1.14 2000/12/12 12:10:08 simonmar Exp $ -- -- Utils for the driver -- @@ -118,6 +118,9 @@ later = flip finally handleDyn :: Typeable ex => (ex -> IO a) -> IO a -> IO a handleDyn = flip catchDyn +handle :: (Exception -> IO a) -> IO a -> IO a +handle = flip Exception.catchAllIO + split :: Char -> String -> [String] split c s = case rest of [] -> [chunk] diff --git a/ghc/compiler/main/Main.hs b/ghc/compiler/main/Main.hs index 5786dec..40fed22 100644 --- a/ghc/compiler/main/Main.hs +++ b/ghc/compiler/main/Main.hs @@ -1,6 +1,6 @@ {-# OPTIONS -fno-warn-incomplete-patterns #-} ----------------------------------------------------------------------------- --- $Id: Main.hs,v 1.36 2000/12/11 16:42:26 sewardj Exp $ +-- $Id: Main.hs,v 1.37 2000/12/12 12:10:08 simonmar Exp $ -- -- GHC Driver program -- @@ -91,6 +91,9 @@ import Maybe -- Main loop main = + -- top-level exception handler: any unrecognised exception is a compiler bug. + handle (\exception -> panic (show exception)) $ do + -- all error messages are propagated as exceptions handleDyn (\dyn -> case dyn of PhaseFailed _phase code -> exitWith code