Hi,
I just merged master to guile-vm, but I'm not sure if I really wanted to
do that now. Normal test suites are failing:
lt-guile: gc.c:604: scm_i_gc: Assertion `scm_cells_allocated ==
scm_i_marked_count ()' failed.
/home/wingo/src/guile/vm/test-suite/standalone/test-use-srfi: line 27:
29507 Aborted guile -q --use-srfi=1,10 > /dev/null <<EOF
(if (and (defined? 'partition)
(defined? 'define-reader-ctor))
(exit 0) ;; good
(exit 1)) ;; bad
EOF
guile --use-srfi=1,10 fails to run
FAIL: test-use-srfi
This is on a core 2 duo, in 32-bit mode, configured as:
CFLAGS="-g -O2" ./configure --with-threads --enable-maintainer-mode
--prefix=/opt/guile-vm
So it seems that the new gc "cleanups" don't want you to touch mark bits
outside the mark phase. This is incompatible with other uses inside
guile itself, e.g. the SCM_DEBUG_CELL_ACCESSES == 1 case in inline.h, or
even the lazy smob case I wrote about here:
http://thread.gmane.org/gmane.lisp.guile.user/6372
There are more cases, rgrep for SCM_SET_GC_MARK in libguile/*.[ch].
I'm going to commit an #if 0 around those asserts in the vm branch,
because I don't have the brain power to deal with it. (It is irritating
that I have to even write this mail.) Certainly if the near-term choice
is between inaccurate statistics and calls to abort(), I know which
choice I prefer...
Andy
--
http://wingolog.org/