X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Flib%2Fstd%2FSystem.lhs;h=61955b066c2c0ad93914f04ec4949d4fc49d8768;hb=5ee90f9b922e51ac6613d860e728266e9bf4c84f;hp=ab4f9d9251676e2895eb6a8b2983018d1813c091;hpb=03d3a5113ae074809479c96ee08b18cb5fb80b39;p=ghc-hetmet.git diff --git a/ghc/lib/std/System.lhs b/ghc/lib/std/System.lhs index ab4f9d9..61955b0 100644 --- a/ghc/lib/std/System.lhs +++ b/ghc/lib/std/System.lhs @@ -137,6 +137,8 @@ exitWith (ExitFailure n) primExit n ioError (IOError Nothing OtherError "exitWith" "exit should not return") +-- NOTE: shutdownHaskellAndExit must be called "safe", because it *can* +-- re-enter Haskell land through finalizers. foreign import ccall "shutdownHaskellAndExit" primExit :: Int -> IO () exitFailure :: IO a @@ -188,22 +190,21 @@ unpackProgName argv -- -- Suitable for use with Hugs 98 ----------------------------------------------------------------------------- -import Prelude -import privileged Prelude ( primGetRawArgs - , primGetEnv - , prelCleanupAfterRunAction - , copy_String_to_cstring - , readIORef - , nh_stderr - , nh_stdout - , nh_stdin - , nh_exitwith - , nh_flush - , nh_close - , nh_system - , nh_free - , nh_getPID - ) +import PrelPrim ( primGetRawArgs + , primGetEnv + , prelCleanupAfterRunAction + , copy_String_to_cstring + , readIORef + , nh_stderr + , nh_stdout + , nh_stdin + , nh_exitwith + , nh_flush + , nh_close + , nh_system + , nh_free + , nh_getPID + ) data ExitCode = ExitSuccess | ExitFailure Int @@ -211,7 +212,7 @@ data ExitCode = ExitSuccess | ExitFailure Int getArgs :: IO [String] getArgs = primGetRawArgs >>= \rawargs -> - return (drop 1 (dropWhile (/= "--") rawargs)) + return (tail rawargs) getProgName :: IO String getProgName = primGetRawArgs >>= \rawargs ->