I did run this:
$ valgrind --leak-check=full --show-leak-kinds=all
/home/froggs/dev/nqp/install/bin/moar --execname="$0"
--libpath="/home/froggs/dev/nqp/install/share/nqp/lib"
--libpath="/home/froggs/dev/nqp/install/share/perl6/lib"
--libpath="/home/froggs/dev/nqp/install/share/perl6/runtime" --full-cleanup
/home/froggs/dev/nqp/install/share/perl6/runtime/perl6.moarvm -e 'my $x = 0;
loop { 0, .1 ... 1000; exit if $x++ > 10; }'
And the two biggets memory consumoptions are:
==8073== 5,750,160 bytes in 239,590 blocks are still reachable in loss record
2,318 of 2,319
==8073== at 0x4C2AB80: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8073== by 0x50396A6: MVM_malloc (alloc.h:2)
==8073== by 0x50396A6: MVM_bigint_div (bigintops.c:550)
==8073== by 0x4F95053: MVM_interp_run (interp.c:1717)
==8073== by 0x503F5CD: MVM_vm_run_file (moar.c:249)
==8073== by 0x401036: main (main.c:191)
==8073==
==8073== 122,670,080 bytes in 239,590 blocks are still reachable in loss record
2,319 of 2,319
==8073== at 0x4C2AB80: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8073== by 0x50497F9: mp_init_size (bn_mp_init_size.c:27)
==8073== by 0x5048345: mp_div (bn_mp_div.c:126)
==8073== by 0x50396DE: MVM_bigint_div (bigintops.c:574)
==8073== by 0x4F95053: MVM_interp_run (interp.c:1717)
==8073== by 0x503F5CD: MVM_vm_run_file (moar.c:249)
==8073== by 0x401036: main (main.c:191)
Note that there are still reachable. All non-reachable areas are just a bunch
of kilobytes in size.