Changeset 3538

Show
Ignore:
Timestamp:
05/20/05 23:49:16 (4 years ago)
Author:
theorbtwo
svk:copy_cache_prev:
5107
Message:

More signatures. If I could fiture out a signature for mainCC in
src/Pugs/Compile/Haskell.hs that doesn't make the compiler croak, we could
turn off the option to not warn (and thus error, since we -Werror) on
missing signatures.

Files:
7 modified

Legend:

Unmodified
Added
Removed
  • inc/Module/Install/Pugs.pm

    r2841 r3538  
    165165    my $ghc_flags = "-H0 -L. -Lsrc -Lsrc/syck -Lsrc/pcre -I. -Isrc -Isrc/pcre -Isrc/syck"; 
    166166    $ghc_flags .= " -i. -isrc -isrc/pcre -isrc/syck -static "; 
    167     $ghc_flags .= " -Wall -Werror " 
     167    $ghc_flags .= " -Wall " 
    168168      unless $self->is_extension_build; 
    169     $ghc_flags .= " -fno-warn-missing-signatures -fno-warn-name-shadowing "; 
     169    $ghc_flags .= " -fno-warn-name-shadowing "; 
    170170    $ghc_flags .= " -I../../src -i../../src " 
    171171      if $self->is_extension_build; 
  • src/Main.hs

    r3383 r3538  
    8989        else run ["-"] 
    9090 
     91readStdin :: IO String 
    9192readStdin = do 
    9293    eof     <- isEOF 
  • src/Pugs/Embed.hs

    r3372 r3538  
    2525evalEmbedded "Parrot"  code = do 
    2626    evalParrot code 
    27 evalEmbedded "Haskell" code = do 
     27{- evalEmbedded "Haskell" code = do 
    2828    evalHaskell code 
    29     return () 
     29    return () -} 
    3030evalEmbedded "Perl5" code = do 
    3131    interp <- initPerl5 "" 
  • src/Pugs/Embed/Haskell.hs

    r2159 r3538  
    66#if !defined(PUGS_HAVE_HSPLUGINS) 
    77 
    8 evalHaskell :: String -> IO (Either String String) 
    9 evalHaskell _ = return $ Left "need hs-plugins for eval_haskell" 
     8import Pugs.AST 
     9 
     10evalHaskell :: String -> Eval Val 
     11evalHaskell _ = fail "need hs-plugins for eval_haskell" 
    1012 
    1113#else 
    1214 
    1315import qualified Eval 
     16import Pugs.AST 
    1417 
    15 {- Return is either (left) an error message, or (right) the return of the 
    16 eval) -} 
    17 evalHaskell :: String -> IO (Either String String) 
     18evalHaskell :: String -> Eval Val 
    1819evalHaskell code = do 
    1920    let imports = [] 
     
    2223    ret <- Eval.eval_ code imports [] [] [] 
    2324    case ret of 
    24         Right (Just x) -> return $ Right x 
    25         Right Nothing  -> return $ Left "Something strange happened" 
    26         Left x         -> return $ Left $ unlines x 
     25        Right (Just x) -> return x 
     26        Right Nothing  -> fail "Something strange happened" 
     27        Left x         -> fail $ unlines x 
    2728 
    2829#endif 
  • src/Pugs/Prim.hs

    r3532 r3538  
    472472op1 other   = \_ -> fail ("Unimplemented unaryOp: " ++ other) 
    473473 
     474op1Return :: Eval Val -> Eval Val 
    474475op1Return action = do 
    475476    depth <- asks envDepth 
     
    480481        _       -> fail $ "cannot return() from a " ++ pretty (subType sub) 
    481482 
     483op1Yield :: Eval Val -> Eval Val 
    482484op1Yield action = do 
    483485    depth <- asks envDepth 
     
    490492            action 
    491493 
     494op1ShiftOut :: Val -> Eval Val 
    492495op1ShiftOut v = shiftT . const $ do 
    493496    evl <- asks envEval 
  • src/Pugs/Prim/Eval.hs

    r3296 r3538  
    3232op1EvalHaskell cv = do 
    3333    str     <- fromVal cv :: Eval String 
    34     ret     <- liftIO (evalHaskell str) 
    35     glob    <- askGlobal 
    36     errSV   <- findSymRef "$!" glob 
    37     case ret of 
    38         Right str -> do 
    39             writeRef errSV VUndef 
    40             return $ VStr str 
    41         Left  err -> do 
    42             writeRef errSV (VStr err) 
    43             retEmpty 
     34    evalHaskell str 
    4435 
    4536opEval :: Maybe Bool -> String -> String -> Eval Val 
  • src/Pugs/Prim/List.hs

    r3501 r3538  
    102102        return $ if min_or_max (cmp > (0::VInt)) then a else b 
    103103 
     104op1Uniq :: Val -> Eval Val 
    104105op1Uniq v = do 
    105106    -- We want to have a real Haskell list