Skip to content

GhcException for non-English messages #172

@ed-o-saurus

Description

@ed-o-saurus

If the locale field LC_MESSAGES is set to a non-English language, Hint produces an GhcException.

The following demonstrates the bug. If LC_MESSAGES is set to "C" or "en_US.UTF-8", the program completes normally. Otherwise, there is an error. This program assumes that the system on which it's running supports the fr_FR locale. A list of available locales can be obtained by running locale -a on the command-line.

import System.Locale.SetLocale (setLocale, Category(LC_MESSAGES))
import Language.Haskell.Interpreter (InterpreterError (GhcException, NotAllowed, UnknownError, WontCompile), errMsg, runInterpreter)

main = do
--    locale <- setLocale LC_MESSAGES $ Just "C"           -- This works
    locale <- setLocale LC_MESSAGES $ Just "fr_FR.UTF-8"   -- This fails
    case locale of
       Nothing -> putStrLn "Unable to set LC_MESSAGES"
       Just lc_messages -> putStrLn $ "LC_MESSAGES = " ++ lc_messages
    r <- runInterpreter $ return ()
    case r of
        Left (UnknownError msg)    -> putStrLn $ "UnknownError : " ++ msg
        Left (WontCompile [])      -> putStrLn "WontCompile"
        Left (WontCompile (err:_)) -> putStrLn $ "WontCompile : " ++ (errMsg err)
        Left (NotAllowed msg)      -> putStrLn $ "NotAllowed : " ++ msg
        Left (GhcException msg)    -> putStrLn $ "GhcException : " ++ msg
        Right ()                   -> putStrLn "Success"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions