Skip to content

Instantly share code, notes, and snippets.

Created September 4, 2014 05:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/5aa8c0d7b4c99d75da35 to your computer and use it in GitHub Desktop.
Save anonymous/5aa8c0d7b4c99d75da35 to your computer and use it in GitHub Desktop.
(gdb) bt
#0 0x00007ffff79a453b in MVM_gc_root_add_frame_roots_to_worklist () from /home/larry/nom/install/lib/libmoar.so
#1 0x00007ffff79a36bd in MVM_gc_worklist_mark_frame_roots () from /home/larry/nom/install/lib/libmoar.so
#2 0x00007ffff79a514a in process_worklist () from /home/larry/nom/install/lib/libmoar.so
#3 0x00007ffff79a53b4 in MVM_gc_collect () from /home/larry/nom/install/lib/libmoar.so
#4 0x00007ffff79a2a13 in run_gc () from /home/larry/nom/install/lib/libmoar.so
#5 0x00007ffff79a3238 in MVM_gc_enter_from_allocator () from /home/larry/nom/install/lib/libmoar.so
#6 0x00007ffff79a3361 in MVM_gc_allocate_nursery () from /home/larry/nom/install/lib/libmoar.so
#7 0x00007ffff79a33ad in MVM_gc_allocate_zeroed () from /home/larry/nom/install/lib/libmoar.so
#8 0x00007ffff79a34ed in MVM_gc_allocate_object () from /home/larry/nom/install/lib/libmoar.so
#9 0x00007ffff79b056b in MVM_repr_alloc_init () from /home/larry/nom/install/lib/libmoar.so
#10 0x00007ffff580ec20 in p6listitems () from /home/larry/nom/install/languages/perl6/runtime/dynext/libperl6_ops_moar.so
#11 0x00007ffff798b0b7 in MVM_interp_run () from /home/larry/nom/install/lib/libmoar.so
#12 0x00007ffff79f5e23 in MVM_vm_run_file () from /home/larry/nom/install/lib/libmoar.so
#13 0x0000000000400f26 in main ()
This is from:
{
multi sub cbal-tree(0){ Any }
multi sub cbal-tree(Int $n) {
my @r;
do {
if $n % 2 == 1 {
my $k = ($n - 1) div 2;
for cbal-tree($k) -> $a {
for cbal-tree($k) -> $b {
@r.push: ['x', $a, $b];
}
}
} else {
my $k = $n div 2;
for cbal-tree($k) -> $a {
for cbal-tree($k - 1) -> $b {
@r.push: ['x', $a, $b];
}
}
for cbal-tree($k - 1) -> $a {
for cbal-tree($k) -> $b {
@r.push: ['x', $a, $b];
}
}
}
}
@r;
}
say +cbal-tree(4);
}
{
sub heights(Any $x) {
return 0 unless $x;
my @results;
do {
for heights($x[1]) { @results.push: 1 + $_ };
for heights($x[2]) { @results.push: 1 + $_ };
}
@results;
}
sub is-hbal($x) {
my @heights = heights($x).sort;
@heights[*-1] - @heights[0] <= 1;
}
multi sub hbal-tree(0) { Any }
multi sub hbal-tree(1) { ['x', Any, Any] }
multi sub hbal-tree(Int $n) {
gather {
for hbal-tree($n - 1) -> $a {
for hbal-tree($n - 1) -> $b {
take ['x', $a, $b];
}
for hbal-tree($n - 2) -> $b {
if is-hbal(['x', $a, $b]) {
take ['x', $a, $b];
take ['x', $b, $a];
}
}
}
}
}
my @results = hbal-tree(3);
for ^15 {
say is-hbal(@results[$_]);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment