Hello Guile hackers.

We are in the process of integrating GNU poke[1] in GDB by mean of
libpoke.

Problem is, libpoke uses the Boehm GC, as guile does.  We are working on
switching to an ad-hoc exact collector, but it will get some time.

So, in the interim, we may:

1) Make both libguile and libpoke to do GC_INIT conditionally, only if
   no one else has initialized the collector before.  This is already in
   poke master.  A suggested (untested!) patch for guile below.

2) Test to see if the collector works properly.

3) Do bug-fix releases of both libguile and libpoke so the GDB people
   can check for the right version in configure.ac in order to allow
   configuring GDB with both libpoke and libguile support.

Does this sound like a plan?
Thanks in advance!

[1] https://jemarch.net/poke

diff --git a/libguile/gc.c b/libguile/gc.c
index 7717e9bef..36653d373 100644
--- a/libguile/gc.c
+++ b/libguile/gc.c
@@ -462,7 +462,8 @@ scm_storage_prehistory ()
   setenv ("GC_MARKERS", "1", 1);
 #endif
 
-  GC_INIT ();
+  if(!GC_is_init_called ())
+    GC_INIT ();
 
   size_t heap_size = GC_get_heap_size ();
   if (heap_size < DEFAULT_INITIAL_HEAP_SIZE)

Reply via email to