Created
July 9, 2011 19:24
-
-
Save tadzik/1073860 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/core/Mu.pm b/src/core/Mu.pm | |
index 4b5fc16..8b746dd 100644 | |
--- a/src/core/Mu.pm | |
+++ b/src/core/Mu.pm | |
@@ -106,8 +106,15 @@ my class Mu { | |
multi method gist(Mu:D:) { self.perl } | |
proto method perl(|$) { * } | |
- multi method perl(Mu:D:) { self.Str } | |
multi method perl(Mu:U:) { self.HOW.name(self) } | |
+ multi method perl(Mu:D:) { | |
+ my $type = self.HOW.name(self); | |
+ $type ~ '.new(' ~ self.^attributes.map({ | |
+ substr($_.name, 2, nqp::chars($_.name)) | |
+ ~ ' => ', | |
+ ~ $_.get_value.perl | |
+ }).join(',') ~ ')'; | |
+ } | |
proto method DUMP(|$) { * } | |
multi method DUMP(Mu:D:) { self.perl } | |
┌─[tadzik@yavin4]─[~/src/nom] (nom) | |
└─[%]─> gdb perl6 | |
GNU gdb (Gentoo 7.2 p1) 7.2 | |
(gdb) run | |
Starting program: /home/tadzik/src/nom/perl6 | |
[Thread debugging using libthread_db enabled] | |
> class A { has $.b }; A.new(b => 5).perl | |
Program received signal SIGSEGV, Segmentation fault. | |
0x00007ffff3fe1b3c in Rakudo_cont_decontainerize () from dynext/perl6_ops.so | |
(gdb) bt | |
#0 0x00007ffff3fe1b3c in Rakudo_cont_decontainerize () | |
from dynext/perl6_ops.so | |
#1 0x00007ffff3fde13f in Rakudo_binding_bind_one_param () | |
from dynext/perl6_ops.so | |
#2 0x00007ffff3fdfb4a in Rakudo_binding_bind () from dynext/perl6_ops.so | |
#3 0x00007ffff3fd1676 in Parrot_bind_signature () from dynext/perl6_ops.so | |
#4 0x00007ffff7a61016 in runops_fast_core () | |
from /home/tadzik/src/rakudo/parrot_install/lib/libparrot.so.3.5.0 | |
#5 0x00007ffff7a60c5e in runops_int () | |
from /home/tadzik/src/rakudo/parrot_install/lib/libparrot.so.3.5.0 | |
#6 0x00007ffff7a49c2e in runops () | |
from /home/tadzik/src/rakudo/parrot_install/lib/libparrot.so.3.5.0 | |
#7 0x00007ffff7a454ee in Parrot_pcc_invoke_from_sig_object () | |
from /home/tadzik/src/rakudo/parrot_install/lib/libparrot.so.3.5.0 | |
#8 0x00007ffff7a4589e in Parrot_pcc_invoke_sub_from_c_args () | |
from /home/tadzik/src/rakudo/parrot_install/lib/libparrot.so.3.5.0 | |
#9 0x00007ffff7a6bc5e in Parrot_pf_execute_bytecode_program () | |
from /home/tadzik/src/rakudo/parrot_install/lib/libparrot.so.3.5.0 | |
#10 0x00007ffff7a358f2 in Parrot_api_run_bytecode () | |
from /home/tadzik/src/rakudo/parrot_install/lib/libparrot.so.3.5.0 | |
#11 0x00000000004015c0 in main () |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment