Changeset 3932 for src/perl5

Show
Ignore:
Timestamp:
05/27/05 00:52:37 (4 years ago)
Author:
clkao
svk:copy_cache_prev:
5515
Message:

WIP p5 ducktape.

Location:
src/perl5
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • src/perl5/perl5.c

    r3930 r3932  
    1111 
    1212static PerlInterpreter *my_perl; 
     13 
     14const char eval_file_code[] = 
     15"use strict;" 
     16"package pugs;" 
     17 
     18"our $AUTOLOAD;" 
     19"sub AUTOLOAD { }" 
     20"warn 'perl5 glue compiled';" 
     21//"pugs::guts::test();" 
     22 
     23"package pugs::code;" 
     24"sub new { }" 
     25"1;"; 
     26 
     27XS(_pugs_guts_test) { 
     28    dXSARGS; 
     29    if (items != 1) 
     30        Perl_croak(aTHX_ "hate software"); 
     31 
     32    XSRETURN(1); 
     33} 
     34 
    1335 
    1436#ifdef HAS_PROCSELFEXE 
     
    98120    if (exitstatus == 0) 
    99121        exitstatus = perl_run( my_perl ); 
    100  
     122    return exitstatus; 
     123 
     124    fprintf(stderr, "hello, perl5\n"); 
     125 
     126    newXS((char*) "pugs::guts::test", _pugs_guts_test, (char*)__FILE__); 
     127 
     128    eval_pv(eval_file_code, FALSE); 
     129 
     130    if (SvTRUE(ERRSV)) { 
     131        STRLEN n_a; 
     132        printf("Error init perl: %s\n", SvPV(ERRSV,n_a)); 
     133        exit(1); 
     134    } 
    101135    return my_perl; 
    102     /* 
    103     perl_destruct( my_perl ); 
    104  
    105     if ( par_getenv("PAR_SPAWNED") == NULL ) { 
    106         if ( stmpdir == NULL ) { 
    107             stmpdir = par_getenv("PAR_TEMP"); 
    108         } 
    109         if ( stmpdir != NULL ) { 
    110             par_cleanup(stmpdir); 
    111         } 
    112     } 
    113  
    114     perl_free( my_perl ); 
    115     PERL_SYS_TERM(); 
    116  
    117     return exitstatus; 
    118     */ 
    119136} 
    120137 
  • src/perl5/pugsembed.c

    r3926 r3932  
    1515{ 
    1616    SV *sv = newSV(0); 
     17    fprintf(stderr, "pugs mkvalref: %p\n", val); 
     18    Val *isa[2]; 
     19    isa[0] = pugs_PvToVal("Code"); 
     20    isa[1] = NULL; 
     21    if (pugs_ValToIv(pugs_Apply("&isa", val, isa))) { 
     22        fprintf(stderr, "got a code!!\n"); 
     23    } 
    1724    sv_setref_pv(sv, "pugs", val); 
    1825    return (sv);