Vasily Chekalkin wrote:
> I whould like to merge pcc_hackatron branch into trunk. I've implemented 
> last bit - op set_result_info at r45082.
>
> Actually, I'll merge it right now with git, so we can always unmerge it 
> in case of very bad "black smoke".

Rakudo builds with the attached patch, but autothreading over junctions
fails:

$ ./perl6 -e 'sub a($x) { }; a(1|2)'
./perl6: symbol lookup error: dynext/perl6_ops.so: undefined symbol:
Parrot_pcc_fill_returns_from_c_args

>From 227c9d9b0a62fe6e012adb56bbe541f7ff8afa5a Mon Sep 17 00:00:00 2001
From: Moritz Lenz <[email protected]>
Date: Sun, 21 Mar 2010 12:07:48 +0100
Subject: [PATCH] enable build on parrot branch pcc_hackathon_6Mar10, bacek++

---
 src/ops/perl6.ops         |    3 ---
 src/pmc/p6opaque.pmc      |    2 --
 src/pmc/perl6multisub.pmc |    4 ----
 3 files changed, 0 insertions(+), 9 deletions(-)

diff --git a/src/ops/perl6.ops b/src/ops/perl6.ops
index dc15317..1aba868 100644
--- a/src/ops/perl6.ops
+++ b/src/ops/perl6.ops
@@ -616,7 +616,6 @@ inline op bind_signature(in PMC) :base_core {
         PMC      * ctx               = CURRENT_CONTEXT(interp);
         PMC      * const saved_ccont = interp->current_cont;
         PMC      * const saved_sig   = Parrot_pcc_get_signature(interp, ctx);
-        PMC      * const saved_rs    = Parrot_pcc_get_results_signature(interp, ctx);
         opcode_t * const current_pc  = Parrot_pcc_get_pc(interp, ctx);
 
         /* Ensure we actually have a signature; if not, try to lazily generate
@@ -638,7 +637,6 @@ inline op bind_signature(in PMC) :base_core {
             CURRENT_CONTEXT(interp) = ctx;
             interp->current_cont = saved_ccont;
             Parrot_pcc_set_signature(interp, ctx, saved_sig);
-            Parrot_pcc_set_results_signature(interp, ctx, saved_rs);
             Parrot_pcc_set_pc(interp, ctx, current_pc);
             goto NEXT();
         }
@@ -656,7 +654,6 @@ inline op bind_signature(in PMC) :base_core {
                 CURRENT_CONTEXT(interp) = ctx;
                 interp->current_cont = saved_ccont;
                 Parrot_pcc_set_signature(interp, ctx, saved_sig);
-                Parrot_pcc_set_results_signature(interp, ctx, saved_rs);
                 Parrot_pcc_set_pc(interp, ctx, current_pc);
 
                 /* Save the Junctional result as the return value. */
diff --git a/src/pmc/p6opaque.pmc b/src/pmc/p6opaque.pmc
index 8167b98..70bbe7d 100644
--- a/src/pmc/p6opaque.pmc
+++ b/src/pmc/p6opaque.pmc
@@ -86,7 +86,6 @@ static PMC *do_handles(PARROT_INTERP, PMC *cur_class, PMC *handlers, STRING *nam
     PMC      * ctx               = CURRENT_CONTEXT(interp);
     PMC      * const saved_ccont = interp->current_cont;
     PMC      * const saved_sig   = Parrot_pcc_get_signature(interp, ctx);
-    PMC      * const saved_rs    = Parrot_pcc_get_results_signature(interp, ctx);
 
     /* Iterate over the handlers. */
     PMC    *iter       = VTABLE_get_iter(interp, handlers);
@@ -140,7 +139,6 @@ static PMC *do_handles(PARROT_INTERP, PMC *cur_class, PMC *handlers, STRING *nam
     CURRENT_CONTEXT(interp) = ctx;
     interp->current_cont = saved_ccont;
     Parrot_pcc_set_signature(interp, ctx, saved_sig);
-    Parrot_pcc_set_results_signature(interp, ctx, saved_rs);
 
     /* Did we find anything? */
     if (attr) {
diff --git a/src/pmc/perl6multisub.pmc b/src/pmc/perl6multisub.pmc
index 7569d04..d573fc4 100644
--- a/src/pmc/perl6multisub.pmc
+++ b/src/pmc/perl6multisub.pmc
@@ -752,7 +752,6 @@ static PMC *find_many_candidates_with_arg_list(PARROT_INTERP, PMC *SELF, PMC *ca
     PMC      * ctx               = CURRENT_CONTEXT(interp);
     PMC      * const saved_ccont = interp->current_cont;
     PMC      * const saved_sig   = Parrot_pcc_get_signature(interp, ctx);
-    PMC      * const saved_rs    = Parrot_pcc_get_results_signature(interp, ctx);
 
     /* See if we have a cache entry. */
     GETATTR_Perl6MultiSub_cache_many(interp, SELF, cache);
@@ -785,7 +784,6 @@ static PMC *find_many_candidates_with_arg_list(PARROT_INTERP, PMC *SELF, PMC *ca
     CURRENT_CONTEXT(interp) = ctx;
     interp->current_cont = saved_ccont;
     Parrot_pcc_set_signature(interp, ctx, saved_sig);
-    Parrot_pcc_set_results_signature(interp, ctx, saved_rs);
 
     return results;
 }
@@ -962,7 +960,6 @@ the Perl 6 MMD algorithm.
         PMC      * ctx               = CURRENT_CONTEXT(interp);
         PMC      * const saved_ccont = interp->current_cont;
         PMC      * const saved_sig   = Parrot_pcc_get_signature(interp, ctx);
-        PMC      * const saved_rs    = Parrot_pcc_get_results_signature(interp, ctx);
         opcode_t * const current_pc  = Parrot_pcc_get_pc(interp, ctx);
 
         /* Get arguments. */
@@ -1001,7 +998,6 @@ the Perl 6 MMD algorithm.
         CURRENT_CONTEXT(interp) = ctx;
         interp->current_cont = saved_ccont;
         Parrot_pcc_set_signature(interp, ctx, saved_sig);
-        Parrot_pcc_set_results_signature(interp, ctx, saved_rs);
         Parrot_pcc_set_pc(interp, ctx, current_pc);
 
         /* Invoke the winner, and mark the context so we know not to re-do a
-- 
1.6.5

_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to