New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
control operator crossed continuation barrier #3509
Comments
From @FROGGSThis patch break the jvm build: The code was fudged but the issue remains. |
From @usev6Those are the emergency hot-fix commits, which are still in nom: |
@usev6 - Status changed from 'new' to 'open' |
From @usev6On Tue Oct 21 00:20:02 2014, bartolin@gmx.de wrote:
As an experiment I made the following change to nqp: ==== Inline Patchdiff --git a/src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java b/src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java
index fb95495..b0b4ba4 100644
--- a/src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java
+++ b/src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java
@@ -2386,8 +2386,6 @@ public final class Ops {
ArgsExpectation.invokeByExpectation(tc, cr, csd, args);
}
catch (ControlException e) {
- if (barrier && (e instanceof SaveStackException))
- ExceptionHandling.dieInternal(tc, "control operator crossed continuation barrier");
throw e;
}
catch (Throwable e) {
Afterwards I removed the mentioned special cases for JVM ("emergency hostfixes") in rakudo's code. I was able to build rakudo-j and to run 'make install'. Also, 'make test' and 'make spectest' didn't show any new failures. ==== Inline Patchdiff --git a/src/core/control.pm b/src/core/control.pm
index 4d82aa0..3037767 100644
--- a/src/core/control.pm
+++ b/src/core/control.pm
@@ -51,31 +51,13 @@ multi sub return(**@x is raw --> Nil) {
nqp::throwpayloadlexcaller(nqp::const::CONTROL_RETURN, @x);
}
-# RT #122732 - control operator crossed continuation barrier
-#?if jvm
-my &take-rw := -> | {
- THROW(nqp::const::CONTROL_TAKE,RETURN-LIST(nqp::p6argvmarray));
-}
-#?endif
-#?if !jvm
proto sub take-rw(|) { * }
multi sub take-rw() { die "take-rw without parameters doesn't make sense" }
multi sub take-rw(\x) { THROW(nqp::const::CONTROL_TAKE, x) }
multi sub take-rw(|) {
THROW(nqp::const::CONTROL_TAKE,RETURN-LIST(nqp::p6argvmarray))
}
-#?endif
-# RT #122732 - control operator crossed continuation barrier
-#?if jvm
-my &take := -> | {
- THROW(
- nqp::const::CONTROL_TAKE,
- nqp::p6recont_ro(RETURN-LIST(nqp::p6argvmarray))
- )
-}
-#?endif
-#?if !jvm
proto sub take(|) { * }
multi sub take() { die "take without parameters doesn't make sense" }
multi sub take(\x) {
@@ -87,7 +69,6 @@ multi sub take(|) {
nqp::p6recont_ro(RETURN-LIST(nqp::p6argvmarray))
)
}
-#?endif
proto sub goto(|) { * }
multi sub goto(Label:D \x --> Nil) { x.goto }
I must admit that I don't understand the purpose of the two lines I removed from src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java. They were added with nqp commit bfee0177b1 back in 2013. |
From @geekosaurOn Wed, Sep 21, 2016 at 2:58 PM, Christian Bartolomaeus via RT <
I don't recall either, but as rakudo was IIRC changed within the past few -- |
From @usev6The workaround for JVM has been removed with Rakudo commit c4055e455d. I'm closing this ticket as 'resolved'. |
1 similar comment
From @usev6The workaround for JVM has been removed with Rakudo commit c4055e455d. I'm closing this ticket as 'resolved'. |
@usev6 - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#122732 (status was 'resolved')
Searchable as RT122732$
The text was updated successfully, but these errors were encountered: