Changeset 3921

Show
Ignore:
Timestamp:
05/26/05 23:40:37 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
5482
Message:

* iv/pv/nv to Val promotion done.

Location:
src
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Run/Perl5.hs

    r3920 r3921  
    1 {-# OPTIONS_GHC -fglasgow-exts -cpp -fno-warn-unused-imports #-} 
     1{-# OPTIONS_GHC -fglasgow-exts -cpp -fno-warn-unused-binds -fno-warn-unused-imports #-} 
    22 
    33module Pugs.Run.Perl5 () where 
     
    99import Pugs.Embed.Perl5 
    1010import Foreign 
     11import Foreign.C.Types 
     12import Foreign.C.String 
    1113 
    1214foreign export ccall "pugs_MkSvRef" 
    1315    mkSvRef :: PerlSV -> IO PugsVal 
    1416 
     17foreign export ccall "pugs_IvToVal" 
     18    ivToVal :: CInt -> IO PugsVal 
     19 
     20foreign export ccall "pugs_NvToVal" 
     21    nvToVal :: CDouble -> IO PugsVal 
     22 
     23foreign export ccall "pugs_PvToVal" 
     24    pvToVal :: CString -> IO PugsVal 
     25 
     26mkVal :: Val -> IO PugsVal 
     27mkVal val = fmap castStablePtrToPtr $ newStablePtr val 
     28 
    1529mkSvRef :: PerlSV -> IO PugsVal 
    16 mkSvRef sv = fmap castStablePtrToPtr $ newStablePtr (PerlSV sv) 
     30mkSvRef = mkVal . PerlSV 
     31 
     32ivToVal :: CInt -> IO PugsVal 
     33ivToVal = mkVal . VInt . fromIntegral 
     34 
     35nvToVal :: CDouble -> IO PugsVal 
     36nvToVal = mkVal . VNum . realToFrac 
     37 
     38pvToVal :: CString -> IO PugsVal 
     39pvToVal = (mkVal . VStr =<<) . peekCString 
    1740 
    1841#endif 
  • src/perl5/pugsembed.c

    r3920 r3921  
    2323Val *pugs_Apply ( Val *sub, Val *inv, Val **args ) { return NULL; } 
    2424 
    25 Val *pugs_IvToVal ( IV iv ) { return NULL; } 
    26  
    27 Val *pugs_NvToVal ( NV iv ) { return NULL; } 
    28  
    29 Val *pugs_PvToVal ( char *pv ) { return NULL; } 
    30  
    3125SV  *pugs_ValToSv ( Val *val ) { return NULL; } 
  • src/perl5/pugsembed.h

    r3920 r3921  
    1212PUGS_EXTERN Val *pugs_Apply ( Val *sub, Val *inv, Val **args ); 
    1313 
    14 PUGS_EXTERN Val *pugs_IvToVal ( IV iv ); 
    15 PUGS_EXTERN Val *pugs_NvToVal ( NV iv ); 
    16 PUGS_EXTERN Val *pugs_PvToVal ( char *pv ); 
     14extern Val *pugs_IvToVal ( IV iv ); 
     15extern Val *pugs_NvToVal ( NV iv ); 
     16extern Val *pugs_PvToVal ( char *pv ); 
    1717 
    1818PUGS_EXTERN SV  *pugs_ValToSv ( Val *val );