# New Ticket Created by  Allison Randal 
# Please include the string:  [perl #24391]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt2/Ticket/Display.html?id=24391 >


Several tests in t/compiler/call.t were failing with the error:

  set_integer_native() not implemented in class 'Sub'

and t/compiler/exceptions.t with the error:

  set_integer_native() not implemented in class 'Continuation'

These are resolved by using the 'newsub' syntax instead of assigning an
integer address to the Sub/Continuation PMCs.

Allison


-- attachment  1 ------------------------------------------------------
url: http://rt.perl.org/rt2/attach/66978/49979/bb19f7/p6c_newsub_syntax.patch

Index: languages/perl6/P6C/IMCC.pm
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/P6C/IMCC.pm,v
retrieving revision 1.28
diff -d -u -r1.28 IMCC.pm
--- languages/perl6/P6C/IMCC.pm 13 Oct 2003 17:00:41 -0000      1.28
+++ languages/perl6/P6C/IMCC.pm 3 Nov 2003 00:38:07 -0000
@@ -1868,10 +1868,8 @@
        # Create a closure.
        set_function($ofunc);
        $ret = newtmp 'Sub';
-       my $itmp = gentmp 'int';
        code(<<END);
-       $itmp = addr _$name
-       $ret = $itmp
+       newsub $ret, .Sub, _$name
 END
        $ret = scalar_in_context($ret, $x->{ctx});
     }
Index: languages/perl6/P6C/IMCC/prefix.pm
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/P6C/IMCC/prefix.pm,v
retrieving revision 1.17
diff -d -u -r1.17 prefix.pm
--- languages/perl6/P6C/IMCC/prefix.pm  13 Oct 2003 17:00:48 -0000      1.17
+++ languages/perl6/P6C/IMCC/prefix.pm  3 Nov 2003 00:38:07 -0000
@@ -747,14 +747,12 @@
     my $catch;
     my $result;
     my $ret = gentmp 'pmc';
-    my $addr = newtmp 'int';
     if ($catcher) {
        $catch = genlabel 'catch';
        $label = $catch;
     }
     code(<<END);
-       $addr = addr $label
-       $cont = $addr
+       newsub $cont, .Continuation, $label
        find_lex $subtmp, "&install_catch"
        .pcc_begin non_prototyped
        .arg $cont

Reply via email to