Changeset 3924
- Timestamp:
- 05/26/05 23:54:07 (4 years ago)
- svk:copy_cache_prev:
- 5515
- Location:
- src
- Files:
-
- 8 modified
-
Pugs/AST/Internals.hs (modified) (1 diff)
-
Pugs/Embed/Perl5.hs (modified) (4 diffs)
-
Pugs/Prim.hs (modified) (1 diff)
-
Pugs/Run/Perl5.hs (modified) (2 diffs)
-
perl5/perl5.c (modified) (1 diff)
-
perl5/perl5.h (modified) (1 diff)
-
perl5/pugsembed.c (modified) (1 diff)
-
perl5/pugsembed.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/AST/Internals.hs
r3920 r3924 437 437 fromVal (VStr str) = liftIO $ vstrToSV str 438 438 fromVal (VInt int) = liftIO $ vintToSV int 439 fromVal v = liftIO $ valToSV v 439 fromVal (VRat int) = liftIO $ vnumToSV int 440 fromVal (VNum int) = liftIO $ vnumToSV int 441 fromVal v = liftIO $ mkValRef v 440 442 441 443 showNum :: Show a => a -> String -
src/Pugs/Embed/Perl5.hs
r3920 r3924 35 35 svToVal = constFail 36 36 37 valToSV:: a -> IO PerlSV38 valToSV= constFail37 mkValRef :: a -> IO PerlSV 38 mkValRef = constFail 39 39 40 40 vstrToSV :: String -> IO PerlSV 41 41 vstrToSV = constFail 42 42 43 vintToSV :: Integer-> IO PerlSV43 vintToSV :: (Integral a) => a -> IO PerlSV 44 44 vintToSV = constFail 45 46 vnumToSV :: (Real a) => a -> IO PerlSV 47 vnumToSV = constFail 45 48 46 49 callPerl5 :: String -> [PerlSV] -> CInt -> IO PerlSV … … 91 94 foreign import ccall "perl5.h perl5_newSViv" 92 95 perl5_newSViv :: CInt -> IO PerlSV 96 foreign import ccall "perl5.h perl5_newSVnv" 97 perl5_newSVnv :: CDouble -> IO PerlSV 93 98 foreign import ccall "perl5.h perl5_call" 94 99 perl5_call :: CString -> CInt -> Ptr PerlSV -> CInt -> IO PerlSV … … 128 133 deRefStablePtr (castPtrToStablePtr ptr) 129 134 130 valToSV:: a -> IO PerlSV131 valToSVx = do135 mkValRef :: a -> IO PerlSV 136 mkValRef x = do 132 137 ptr <- fmap castStablePtrToPtr $ newStablePtr x 133 138 pugs_MkValRef ptr … … 136 141 vstrToSV str = withCString str perl5_newSVpv 137 142 138 vintToSV :: Integer-> IO PerlSV143 vintToSV :: (Integral a) => a -> IO PerlSV 139 144 vintToSV int = perl5_newSViv (fromIntegral int) 145 146 vnumToSV :: (Real a) => a -> IO PerlSV 147 vnumToSV int = perl5_newSVnv (realToFrac int) 140 148 141 149 callPerl5 :: String -> [PerlSV] -> CInt -> IO PerlSV -
src/Pugs/Prim.hs
r3919 r3924 245 245 env <- ask 246 246 tryIO undef $ do 247 envSV <- valToSV(VControl $ ControlEnv env)247 envSV <- mkValRef (VControl $ ControlEnv env) 248 248 sv <- evalPerl5 str envSV $ enumCxt (envContext env) 249 249 return $ PerlSV sv -
src/Pugs/Run/Perl5.hs
r3922 r3924 11 11 import Foreign.C.Types 12 12 import Foreign.C.String 13 14 foreign export ccall "pugs_ValToSv" 15 valToSv :: PugsVal -> IO PerlSV 13 16 14 17 foreign export ccall "pugs_MkSvRef" … … 27 30 mkVal val = fmap castStablePtrToPtr $ newStablePtr val 28 31 32 deVal :: PugsVal -> IO Val 33 deVal ptr = deRefStablePtr (castPtrToStablePtr ptr) 34 35 valToSv :: PugsVal -> IO PerlSV 36 valToSv ptr = do 37 val <- deVal ptr 38 case val of 39 PerlSV sv -> return sv 40 _ -> mkValRef val 41 29 42 mkSvRef :: PerlSV -> IO PugsVal 30 43 mkSvRef = mkVal . PerlSV -
src/perl5/perl5.c
r3919 r3924 160 160 161 161 SV * 162 perl5_newSVnv ( double iv ) 163 { 164 return(newSVnv(iv)); 165 } 166 167 SV * 162 168 perl5_call(char *subname, int argc, SV** args, int cxt) 163 169 { -
src/perl5/perl5.h
r3919 r3924 10 10 SV * perl5_newSVpv ( char * pv ); 11 11 SV * perl5_newSViv ( int iv ); 12 SV * perl5_newSVnv ( double iv ); 12 13 SV * perl5_call(char *subname, int argc, SV** args, int cxt); 13 14 bool perl5_can(SV *inv, char *subname); -
src/perl5/pugsembed.c
r3921 r3924 20 20 21 21 Val *pugs_Eval ( char *code ) { return NULL; } 22 23 22 Val *pugs_Apply ( Val *sub, Val *inv, Val **args ) { return NULL; } 24 25 SV *pugs_ValToSv ( Val *val ) { return NULL; } -
src/perl5/pugsembed.h
r3921 r3924 16 16 extern Val *pugs_PvToVal ( char *pv ); 17 17 18 PUGS_EXTERN SV *pugs_ValToSv ( Val *val );19 20 18 Val *pugs_SvToVal ( SV *sv ); 21 19 SV *pugs_MkValRef ( Val *val ); 22 20 23 21 extern Val *pugs_MkSvRef ( SV *sv ); 22 extern SV *pugs_ValToSv ( Val *val ); 23
