BTW, the bdw-gc branch with my patch and SCM_DEBUG==1 still fails
tests on my Mac.
In guardians.c, line 169, SCM_CAR is applied to a non-pair:
Running popen.test
Running ports.test
scm_error_pair_access
Non-pair accessed with SCM_C[AD]R: `ERROR: In procedure symbol->string:
ERROR: Wrong type argument in position 1 (expecting symbol):
#<guardian 124e300 (reachable: 15 unreachable: 1)>
FAIL: check-guile
I use a modified scm_error_pair_access() that prints the function's
name (as seen above) and then sleeps a while, so I can attach gdb and
get this stack trace before letting it resume:
#0 0x9487546e in __semwait_signal ()
#1 0x948752ef in nanosleep$UNIX2003 ()
#2 0x948cae71 in sleep$UNIX2003 ()
#3 0x002ea943 in scm_error_pair_access (non_pair=0x11d9180) at ../../
libguile/pairs.c:50
#4 0x002c8e35 in finalize_guarded (ptr=0x11d91f0,
finalizer_data=0x11d9188) at ../../libguile/guardians.c:169
#5 0x000a0866 in GC_invoke_finalizers ()
#6 0x000a2ce9 in GC_generic_malloc_many ()
#7 0x000ab01a in GC_malloc ()
#8 0x002ea987 in scm_cell [inlined] () at inline.h:66
#9 0x002ea987 in scm_cons (x=0x9487546e, y=0x9487546e) at ../../
libguile/pairs.c:66
#10 0x002d0f5a in scm_make_list (n=0x4, init=0xb2920) at ../../
libguile/list.c:121
#11 0x002c8bbc in finalize_guarded (ptr=0x12615e8,
finalizer_data=0x12615a0) at ../../libguile/guardians.c:125
#12 0x000a0866 in GC_invoke_finalizers ()
#13 0x000a2ce9 in GC_generic_malloc_many ()
#14 0x000ab01a in GC_malloc ()
#15 0x002ea987 in scm_cell [inlined] () at inline.h:66
#16 0x002ea987 in scm_cons (x=0x9487546e, y=0x9487546e) at ../../
libguile/pairs.c:66
#17 0x002d0f5a in scm_make_list (n=0x4, init=0xb2920) at ../../
libguile/list.c:121
#18 0x002c8bbc in finalize_guarded (ptr=0x239ab00,
finalizer_data=0x239aaa8) at ../../libguile/guardians.c:125
#19 0x000a0866 in GC_invoke_finalizers ()
#20 0x000a2ce9 in GC_generic_malloc_many ()
#21 0x000ab01a in GC_malloc ()
#22 0x002ea987 in scm_cell [inlined] () at inline.h:66
#23 0x002ea987 in scm_cons (x=0x9487546e, y=0x9487546e) at ../../
libguile/pairs.c:66
#24 0x002d0f5a in scm_make_list (n=0x4, init=0xb2920) at ../../
libguile/list.c:121
#25 0x002c8bbc in finalize_guarded (ptr=0x22b2fe8,
finalizer_data=0x22b2f90) at ../../libguile/guardians.c:125
#26 0x000a0866 in GC_invoke_finalizers ()
#27 0x000a2ce9 in GC_generic_malloc_many ()
#28 0x000ab01a in GC_malloc ()
#29 0x002ea987 in scm_cell [inlined] () at inline.h:66
#30 0x002ea987 in scm_cons (x=0x9487546e, y=0x9487546e) at ../../
libguile/pairs.c:66
#31 0x002d0f5a in scm_make_list (n=0x4, init=0xb2920) at ../../
libguile/list.c:121
#32 0x002c8bbc in finalize_guarded (ptr=0x22c3f58,
finalizer_data=0x22c3f10) at ../../libguile/guardians.c:125
#33 0x000a0866 in GC_invoke_finalizers ()
#34 0x000a2ce9 in GC_generic_malloc_many ()
#35 0x000ab01a in GC_malloc ()
#36 0x002ea987 in scm_cell [inlined] () at inline.h:66
#37 0x002ea987 in scm_cons (x=0x9487546e, y=0x9487546e) at ../../
libguile/pairs.c:66
#38 0x002d0f5a in scm_make_list (n=0x4, init=0xb2920) at ../../
libguile/list.c:121
#39 0x002c8bbc in finalize_guarded (ptr=0x11db6a0,
finalizer_data=0x11db648) at ../../libguile/guardians.c:125
#40 0x000a0866 in GC_invoke_finalizers ()
#41 0x000a2ce9 in GC_generic_malloc_many ()
#42 0x000ab01a in GC_malloc ()
#43 0x002ea987 in scm_cell [inlined] () at inline.h:66
#44 0x002ea987 in scm_cons (x=0x9487546e, y=0x9487546e) at ../../
libguile/pairs.c:66
#45 0x002d0f5a in scm_make_list (n=0x4, init=0xb2920) at ../../
libguile/list.c:121
#46 0x002c8bbc in finalize_guarded (ptr=0x122b8f0,
finalizer_data=0x122b8a8) at ../../libguile/guardians.c:125
#47 0x000a0866 in GC_invoke_finalizers ()
#48 0x000a2ce9 in GC_generic_malloc_many ()
#49 0x000ab01a in GC_malloc ()
(More stack frames follow...)
[...]
#108 0x002d0f5a in scm_make_list (n=0x4, init=0xb2920) at ../../
libguile/list.c:121
#109 0x002c8bbc in finalize_guarded (ptr=0x11d7e08,
finalizer_data=0x11d7d88) at ../../libguile/guardians.c:125
#110 0x000a0866 in GC_invoke_finalizers ()
#111 0x000a2ce9 in GC_generic_malloc_many ()
#112 0x000ab01a in GC_malloc ()
#113 0x0033f01e in scm_cell [inlined] () at inline.h:120
#114 0x0033f01e in vm_debug_engine (vp=0x6a1fa0, program=<value
temporarily unavailable, due to optimizations>, argv=0xbfffa688,
nargs=7) at inline.h:523
#115 0x00331f5e in scm_c_vm_run (vm=0x69b2e8, program=0x4, argv=0x4,
nargs=4) at ../../libguile/vm.c:381
[...]
Ken