Re: possible gc/weak hash table bug

2011-04-28 Thread Andy Wingo
Hi Michael, On Fri 25 Mar 2011 22:48, michaelawells michaelawe...@gmail.com writes: On Fri 18 Mar 2011 12:51, address@hidden (Ludovic CourtÃs) writes: michaelawells address@hidden writes: size_t len = SCM_HASHTABLE_N_ITEMS (table); while (k--)

Re: possible gc/weak hash table bug

2011-03-25 Thread Andy Wingo
On Fri 18 Mar 2011 12:51, l...@gnu.org (Ludovic Courtès) writes: michaelawells michaelawe...@gmail.com writes: size_t len = SCM_HASHTABLE_N_ITEMS (table); while (k--) { size_t removed; SCM alist = SCM_SIMPLE_VECTOR_REF (buckets, k); alist = scm_fixup_weak_alist

Re: possible gc/weak hash table bug

2011-03-25 Thread michaelawells
On Fri 18 Mar 2011 12:51, address@hidden (Ludovic CourtÃs) writes: michaelawells address@hidden writes: size_t len = SCM_HASHTABLE_N_ITEMS (table); while (k--) { size_t removed; SCM alist = SCM_SIMPLE_VECTOR_REF (buckets, k); alist =

Re: possible gc/weak hash table bug

2011-03-25 Thread michaelawells
I rebuilt the gc-7.1 library, this time using the --enable-threads=posix configure option. The exact same library was built. It would appear that configure, at least on my target, enables threads by default. On Mar 25, 2011, at 4:48 PM, michaelawells wrote: On Fri 18 Mar 2011 12:51,

Re: possible gc/weak hash table bug

2011-03-18 Thread michaelawells
As requested, I'm posting this to bug-guile@gnu.org. I'm now seeing this assertion failure, using a guile development snapshot (guile-2.0.0.104-f5fc7): dpm.linux: hashtab.c:136: vacuum_weak_hash_table: Assertion `removed = len' failed. static void vacuum_weak_hash_table (SCM table) {

Re: possible gc/weak hash table bug

2011-03-18 Thread michaelawells
I replaced vacuum_weak_hash_table with the following: static void vacuum_weak_hash_table (SCM table) { SCM buckets = SCM_HASHTABLE_VECTOR (table); unsigned long k = SCM_SIMPLE_VECTOR_LENGTH (buckets); size_t len = SCM_HASHTABLE_N_ITEMS (table); unsigned long org_k =

Re: possible gc/weak hash table bug

2011-03-18 Thread Ludovic Courtès
Hi, michaelawells michaelawe...@gmail.com writes: size_t len = SCM_HASHTABLE_N_ITEMS (table); while (k--) { size_t removed; SCM alist = SCM_SIMPLE_VECTOR_REF (buckets, k); alist = scm_fixup_weak_alist (alist, removed); FAILS HERE assert (removed =