Changeset 3538
- Timestamp:
- 05/20/05 23:49:16 (4 years ago)
- svk:copy_cache_prev:
- 5107
- Files:
-
- 7 modified
-
inc/Module/Install/Pugs.pm (modified) (1 diff)
-
src/Main.hs (modified) (1 diff)
-
src/Pugs/Embed.hs (modified) (1 diff)
-
src/Pugs/Embed/Haskell.hs (modified) (2 diffs)
-
src/Pugs/Prim.hs (modified) (3 diffs)
-
src/Pugs/Prim/Eval.hs (modified) (1 diff)
-
src/Pugs/Prim/List.hs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
inc/Module/Install/Pugs.pm
r2841 r3538 165 165 my $ghc_flags = "-H0 -L. -Lsrc -Lsrc/syck -Lsrc/pcre -I. -Isrc -Isrc/pcre -Isrc/syck"; 166 166 $ghc_flags .= " -i. -isrc -isrc/pcre -isrc/syck -static "; 167 $ghc_flags .= " -Wall -Werror"167 $ghc_flags .= " -Wall " 168 168 unless $self->is_extension_build; 169 $ghc_flags .= " -fno-warn- missing-signatures -fno-warn-name-shadowing ";169 $ghc_flags .= " -fno-warn-name-shadowing "; 170 170 $ghc_flags .= " -I../../src -i../../src " 171 171 if $self->is_extension_build; -
src/Main.hs
r3383 r3538 89 89 else run ["-"] 90 90 91 readStdin :: IO String 91 92 readStdin = do 92 93 eof <- isEOF -
src/Pugs/Embed.hs
r3372 r3538 25 25 evalEmbedded "Parrot" code = do 26 26 evalParrot code 27 evalEmbedded "Haskell" code = do27 {- evalEmbedded "Haskell" code = do 28 28 evalHaskell code 29 return () 29 return () -} 30 30 evalEmbedded "Perl5" code = do 31 31 interp <- initPerl5 "" -
src/Pugs/Embed/Haskell.hs
r2159 r3538 6 6 #if !defined(PUGS_HAVE_HSPLUGINS) 7 7 8 evalHaskell :: String -> IO (Either String String) 9 evalHaskell _ = return $ Left "need hs-plugins for eval_haskell" 8 import Pugs.AST 9 10 evalHaskell :: String -> Eval Val 11 evalHaskell _ = fail "need hs-plugins for eval_haskell" 10 12 11 13 #else 12 14 13 15 import qualified Eval 16 import Pugs.AST 14 17 15 {- Return is either (left) an error message, or (right) the return of the 16 eval) -} 17 evalHaskell :: String -> IO (Either String String) 18 evalHaskell :: String -> Eval Val 18 19 evalHaskell code = do 19 20 let imports = [] … … 22 23 ret <- Eval.eval_ code imports [] [] [] 23 24 case ret of 24 Right (Just x) -> return $ Rightx25 Right Nothing -> return $ Left"Something strange happened"26 Left x -> return $ Left$ unlines x25 Right (Just x) -> return x 26 Right Nothing -> fail "Something strange happened" 27 Left x -> fail $ unlines x 27 28 28 29 #endif -
src/Pugs/Prim.hs
r3532 r3538 472 472 op1 other = \_ -> fail ("Unimplemented unaryOp: " ++ other) 473 473 474 op1Return :: Eval Val -> Eval Val 474 475 op1Return action = do 475 476 depth <- asks envDepth … … 480 481 _ -> fail $ "cannot return() from a " ++ pretty (subType sub) 481 482 483 op1Yield :: Eval Val -> Eval Val 482 484 op1Yield action = do 483 485 depth <- asks envDepth … … 490 492 action 491 493 494 op1ShiftOut :: Val -> Eval Val 492 495 op1ShiftOut v = shiftT . const $ do 493 496 evl <- asks envEval -
src/Pugs/Prim/Eval.hs
r3296 r3538 32 32 op1EvalHaskell cv = do 33 33 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 44 35 45 36 opEval :: Maybe Bool -> String -> String -> Eval Val -
src/Pugs/Prim/List.hs
r3501 r3538 102 102 return $ if min_or_max (cmp > (0::VInt)) then a else b 103 103 104 op1Uniq :: Val -> Eval Val 104 105 op1Uniq v = do 105 106 -- We want to have a real Haskell list
