Skip to content
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

Segfault when putting YOU_ARE_HERE marker in a pblock in Rakudo #2940

Closed
p6rt opened this issue Oct 20, 2012 · 7 comments
Closed

Segfault when putting YOU_ARE_HERE marker in a pblock in Rakudo #2940

p6rt opened this issue Oct 20, 2012 · 7 comments

Comments

@p6rt
Copy link

p6rt commented Oct 20, 2012

Migrated from rt.perl.org#115372 (status was 'resolved')

Searchable as RT115372$

@p6rt
Copy link
Author

p6rt commented Oct 20, 2012

From @masak

<masak> r​: say -> {YOU_ARE_HERE}
<p6eval> rakudo b86628​: OUTPUT«(signal SEGV)»
* masak submits rakudobug
<masak> r​: say {YOU_ARE_HERE}
<p6eval> rakudo b86628​: OUTPUT«1␤»

@p6rt
Copy link
Author

p6rt commented Oct 21, 2012

From @coke

On Sat Oct 20 01​:47​:14 2012, masak wrote​:

<masak> r​: say -> {YOU_ARE_HERE}
<p6eval> rakudo b86628​: OUTPUT«(signal SEGV)»
* masak submits rakudobug
<masak> r​: say {YOU_ARE_HERE}
<p6eval> rakudo b86628​: OUTPUT«1␤»

FYI, Doesn't die in the REPL, but does on the command line.

--
Will "Coke" Coleda

@p6rt
Copy link
Author

p6rt commented Oct 21, 2012

The RT System itself - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Oct 22, 2014

From @usev6

This doesn't segfault any longer. Instead, an exception is thrown because method 'push' was not found​:

$ perl6-p -e 'say -> {YOU_ARE_HERE}' ## X​::Method​::NotFound
===SORRY!===
No such method 'push' for invocant of type 'NQPMu'

$ perl6-j -e 'say -> {YOU_ARE_HERE}' ## X​::Method​::NotFound
===SORRY!===
No such method 'push' for invocant of type 'NQPMu'

$ perl6-m -e 'say -> {YOU_ARE_HERE}' ## no typed exception here
===SORRY!===
Cannot find method 'push'

Is that reasonable? If so, this ticket can be closed IMHO.

If not, the test I added to S04-blocks-and-statements/pointy.t with commit Raku/roast@eae2dc7bb7 should be modified.

1 similar comment
@p6rt
Copy link
Author

p6rt commented Oct 22, 2014

From @usev6

This doesn't segfault any longer. Instead, an exception is thrown because method 'push' was not found​:

$ perl6-p -e 'say -> {YOU_ARE_HERE}' ## X​::Method​::NotFound
===SORRY!===
No such method 'push' for invocant of type 'NQPMu'

$ perl6-j -e 'say -> {YOU_ARE_HERE}' ## X​::Method​::NotFound
===SORRY!===
No such method 'push' for invocant of type 'NQPMu'

$ perl6-m -e 'say -> {YOU_ARE_HERE}' ## no typed exception here
===SORRY!===
Cannot find method 'push'

Is that reasonable? If so, this ticket can be closed IMHO.

If not, the test I added to S04-blocks-and-statements/pointy.t with commit Raku/roast@eae2dc7bb7 should be modified.

@p6rt
Copy link
Author

p6rt commented Apr 8, 2015

From @FROGGS

The previous message about push happened in Perl6​::Actions, because rakudo was surprised to spot a {YOU_ARE_HERE} outside of a setting. So that was not what we wanted.

Now the behaviour is​:

$ perl6 -e 'say {YOU_ARE_HERE}'
===SORRY!=== Error while compiling -e
Undeclared name​:
  YOU_ARE_HERE used at line 1

$ perl6 -e 'sub YOU_ARE_HERE { 42 }; say {YOU_ARE_HERE}'
-> ($_? is parcel) { #`(Block|88582752) ... }

Patch​: rakudo/rakudo@322d01b696
Test​: Raku/roast@47b74d04ea

@p6rt
Copy link
Author

p6rt commented Apr 8, 2015

@FROGGS - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant