Changeset 3956 for src/Pugs/Run

Show
Ignore:
Timestamp:
05/27/05 04:31:40 (3 years ago)
Author:
autrijus
svk:copy_cache_prev:
5515
Message:

* new callconv -- pugs apply now takes Cxt

Files:
1 modified

Legend:

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

    r3948 r3956  
    99import Pugs.Prim.Eval 
    1010import Pugs.Embed.Perl5 
     11import Pugs.Types 
    1112import Foreign 
    1213import Foreign.C.Types 
     
    1819 
    1920foreign export ccall "pugs_Apply" 
    20     pugs_apply :: PugsVal -> PugsVal -> Ptr PugsVal -> IO PerlSV 
     21    pugs_apply :: PugsVal -> PugsVal -> Ptr PugsVal -> CInt -> IO PerlSV 
    2122 
    2223foreign export ccall "pugs_ValToSv" 
     
    6061    mkVal val 
    6162 
    62 pugs_apply :: PugsVal -> PugsVal -> Ptr PugsVal -> IO PerlSV 
    63 pugs_apply subPtr invPtr argsPtr = do 
     63pugs_apply :: PugsVal -> PugsVal -> Ptr PugsVal -> CInt -> IO PerlSV 
     64pugs_apply subPtr invPtr argsPtr cxt = do 
    6465    -- print "DEREF #0" 
    6566    env     <- askPerl5Env 
     
    7475            VStr name   -> Var name 
    7576            _           -> Val sub 
    76     val <- runEvalIO env $ evalExp (App subExp (fmap Val inv) (map Val args)) 
     77    val <- runEvalIO env $ 
     78        evalExp (Cxt (cxtEnum cxt) $ App subExp (fmap Val inv) (map Val args)) 
    7779    case val of 
    7880        PerlSV sv   -> return sv