Changeset 21970
- Timestamp:
- 08/20/08 18:52:17 (3 months ago)
- Location:
- v6/smop
- Files:
-
- 4 modified
-
Makefile (modified) (1 diff)
-
src/smop_s1p_code.c (modified) (1 diff)
-
test/21_code.m0ld (modified) (1 diff)
-
tools/dsl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
v6/smop/Makefile
r21948 r21970 1 1 all: 2 mkdir build;cd build;cmake ..; make2 mkdir build;cd build;cmake ..;MAKELEVEL=0 make 3 3 .PHONY : test all 4 4 test: all 5 5 perl -MTest::Harness -e '@tests=<build/test/*.t>;$$Test::Harness::switches="-e \"system(shift)\"";runtests(@tests)' 6 env: 7 env 6 8 7 9 -
v6/smop/src/smop_s1p_code.c
r21965 r21970 49 49 SMOP__S1P__Code_struct* code = (SMOP__S1P__Code_struct*) invocant; 50 50 51 smop_lowlevel_rdlock(code); 51 smop_lowlevel_rdlock(invocant); 52 SMOP__Object* outer = code->outer; 52 53 SMOP__Object* mold = code->mold; 53 smop_lowlevel_unlock( code);54 smop_lowlevel_unlock(invocant); 54 55 55 56 SMOP__Object* frame = SMOP__Mold__Frame_create(interpreter,SMOP_REFERENCE(interpreter,mold)); 57 SMOP__Object* back = SMOP_DISPATCH(interpreter, SMOP_RI(interpreter), 58 SMOP__ID__continuation, 59 SMOP__NATIVE__capture_create(interpreter,SMOP_REFERENCE(interpreter,interpreter), 60 NULL,NULL)); 56 61 62 mold_reg_set(interpreter,frame,0,SMOP_REFERENCE(interpreter,interpreter)); 63 mold_reg_set(interpreter,frame,1,SMOP_REFERENCE(interpreter,capture)); 64 mold_reg_set(interpreter,frame,2,SMOP_REFERENCE(interpreter,outer)); 65 mold_reg_set(interpreter,frame,3,SMOP_REFERENCE(interpreter,back)); 57 66 SMOP_DISPATCH(interpreter,SMOP_RI(interpreter),SMOP__ID__goto,frame); 58 67 -
v6/smop/test/21_code.m0ld
r21965 r21970 2 2 my $out_scalar = ¢SMOP__S1P__RootNamespace."postcircumfix:{ }"("$*OUT"); 3 3 my $out = $out_scalar."FETCH"(); 4 $void = $out."print"("1.. 1\n");4 $void = $out."print"("1..2\n"); 5 5 6 6 my $Code_scalar = ¢SMOP__S1P__RootNamespace."postcircumfix:{ }"("::Code"); 7 7 my $Code = $Code_scalar."FETCH"(); 8 8 my $code1 = $Code."new"(:"outer"("...outer..."),:"signature"("...signature..."),:"mold"(mold { 9 my $interpreter; 10 my $capture; 11 my $outer; 12 my $back; 13 9 14 my $void; 10 15 my $out_scalar = ¢SMOP__S1P__RootNamespace."postcircumfix:{ }"("$*OUT"); 11 16 my $out = $out_scalar."FETCH"(); 12 $void = $out."print"("ok 1\n"); 17 $void = $out."print"("ok\n"); 18 my $void = $interpreter."goto"($back); 13 19 })); 14 20 $void = $code1."postcircumfix:( )"(); 15 21 $void = $code1."postcircumfix:( )"(); -
v6/smop/tools/dsl
r21933 r21970 3 3 use warnings; 4 4 my ($dsl,$base,$m0ld,$in, $out) = @ARGV; 5 warn "dsl:$dsl base:$base in:$in out:$out\n";5 #warn "dsl:$dsl base:$base in:$in out:$out\n"; 6 6 my $elfX = "$base/../../misc/elfish/elfX/elfX"; 7 7 if ($dsl eq 'm0ld') {
