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