Changeset 3920

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

* pugsembed callback #1 -- pugs_MkSvRef -- finished

Location:
src
Files:
1 added
5 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/AST/Internals.hs

    r3919 r3920  
    190190    v <- liftIO $ svToVal sv 
    191191    case v of 
    192         -- (PerlSV sv') -> fromSV sv'   -- it was a SV 
    193         Nothing     -> fromSV sv 
    194         Just val    -> fromVal val    -- it was a Val 
     192        PerlSV sv'  -> fromSV sv'   -- it was a SV 
     193        val         -> fromVal val  -- it was a Val 
    195194fromVal' v = return $ vCast v 
    196 {-do 
    197     rv <- liftIO $ catchJust errorCalls (return . Right $ vCast v) $ 
    198         \str -> return (Left str) 
    199     case rv of 
    200         Right v -> return v 
    201         Left e  -> retError e v -- XXX: not working yet 
    202 -} 
    203195 
    204196{-| 
  • src/Pugs/Embed/Perl5.hs

    r3919 r3920  
    3232svToVBool = constFail 
    3333 
    34 svToVal :: PerlSV -> IO (Maybe a) 
     34svToVal :: PerlSV -> IO a 
    3535svToVal = constFail 
    3636 
     
    123123svToVBool = perl5_SvTRUE 
    124124 
    125 svToVal :: PerlSV -> IO (Maybe a) 
     125svToVal :: PerlSV -> IO a 
    126126svToVal sv = do 
    127127    ptr <- pugs_SvToVal sv 
    128     if ptr == nullPtr 
    129         then return Nothing 
    130         else fmap Just $ deRefStablePtr (castPtrToStablePtr ptr) 
     128    deRefStablePtr (castPtrToStablePtr ptr) 
    131129 
    132130valToSV :: a -> IO PerlSV 
  • src/Pugs/Run.hs

    r3856 r3920  
    1212module Pugs.Run where 
    1313import Pugs.Run.Args 
     14import Pugs.Run.Perl5 () 
    1415import Pugs.Internals 
    1516import Pugs.Config 
  • src/perl5/pugsembed.c

    r3918 r3920  
    2929Val *pugs_PvToVal ( char *pv ) { return NULL; } 
    3030 
    31 Val *pugs_MkSvRef  ( SV *sv ) { return NULL; } 
    32  
    3331SV  *pugs_ValToSv ( Val *val ) { return NULL; } 
  • src/perl5/pugsembed.h

    r3918 r3920  
    1616PUGS_EXTERN Val *pugs_PvToVal ( char *pv ); 
    1717 
    18 PUGS_EXTERN Val *pugs_MkSvRef  ( SV *sv ); 
    1918PUGS_EXTERN SV  *pugs_ValToSv ( Val *val ); 
    2019 
     
    2221SV  *pugs_MkValRef ( Val *val ); 
    2322 
     23extern Val *pugs_MkSvRef  ( SV *sv );