Show
Ignore:
Timestamp:
05/27/05 16:36:18 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
5515
Message:

* refactor newSVval to handler Val->PerlSV casting.
* beginning of unifying two GCs together.

Files:
1 modified

Legend:

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

    r3954 r3975  
    6060nullSV = error "perl5 not embedded" 
    6161 
     62mkSV :: IO PerlSV -> IO PerlSV 
     63mkSV = id 
     64 
    6265#else 
    6366 
     
    6669 
    6770module Pugs.Embed.Perl5 where 
     71import Pugs.Internals 
    6872import Foreign 
    6973import Foreign.C.Types 
     
    8690foreign import ccall "perl.h boot_DynaLoader" 
    8791    boot_DynaLoader :: Ptr () -> IO () 
     92foreign import ccall "perl5.h perl5_finalize" 
     93    perl5_finalize :: PerlSV -> IO () 
    8894foreign import ccall "perl5.h perl5_SvPV" 
    8995    perl5_SvPV :: PerlSV -> IO CString 
     
    173179canPerl5 sv meth = withCString meth $ \cstr -> perl5_can sv cstr 
    174180 
     181mkSV :: IO PerlSV -> IO PerlSV 
     182mkSV = id 
     183{-  
     184action = do 
     185    sv <- action  
     186    addFinalizer sv (perl5_finalize sv) 
     187    return sv 
     188-} 
     189 
    175190evalPerl5 :: String -> PugsVal -> CInt -> IO PerlSV 
    176 evalPerl5 str env cxt = withCString str $ \cstr -> perl5_eval cstr env cxt 
     191evalPerl5 str env cxt = mkSV $ withCString str $ \cstr -> perl5_eval cstr env cxt 
    177192 
    178193freePerl5 :: PerlInterpreter -> IO ()