Skip to content

Instantly share code, notes, and snippets.

@dogbert17
Created December 2, 2021 13:10
Show Gist options
  • Save dogbert17/9bf6d86d03b424c300829bad6b3dafee to your computer and use it in GitHub Desktop.
Save dogbert17/9bf6d86d03b424c300829bad6b3dafee to your computer and use it in GitHub Desktop.
GC error in t/spec/S32-str/indent.rakudo.moar
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff720e700 (LWP 125092)]
1..63
ok 1 - Simple .indent(1)
ok 2 - Simple .indent(2)
ok 3 - Simple .indent(3)
ok 4 - Simple .indent(4)
ok 5 - New indent goes after existing - .indent(1)
ok 6 - New indent goes after existing - .indent(2)
ok 7 - New indent goes after existing - .indent(3)
ok 8 - New indent goes after existing - .indent(4)
ok 9 - Same space - .indent(1) prefix="\x[20]"
ok 10 - Same space - .indent(1) prefix="\x[2002]"
ok 11 - Same space - .indent(2) prefix="\x[20]"
ok 12 - Same space - .indent(2) prefix="\x[2002]"
ok 13 - Same space - .indent(3) prefix="\x[20]"
ok 14 - Same space - .indent(3) prefix="\x[2002]"
ok 15 - Same space - .indent(4) prefix="\x[20]"
ok 16 - Same space - .indent(4) prefix="\x[2002]"
ok 17 - Samespace indent should work for a full $?TABSTOP with \t
ok 18 - Mixed space - .indent(1) prefix="\x[20]"
ok 19 - Mixed space - .indent(1) prefix="\x[9]"
ok 20 - Mixed space - .indent(1) prefix="\x[2002]"
ok 21 - Mixed space - .indent(2) prefix="\x[20]"
ok 22 - Mixed space - .indent(2) prefix="\x[9]"
ok 23 - Mixed space - .indent(2) prefix="\x[2002]"
ok 24 - Mixed space - .indent(3) prefix="\x[20]"
ok 25 - Mixed space - .indent(3) prefix="\x[9]"
ok 26 - Mixed space - .indent(3) prefix="\x[2002]"
ok 27 - Mixed space - .indent(4) prefix="\x[20]"
ok 28 - Mixed space - .indent(4) prefix="\x[9]"
ok 29 - Mixed space - .indent(4) prefix="\x[2002]"
ok 30 - Mixed space - .indent(5) prefix="\x[20]"
ok 31 - Mixed space - .indent(5) prefix="\x[9]"
ok 32 - Mixed space - .indent(5) prefix="\x[2002]"
ok 33 - Mixed space - .indent(6) prefix="\x[20]"
ok 34 - Mixed space - .indent(6) prefix="\x[9]"
ok 35 - Mixed space - .indent(6) prefix="\x[2002]"
ok 36 - Mixed space - .indent(7) prefix="\x[20]"
ok 37 - Mixed space - .indent(7) prefix="\x[9]"
ok 38 - Mixed space - .indent(7) prefix="\x[2002]"
ok 39 - Mixed space - .indent(8) prefix="\x[20]"
ok 40 - Mixed space - .indent(8) prefix="\x[9]"
ok 41 - Mixed space - .indent(8) prefix="\x[2002]"
ok 42 - Simple outdent
ok 43 - Simple outdent with tab (explodes because we delete from left)
Asked to remove 4 spaces, but the shortest indent is 3 spaces
in block <unit> at t/spec/S32-str/indent.rakudo.moar line 62
ok 44 - Excess outdent test for correct output
ok 45 - Excess outdent test for warning
ok 46 - indent(*) on empty string
ok 47 - Whatever* outdent with at least 1 common indent
ok 48 - Whatever* outdent with one line flush left already
ok 49 - .indent(*) ignores empty lines
ok 50 - Tab explosion on outdent
ok 51 - Test that tabs explode from the right
ok 52 - Check that varying amounts of space before a tabstop explode in a visually consistent way
ok 53 - Spaces before a hard tab should be coalesced into the tabstop when exploding
ok 54 - Test that space-tab-tab outdent works as intended
ok 55 - Check that mixed spaces and tabs outdent correctly
ok 56 - Multiline indent test with tab-space indent
Thread 1 "moar" hit Breakpoint 1, MVM_panic (exitCode=0, messageFormat=0x0) at src/core/exceptions.c:840
840 MVM_NO_RETURN void MVM_panic(MVMint32 exitCode, const char *messageFormat, ...) {
(gdb) bt
#0 MVM_panic (exitCode=0, messageFormat=0x0) at src/core/exceptions.c:840
#1 0x00007ffff791d7ac in MVM_disp_resume_mark_resumption_state (tc=0x55555555ae30, res_state=0x7ffff7232450, worklist=0x5555595b01c0, snapshot=0x0) at src/disp/resume.c:361
#2 0x00007ffff7828d89 in mark (tc=0x55555555ae30, from_record=0x7ffff7233278, worklist=0x5555595b01c0, snapshot=0x0) at src/core/callstack.c:852
#3 0x00007ffff782a06b in MVM_callstack_mark_current_thread (tc=0x55555555ae30, worklist=0x5555595b01c0, snapshot=0x0) at src/core/callstack.c:952
#4 0x00007ffff7865c19 in MVM_gc_root_add_tc_roots_to_worklist (tc=0x55555555ae30, worklist=0x5555595b01c0, snapshot=0x0) at src/gc/roots.c:155
#5 0x00007ffff786a7ee in MVM_gc_collect (tc=0x55555555ae30, what_to_do=0 '\000', gen=0 '\000') at src/gc/collect.c:121
#6 0x00007ffff785ff6c in run_gc (tc=0x55555555ae30, what_to_do=0 '\000') at src/gc/orchestrate.c:444
#7 0x00007ffff7860646 in MVM_gc_enter_from_allocator (tc=0x55555555ae30) at src/gc/orchestrate.c:599
#8 0x00007ffff78611a3 in MVM_gc_allocate_nursery (tc=0x55555555ae30, size=168) at src/gc/allocation.c:37
#9 0x00007ffff7860f71 in MVM_gc_allocate (tc=0x55555555ae30, size=168) at src/gc/allocation.h:15
#10 0x00007ffff7860f96 in MVM_gc_allocate_zeroed (tc=0x55555555ae30, size=168) at src/gc/allocation.h:21
#11 0x00007ffff7861583 in MVM_gc_allocate_object (tc=0x55555555ae30, st=0x555557784930) at src/gc/allocation.c:86
#12 0x00007ffff78a306e in allocate (tc=0x55555555ae30, st=0x555557784930) at src/6model/reprs/P6opaque.c:67
#13 0x00007ffff77e7929 in MVM_interp_run (tc=0x55555555ae30, initial_invoke=0x7ffff79b82e8 <toplevel_initial_invoke>, invoke_data=0x55555561cbd0, outer_runloop=0x0) at src/core/interp.c:1639
#14 0x00007ffff79b844e in MVM_vm_run_file (instance=0x55555555a2a0, filename=0x7fffffffe1fa "/home/dogbert/repos/rakudo/perl6.moarvm") at src/moar.c:505
#15 0x0000555555555c97 in main (argc=8, argv=0x7fffffffdd78) at src/main.c:307
(gdb) info threads
Id Target Id Frame
* 1 Thread 0x7ffff7252440 (LWP 125091) "moar" MVM_panic (exitCode=0, messageFormat=0x0) at src/core/exceptions.c:840
2 Thread 0x7ffff720e700 (LWP 125092) "spesh optimizer" futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5555556134e0) at ../sysdeps/nptl/futex-internal.h:183
(gdb) f 1
#1 0x00007ffff791d7ac in MVM_disp_resume_mark_resumption_state (tc=0x55555555ae30, res_state=0x7ffff7232450, worklist=0x5555595b01c0, snapshot=0x0) at src/disp/resume.c:361
361 MVM_gc_worklist_add(tc, worklist, &(current->state));
(gdb) l
356
357 /* Mark the state along the linked list. */
358 MVMDispResumptionState *current = res_state;
359 while (current) {
360 if (worklist)
361 MVM_gc_worklist_add(tc, worklist, &(current->state));
362 else
363 MVM_profile_heap_add_collectable_rel_const_cstr(tc, snapshot,
364 (MVMCollectable *)current->state, "Dispatch resumption state");
365 current = current->next;
(gdb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment