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 calling a Proxy with FETCH being an anonymous sub in Rakudo #3223

Closed
p6rt opened this issue Sep 2, 2013 · 12 comments
Closed
Labels

Comments

@p6rt
Copy link

p6rt commented Sep 2, 2013

Migrated from rt.perl.org#119561 (status was 'rejected')

Searchable as RT119561$

@p6rt
Copy link
Author

p6rt commented Jul 19, 2012

From @softmoth

Rakudo 'nom' branch from today crashes in
S06-routine-modifiers/lvalue-subroutines.t. Test condensed down to the
following​:

sub checklastval () is rw {
  Proxy.new(
  FETCH => sub ($self) { },
  STORE => sub ($self, $val) { }
  );
};

checklastval() = 1;

If I change it to STORE => method ($val) { }, it doesn't segfault.

@p6rt
Copy link
Author

p6rt commented May 30, 2013

From @coke

On Thu Jul 19 14​:48​:32 2012, softmoth wrote​:

Rakudo 'nom' branch from today crashes in
S06-routine-modifiers/lvalue-subroutines.t. Test condensed down to the
following​:

sub checklastval () is rw {
Proxy.new(
FETCH => sub ($self) { },
STORE => sub ($self, $val) { }
);
};

checklastval() = 1;

If I change it to STORE => method ($val) { }, it doesn't segfault.

Still segfaulting a year later. Here's the backtrace​:

#​0 0xf7e2c775 in fill_params ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​1 0xf7e2e975 in Parrot_pcc_fill_params_from_op ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​2 0xf7e0e607 in Parrot_get_params_pc ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​3 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​4 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​5 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​6 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​7 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​8 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​9 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​10 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​11 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​12 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​13 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​14 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​15 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​16 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​17 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​18 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​19 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-devel/dynext
/perl6_ops.so
#​20 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​21 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​22 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​23 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​24 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​25 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​26 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​27 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​28 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​29 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​30 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​31 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​32 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​33 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​34 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​35 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​36 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​37 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​38 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​39 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​40 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​41 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​42 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​43 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​44 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​45 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​46 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​47 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-devel/dynext
/perl6_ops.so
#​48 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​49 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​50 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​51 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​52 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​53 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​54 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​55 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​56 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​57 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​58 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​59 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​60 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​61 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​62 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​63 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​64 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​65 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​66 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​67 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​68 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​69 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​70 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​71 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​72 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​73 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​74 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​75 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​76 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​77 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​78 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​79 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​80 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​81 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​82 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​83 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​84 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​85 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​86 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​87 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​88 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​89 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​90 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​91 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​92 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​93 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​94 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​95 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​96 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​97 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​98 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​99 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​100 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​101 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​102 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​103 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​104 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​105 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​106 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​107 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​108 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​109 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​110 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​111 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​112 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​113 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​114 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​115 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​116 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​117 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​118 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​119 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​120 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​121 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​122 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​123 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​124 0xf5c60f8b in Rakudo_cont_decontainerize ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​125 0xf5c611c8 in Rakudo_cont_store ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​126 0xf5c609d1 in Rakudo_binding_bind_one_param.isra.6 ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​127 0xf5c5f56b in Rakudo_binding_bind ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​128 0xf5c5b8db in Parrot_bind_signature ()
  from /home/coke/sandbox/installed_rakudo/install/lib/parrot/5.2.0-
devel/dynext/perl6_ops.so
#​129 0xf7e4ad7c in runops_fast_core ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​130 0xf7e4a988 in runops_int ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​131 0xf7e30916 in runops ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0
#​132 0xf7e2be08 in Parrot_pcc_invoke_from_sig_object ()
  from /home/coke/sandbox/installed_rakudo/install/lib/libparrot.so.5.2.0

... and then I got bored of copying.
--
Will "Coke" Coleda

@p6rt
Copy link
Author

p6rt commented May 30, 2013

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

@p6rt
Copy link
Author

p6rt commented Sep 2, 2013

From @masak

<timotimo> r​: class A { has $!a; method a { Proxy.new( FETCH => sub
($thing) { $!a } ) } }; say A.new.a
<camelia> rakudo 5aeaca​: OUTPUT«(signal SEGV)»
* masak submits rakudobug
<masak> r​: class A { has $!a; method a { Proxy.new( FETCH => sub
($thing) { 42 } ) } }; say A.new.a
<camelia> rakudo 5aeaca​: OUTPUT«(signal SEGV)»
<jnthn> I hate Proxy...
<jnthn> I'm not sure it's possible to make it not be fragile :/

@p6rt
Copy link
Author

p6rt commented Jul 17, 2014

From @coke

Failures in S06-routine-modifiers/lvalue-subroutines.t, parrot only​:

Anything that uses the sub checklastval​:

sub checklastval ($passwd) is rw {
  Proxy.new(
  FETCH => sub ($self) { #OK not used
  lastvar();
  },
  STORE => sub ($self, $val) { #OK not used
  die "wrong password" unless check($passwd);
  lastvar() = $val;
  }
  );
};

Causes the test file to abort. Fudged all these tests out for now.

--
Will "Coke" Coleda

@p6rt
Copy link
Author

p6rt commented Oct 17, 2014

From @usev6

On Parrot this is still a segfault​:

$ perl6-p -e 'class A { has $!a; method a { Proxy.new( FETCH => sub ($thing) { $!a } ) } }; say A.new.a'
Segmentation fault

On Moar and JVM the command runs and returns "(Any)".

@p6rt
Copy link
Author

p6rt commented Oct 17, 2014

@usev6 - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Oct 20, 2014

From @usev6

I tried to golf this down and got the following on Parrot (it runs on Moar and JVM)​:

$ perl6-p -e 'Proxy.new( FETCH => sub ($var) { 42 } );'
Segmentation fault

The next three commands are okay​:

$ perl6-p -e 'Proxy.new( FETCH => sub ($) { 42 } ); say "alive"'
alive
$ perl6-p -e 'Proxy.new( FETCH => method { 42 } ); say "alive"'
alive
$ perl6-p -e 'Proxy.new( FETCH => { 42 } ); say "alive"'
alive

1 similar comment
@p6rt
Copy link
Author

p6rt commented Oct 20, 2014

From @usev6

I tried to golf this down and got the following on Parrot (it runs on Moar and JVM)​:

$ perl6-p -e 'Proxy.new( FETCH => sub ($var) { 42 } );'
Segmentation fault

The next three commands are okay​:

$ perl6-p -e 'Proxy.new( FETCH => sub ($) { 42 } ); say "alive"'
alive
$ perl6-p -e 'Proxy.new( FETCH => method { 42 } ); say "alive"'
alive
$ perl6-p -e 'Proxy.new( FETCH => { 42 } ); say "alive"'
alive

@p6rt
Copy link
Author

p6rt commented Oct 20, 2014

@usev6 - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Mar 12, 2015

From @usev6

All these segfaults when calling a Proxy with FETCH are specific for Parrot. (E.g. the tests in S06-routine-modifiers/lvalue-subroutines.t do pass for MoarVM and JVM). Since support for Parrot was suspended with Rakudo Star Release 2015.02, I'm closing this ticket as 'rejected'.

I'll add the ticket to a list of closed ticket living in the mu repository​: https://github.com/perl6/mu/blob/master/misc/rt.perl.org/tickets_closed_parrot_only.txt.

In case support for Parrot will be restored in some future release the listed tickets can be checked and re-opened as appropriate.

@p6rt p6rt closed this as completed Mar 12, 2015
@p6rt
Copy link
Author

p6rt commented Mar 12, 2015

@usev6 - Status changed from 'open' to 'rejected'

@p6rt p6rt added the Bug label Jan 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant