There are two open tickets about removing the core's dependance on Perl* PMCs, and instead, making them dynamically loadable and using the language agnostic PMCs for internal use.
Talking about this with Leo on IRC, he expressed an interest in getting these changes in chunks to make them a little more digestable.
Attached, find the first trivial chunk, which removes as much Perl* from IMCC internals and tests as possible without writing actually writing any new PMC code.
PerlArray is going to be the hardest to pull out, as there is no other Array-style pmc that does everything it does. (or, at least, I can't find one. =-)
? foo.pir ? imcc/.pcc.c.swp ? src/asmfun.s Index: imcc/parser_util.c =================================================================== RCS file: /cvs/public/parrot/imcc/parser_util.c,v retrieving revision 1.98 diff -b -u -r1.98 parser_util.c --- imcc/parser_util.c 25 Mar 2005 10:19:55 -0000 1.98 +++ imcc/parser_util.c 8 Apr 2005 03:26:44 -0000 @@ -885,7 +885,7 @@ /* OP _p_k _p_k_p_k => * set py, p_k * set pz, p_k - * new px, .PerlUndef + * new px, .Undef * OP px, py, pz * set _p_k_px */ @@ -944,7 +944,7 @@ } } /* make a new undef */ - iNEW(interpreter, unit, preg[0], str_dup("PerlUndef"), NULL, 1); + iNEW(interpreter, unit, preg[0], str_dup("Undef"), NULL, 1); /* emit the operand */ INS(interpreter, unit, name, 0, preg, 3, 0, 1); /* emit the LHS op */ Index: imcc/pcc.c =================================================================== RCS file: /cvs/public/parrot/imcc/pcc.c,v retrieving revision 1.92 diff -b -u -r1.92 pcc.c --- imcc/pcc.c 4 Apr 2005 16:03:26 -0000 1.92 +++ imcc/pcc.c 8 Apr 2005 03:26:47 -0000 @@ -711,7 +711,7 @@ * inc $I2 * goto next_arg_N * over_flow_1_N: - * new P3, .PerlArray + * new P3, .PerlPMCArray * over_flow_N: * push P3, arg * next_arg_N: Index: imcc/t/imcpasm/optc.t =================================================================== RCS file: /cvs/public/parrot/imcc/t/imcpasm/optc.t,v retrieving revision 1.13 diff -b -u -r1.13 optc.t --- imcc/t/imcpasm/optc.t 24 Mar 2005 14:08:17 -0000 1.13 +++ imcc/t/imcpasm/optc.t 8 Apr 2005 03:26:47 -0000 @@ -16,19 +16,19 @@ pir_2_pasm_like(<<'CODE', <<'OUT', "in P param"); .sub _main - $P0 = new PerlUndef + $P0 = new Undef $P0 = 42 foo($P0) noop end .end .sub foo prototyped - .param PerlUndef a + .param Undef a print a .end CODE /_main: - new (P\d+), \d+ # \.PerlUndef + new (P\d+), \d+ # \.Undef set \1, 42 set_p_pc (P\d+), foo @pcc_sub_call_\d: @@ -53,8 +53,8 @@ pir_2_pasm_like(<<'CODE', <<'OUT', "in, out P param"); .sub _main .local Sub sub - .local PerlUndef x - x = new PerlUndef + .local Undef x + x = new Undef x = 42 newsub sub, .Sub, _sub .pcc_begin prototyped @@ -67,7 +67,7 @@ end .end .pcc_sub _sub prototyped - .param PerlUndef a + .param Undef a a = a + 1 .pcc_begin_return .return a @@ -76,7 +76,7 @@ CODE /_main: set P16, P1 - new P5, \d+ # \.PerlUndef + new P5, \d+ # \.Undef set P5, 42 newsub P0, \d+, _sub @pcc_sub_call_\d: @@ -102,11 +102,11 @@ pir_2_pasm_like(<<'CODE', <<'OUT', "in, out P param, P var"); .sub _main .local Sub sub - .local PerlUndef x - x = new PerlUndef + .local Undef x + x = new Undef x = 42 - .local PerlUndef y - y = new PerlUndef + .local Undef y + y = new Undef y = 10 newsub sub, .Sub, _sub .pcc_begin prototyped @@ -120,7 +120,7 @@ end .end .pcc_sub _sub prototyped - .param PerlUndef a + .param Undef a a = a + 1 .pcc_begin_return .return a @@ -129,9 +129,9 @@ CODE /_main: set P16, P1 - new P5, \d+ # \.PerlUndef + new P5, \d+ # \.Undef set P5, 42 - new P16, \d+ # \.PerlUndef + new P16, \d+ # \.Undef set P16, 10 newsub P0, \d+, _sub @pcc_sub_call_\d+: @@ -158,22 +158,22 @@ pir_2_pasm_like(<<'CODE', <<'OUT', "in, out different P param"); .sub _main .local Sub sub - .local PerlUndef x - x = new PerlUndef + .local Undef x + x = new Undef x = 42 newsub sub, .Sub, _sub .pcc_begin prototyped .arg x .pcc_call sub ret: - .local PerlUndef y + .local Undef y .result y .pcc_end print y end .end .pcc_sub _sub prototyped - .param PerlUndef a + .param Undef a a = a + 1 .pcc_begin_return .return a @@ -182,7 +182,7 @@ CODE /_main: set P16, P1 - new P5, \d+ # \.PerlUndef + new P5, \d+ # \.Undef set P5, 42 newsub P0, \d+, _sub @pcc_sub_call_\d: @@ -208,15 +208,15 @@ pir_2_pasm_like(<<'CODE', <<'OUT', "in, out different P param, interfer"); .sub _main .local Sub sub - .local PerlUndef x - x = new PerlUndef + .local Undef x + x = new Undef x = 42 newsub sub, .Sub, _sub .pcc_begin prototyped .arg x .pcc_call sub ret: - .local PerlUndef y + .local Undef y .result y .pcc_end print x @@ -224,7 +224,7 @@ end .end .pcc_sub _sub prototyped - .param PerlUndef a + .param Undef a a = a + 1 .pcc_begin_return .return a @@ -233,7 +233,7 @@ CODE /_main: set P16, P1 - new P16, \d+ # \.PerlUndef + new P16, \d+ # \.Undef set P16, 42 newsub P0, \d+, _sub @pcc_sub_call_\d: Index: imcc/t/imcpasm/pcc.t =================================================================== RCS file: /cvs/public/parrot/imcc/t/imcpasm/pcc.t,v retrieving revision 1.22 diff -b -u -r1.22 pcc.t --- imcc/t/imcpasm/pcc.t 4 Mar 2005 17:49:01 -0000 1.22 +++ imcc/t/imcpasm/pcc.t 8 Apr 2005 03:26:47 -0000 @@ -240,7 +240,7 @@ .arg $P1 .pcc_call sub ret: - .local PerlUndef k + .local Undef k .result k .pcc_end end @@ -367,7 +367,7 @@ end .end .pcc_sub _sub - .param PerlUndef a + .param Undef a print a end .end Index: imcc/t/reg/spill.t =================================================================== RCS file: /cvs/public/parrot/imcc/t/reg/spill.t,v retrieving revision 1.12 diff -b -u -r1.12 spill.t --- imcc/t/reg/spill.t 4 Mar 2005 17:49:02 -0000 1.12 +++ imcc/t/reg/spill.t 8 Apr 2005 03:26:47 -0000 @@ -635,8 +635,8 @@ } my $template2 = <<'TEMPLATE'; .sub _main - new P3, .PerlInt - new P4, .PerlInt + new P3, .Integer + new P4, .Integer =LOCALS= =INITS= _sub(=ARGS=) @@ -661,10 +661,10 @@ TEMPLATE my $code = repeat($template2, 18, - LOCALS => ".local PerlInt a<index>\n\ta<index> = new PerlInt", + LOCALS => ".local Integer a<index>\n\ta<index> = new Integer", INITS => 'a<index> = <index>', ARGS => 'a<index>', - PARAMS => '.param PerlInt a<index>', + PARAMS => '.param Integer a<index>', TESTS => "set I0, a<index>\nne I0, <index>, fail", TESTS2 => "set I0, a<index>\nne I0, <index>, fail"); @@ -673,10 +673,10 @@ OUT $code = repeat($template2, 22, - LOCALS => ".local PerlInt a<index>\n\ta<index> = new PerlInt", + LOCALS => ".local Integer a<index>\n\ta<index> = new Integer", INITS => 'a<index> = <index>', ARGS => 'a<index>', - PARAMS => '.param PerlInt a<index>', + PARAMS => '.param Integer a<index>', TESTS => "set I0, a<index>\nne I0, <index>, fail", TESTS2 => "set I0, a<index>\nne I0, <index>, fail"); @@ -685,10 +685,10 @@ OUT $code = repeat($template2, 40, - LOCALS => ".local PerlInt a<index>\n\ta<index> = new PerlInt", + LOCALS => ".local Integer a<index>\n\ta<index> = new Integer", INITS => 'a<index> = <index>', ARGS => 'a<index>', - PARAMS => '.param PerlInt a<index>', + PARAMS => '.param Integer a<index>', TESTS => "set I0, a<index>\nne I0, <index>, fail", TESTS2 => "set I0, a<index>\nne I0, <index>, fail"); @@ -697,10 +697,10 @@ OUT $code = repeat($template2, 60, - LOCALS => ".local PerlInt a<index>\n\ta<index> = new PerlInt", + LOCALS => ".local Integer a<index>\n\ta<index> = new Integer", INITS => 'a<index> = <index>', ARGS => 'a<index>', - PARAMS => '.param PerlInt a<index>', + PARAMS => '.param Integer a<index>', TESTS => "set I0, a<index>\nne I0, <index>, fail", TESTS2 => "set I0, a<index>\nne I0, <index>, fail"); Index: imcc/t/syn/clash.t =================================================================== RCS file: /cvs/public/parrot/imcc/t/syn/clash.t,v retrieving revision 1.14 diff -b -u -r1.14 clash.t --- imcc/t/syn/clash.t 4 Mar 2005 17:49:04 -0000 1.14 +++ imcc/t/syn/clash.t 8 Apr 2005 03:26:47 -0000 @@ -57,9 +57,9 @@ pir_output_is(<<'CODE', <<'OUT', "new"); .sub test @MAIN - $P1 = new PerlString + $P1 = new String $P1 = "ok 1\n" - new P1, .PerlString + new P1, .String set P1, "ok 2\n" print $P1 print P1 @@ -73,10 +73,10 @@ pir_output_is(<<'CODE', <<'OUT', "clone"); .sub test @MAIN - $P1 = new PerlString + $P1 = new String $P1 = "ok 1\n" $P0 = clone $P1 - new P1, .PerlString + new P1, .String set P1, "ok 2\n" clone P0, P1 print $P0 Index: imcc/t/syn/const.t =================================================================== RCS file: /cvs/public/parrot/imcc/t/syn/const.t,v retrieving revision 1.11 diff -b -u -r1.11 const.t --- imcc/t/syn/const.t 4 Mar 2005 17:49:04 -0000 1.11 +++ imcc/t/syn/const.t 8 Apr 2005 03:26:47 -0000 @@ -73,13 +73,14 @@ pir_output_is(<<'CODE', <<'OUT', "array/hash consts"); .sub _MAIN - .local PerlArray ar + .local Array ar .local pmc ha .local string key1 .const string key2 = "key2" .local int idx1 .const int idx2 = 2 - ar = new PerlArray + ar = new Array + ar = 3 ha = new Hash key1 = "key1" idx1 = 1 Index: imcc/t/syn/keyed.t =================================================================== RCS file: /cvs/public/parrot/imcc/t/syn/keyed.t,v retrieving revision 1.4 diff -b -u -r1.4 keyed.t --- imcc/t/syn/keyed.t 4 Mar 2005 17:49:04 -0000 1.4 +++ imcc/t/syn/keyed.t 8 Apr 2005 03:26:47 -0000 @@ -8,9 +8,12 @@ ############################## pir_output_is(<<'CODE', <<'OUTPUT', "add_keyed"); .sub test @MAIN - new P0, .PerlArray - new P1, .PerlArray - new P2, .PerlArray + new P0, .Array + new P1, .Array + new P2, .Array + P0 = 1 + P1 = 2 + P2 = 11 set P1[1], 32 set P2[10], 10 add P0[0], P1[1], P2[10] Index: imcc/t/syn/macro.t =================================================================== RCS file: /cvs/public/parrot/imcc/t/syn/macro.t,v retrieving revision 1.10 diff -b -u -r1.10 macro.t --- imcc/t/syn/macro.t 4 Mar 2005 17:49:04 -0000 1.10 +++ imcc/t/syn/macro.t 8 Apr 2005 03:26:48 -0000 @@ -147,7 +147,7 @@ .sym .CLASS .ID .ID = new .CLASS .endm - .newid(var, PerlUndef) + .newid(var, Undef) var = 10 print var print "\n" @@ -164,7 +164,7 @@ .ID = new .CLASS # store_lex -1, .ID , .ID # how to stringify .ID .endm - .newlex(var, PerlUndef) + .newlex(var, Undef) var = 10 print var print "\n" Index: imcc/t/syn/objects.t =================================================================== RCS file: /cvs/public/parrot/imcc/t/syn/objects.t,v retrieving revision 1.8 diff -b -u -r1.8 objects.t --- imcc/t/syn/objects.t 4 Mar 2005 17:49:04 -0000 1.8 +++ imcc/t/syn/objects.t 8 Apr 2005 03:26:48 -0000 @@ -40,7 +40,7 @@ newclass class, "Foo" find_type $I0, "Foo" new obj, $I0 - $P0 = new PerlString + $P0 = new String $P0 = "ok\n" obj._meth($P0) print "done\n" @@ -66,7 +66,7 @@ newclass class, "Foo" find_type $I0, "Foo" new obj, $I0 - $P0 = new PerlString + $P0 = new String $P0 = "ok\n" $S0 = obj._meth($P0) print $S0 Index: imcc/t/syn/op.t =================================================================== RCS file: /cvs/public/parrot/imcc/t/syn/op.t,v retrieving revision 1.6 diff -b -u -r1.6 op.t --- imcc/t/syn/op.t 4 Mar 2005 17:49:04 -0000 1.6 +++ imcc/t/syn/op.t 8 Apr 2005 03:26:48 -0000 @@ -171,7 +171,7 @@ pir_output_is(<<'CODE', <<'OUT', "x = clone"); .sub test @MAIN .local pmc a - a = new PerlInt + a = new Integer a = 10 .local pmc b b = clone a @@ -221,7 +221,7 @@ pir_output_is(<<'CODE', <<'OUT', "x = isa"); .sub test @MAIN - $P0 = new PerlInt + $P0 = new Integer $I0 = isa $P0, "scalar" print $I0 print "\n" Index: imcc/t/syn/pcc.t =================================================================== RCS file: /cvs/public/parrot/imcc/t/syn/pcc.t,v retrieving revision 1.52 diff -b -u -r1.52 pcc.t --- imcc/t/syn/pcc.t 8 Apr 2005 02:26:26 -0000 1.52 +++ imcc/t/syn/pcc.t 8 Apr 2005 03:26:48 -0000 @@ -147,9 +147,9 @@ .sub test @MAIN .local Sub sub newsub sub, .Sub, _sub - $P0 = new PerlUndef + $P0 = new Undef $P0 = "ok 1\n" - $P1 = new PerlUndef + $P1 = new Undef $P1 = "ok 2\n" .pcc_begin prototyped .arg $P0 @@ -161,8 +161,8 @@ end .end .pcc_sub _sub prototyped - .param PerlUndef a - .param PerlUndef b + .param Undef a + .param Undef b print a print b .pcc_begin_return @@ -177,9 +177,9 @@ .sub test @MAIN .local Sub sub newsub sub, .Sub, _sub - $P0 = new PerlUndef + $P0 = new Undef $P0 = "ok 1\n" - $P1 = new PerlUndef + $P1 = new Undef $P1 = "ok 2\n" .pcc_begin prototyped .arg $P0 @@ -191,8 +191,8 @@ end .end .pcc_sub _sub - .param PerlUndef a - .param PerlUndef b + .param Undef a + .param Undef b print a print b .pcc_begin_return @@ -456,8 +456,8 @@ .sub test @MAIN .local Sub sub newsub sub, .Sub, _sub - $P0 = new PerlUndef - $P1 = new PerlUndef + $P0 = new Undef + $P1 = new Undef $P0 = "ok 1\n" $P1 = "ok 2\n" .pcc_begin prototyped @@ -470,14 +470,14 @@ end .end .pcc_sub _sub - .param PerlUndef a - .param PerlUndef b + .param Undef a + .param Undef b print a print b .local Sub sub newsub sub, .Sub, _sub2 - $P0 = new PerlUndef - $P1 = new PerlUndef + $P0 = new Undef + $P1 = new Undef $P0 = "ok 3\n" $P1 = "ok 4\n" .pcc_begin prototyped @@ -492,8 +492,8 @@ .pcc_end_return .end .pcc_sub _sub2 - .param PerlUndef a - .param PerlUndef b + .param Undef a + .param Undef b print a print b .pcc_begin_return @@ -512,18 +512,18 @@ pir_output_is(<<'CODE', <<'OUT', "in, out different P param, 2 subs"); .sub test @MAIN .local Sub sub - .local PerlUndef x - x = new PerlUndef + .local Undef x + x = new Undef x = 42 newsub sub, .Sub, _sub .pcc_begin prototyped .arg x .pcc_call sub ret: - .local PerlUndef y + .local Undef y .result y .pcc_end - .local PerlUndef z + .local Undef z z = y .pcc_begin prototyped .arg y @@ -540,9 +540,9 @@ end .end .pcc_sub _sub prototyped - .param PerlUndef a - .local PerlUndef res - res = new PerlUndef + .param Undef a + .local Undef res + res = new Undef res = a + 1 .pcc_begin_return .return res @@ -581,7 +581,7 @@ # g from line 1 .pcc_sub _sub0 non_prototyped .local pmc res0 # (visitReturn:528) - res0 = new PerlInt # (expressConstant:153) + res0 = new Integer # (expressConstant:153) res0 = 42 # (expressConstant:154) .pcc_begin_return # (visitReturn:530) .return res0 # (visitReturn:531) @@ -630,8 +630,8 @@ .local pmc generator # call count and get the generator - .local PerlInt start - start = new PerlInt + .local Integer start + start = new Integer start = 3 .pcc_begin non_prototyped .arg start @@ -676,7 +676,7 @@ # here is count(), which returns the generator .pcc_sub _count non_prototyped - .param PerlInt start + .param Integer start .local pmc gen_fun .local pmc gen_obj store_lex -1, "start", start @@ -689,7 +689,7 @@ # here is the generator itself # all it does is throw StopIteration .pcc_sub _count_g non_prototyped - .local PerlInt c + .local Integer c count_loop: find_lex c, -1, "start" lt c, 0, stop @@ -707,7 +707,7 @@ .local pmc ex0 .local pmc msg0 ex0 = new Exception - msg0 = new PerlString + msg0 = new String msg0 = 'StopIteration' ex0['_message'] = msg0 throw ex0 @@ -788,10 +788,10 @@ OUT $code = repeat($template, 18, - LOCALS => ".local PerlInt a<index>\n\ta<index> = new PerlInt", + LOCALS => ".local Integer a<index>\n\ta<index> = new Integer", INITS => 'a<index> = <index>', ARGS => '.arg a<index>', - PARAMS => '.param PerlInt a<index>', + PARAMS => '.param Integer a<index>', TESTS => "set I0, a<index>\nne I0, <index>, fail"); pir_output_is($code, <<'OUT', "overflow pmcs"); @@ -799,10 +799,10 @@ OUT $code = repeat($template, 40, - LOCALS => ".local PerlInt a<index>\n\ta<index> = new PerlInt", + LOCALS => ".local Integer a<index>\n\ta<index> = new Integer", INITS => 'a<index> = <index>', ARGS => '.arg a<index>', - PARAMS => '.param PerlInt a<index>', + PARAMS => '.param Integer a<index>', TESTS => "set I0, a<index>\nne I0, <index>, fail"); pir_output_is($code, <<'OUT', "overflow pmcs 40"); @@ -843,7 +843,7 @@ newsub sub, .Sub, _sub .local pmc ar .local pmc x - x = new PerlString + x = new String x = "first\n" ar = new PerlArray push ar, "ok 1\n" @@ -874,10 +874,10 @@ newsub sub, .Sub, _sub .local pmc ar .local pmc x - x = new PerlString + x = new String x = "first\n" .local pmc y - y = new PerlString + y = new String y = "last\n" ar = new PerlArray push ar, "ok 1\n" @@ -914,13 +914,13 @@ .local Sub sub newsub sub, .Sub, _sub .local pmc x - x = new PerlString + x = new String x = "first\n" .local pmc y - y = new PerlString + y = new String y = "middle\n" .local pmc z - z = new PerlString + z = new String z = "last\n" .local pmc ar ar = new PerlArray @@ -981,13 +981,13 @@ .local Sub sub newsub sub, .Sub, _sub .local pmc x - x = new PerlString + x = new String x = "first\n" .local pmc y - y = new PerlString + y = new String y = "middle\n" .local pmc z - z = new PerlString + z = new String z = "last\n" .local pmc ar ar = new PerlArray @@ -1052,13 +1052,13 @@ .local Sub sub newsub sub, .Sub, _sub .local pmc x - x = new PerlString + x = new String x = "first\n" .local pmc y - y = new PerlString + y = new String y = "middle\n" .local pmc z - z = new PerlString + z = new String z = "last\n" .local pmc ar ar = new PerlArray @@ -1193,7 +1193,7 @@ .pcc_sub _main non_prototyped #Positional parameters: - .param PerlArray command_line + .param Array command_line .pcc_begin_return .pcc_end_return .end @@ -1294,7 +1294,7 @@ pir_output_is(<<'CODE', <<'OUT', "P3 is NULL - 11 args"); .sub test @MAIN - P3 = new .PerlArray + P3 = new .Array # call with 11 parameters _foo($P1, $P2, $P3, $P4, $P5, $P6, $P7, $P8, $P9, $P10, $P11) end Index: imcc/t/syn/tail.t =================================================================== RCS file: /cvs/public/parrot/imcc/t/syn/tail.t,v retrieving revision 1.3 diff -b -u -r1.3 tail.t --- imcc/t/syn/tail.t 21 Mar 2005 09:10:24 -0000 1.3 +++ imcc/t/syn/tail.t 8 Apr 2005 03:26:48 -0000 @@ -14,9 +14,9 @@ .sub _main @MAIN - $P1 = new PerlInt + $P1 = new Integer $P1 = 20 - $P2 = new PerlInt + $P2 = new Integer $P2 = 3 newsub $P99, .Sub, _floor ($P3, $P4) = _funcall($P99, $P1, $P2) @@ -65,12 +65,12 @@ .param pmc arg1 .param pmc arg2 - $P1 = new PerlInt + $P1 = new Integer $P1 = arg1 / arg2 ## truncate. $I1 = $P1 $P1 = $I1 - $P2 = new PerlInt + $P2 = new Integer $P2 = arg1 % arg2 .pcc_begin_return .return $P1 @@ -83,7 +83,7 @@ .param pmc arg1 .param pmc arg2 - $P1 = new PerlInt + $P1 = new Integer $P1 = arg1 + arg2 .pcc_begin_return .return $P1 @@ -102,9 +102,9 @@ .sub _main @MAIN - $P1 = new PerlInt + $P1 = new Integer $P1 = 20 - $P2 = new PerlInt + $P2 = new Integer $P2 = 3 newsub $P99, .Sub, _floor ($P3, $P4) = _funcall($P99, $P1, $P2) @@ -153,12 +153,12 @@ .param pmc arg1 .param pmc arg2 - $P1 = new PerlInt + $P1 = new Integer $P1 = arg1 / arg2 ## truncate. $I1 = $P1 $P1 = $I1 - $P2 = new PerlInt + $P2 = new Integer $P2 = arg1 % arg2 .pcc_begin_return .return $P1 @@ -171,7 +171,7 @@ .param pmc arg1 .param pmc arg2 - $P1 = new PerlInt + $P1 = new Integer $P1 = arg1 + arg2 .pcc_begin_return .return $P1 @@ -190,9 +190,9 @@ .sub _main @MAIN - $P1 = new PerlInt + $P1 = new Integer $P1 = 20 - $P2 = new PerlInt + $P2 = new Integer $P2 = 3 newsub $P99, .Sub, _floor ($P3, $P4) = _funcall($P99, $P1, $P2) @@ -239,12 +239,12 @@ .param pmc arg1 .param pmc arg2 - $P1 = new PerlInt + $P1 = new Integer $P1 = arg1 / arg2 ## truncate. $I1 = $P1 $P1 = $I1 - $P2 = new PerlInt + $P2 = new Integer $P2 = arg1 % arg2 .pcc_begin_return .return $P1 @@ -257,7 +257,7 @@ .param pmc arg1 .param pmc arg2 - $P1 = new PerlInt + $P1 = new Integer $P1 = arg1 + arg2 .pcc_begin_return .return $P1 @@ -276,9 +276,9 @@ .sub _main @MAIN - $P1 = new PerlInt + $P1 = new Integer $P1 = 20 - $P2 = new PerlInt + $P2 = new Integer $P2 = 3 newsub $P98, .Sub, _fib_step ($P3, $P4, $P5) = _funcall($P98, $P1, $P2) @@ -323,7 +323,7 @@ .param pmc arg1 .param pmc arg2 - $P1 = new PerlInt + $P1 = new Integer $P1 = arg1 + arg2 .pcc_begin_return .return $P1