Hello, Andy Wingo <wi...@pobox.com> writes:
> I think we made a mistake in exposing bdw-gc.h to libguile.h users. > gc.h is quite scrupulous to not include it, but smob.h, inline.h > (sometimes), and pthread-threads.h pull it in. <libguile/bdw-gc.h> is intentionally pulled because our public headers use macros and inlines from <gc/gc.h>. > Besides the modularity concerns that lead us to need to add bdw-gc libs > and cflags to Guile's libs and cflags, there is an acute problem, and > that is that we enable pthread redirects -- so users of libguile get > pthread_create et al re-#defined. Yes, that’s intended. > I think that in 2.2 we should not expose libgc interfaces in libguile, That would be great, but then ‘scm_cell’, ‘SCM_NEWSMOB’, etc. would need to do a function call, which we don’t want. Even if we did want it, the change would break the ABI. > and that in 2.0 we should disable pthread redirects. Why? We rely on pthread redirects internally and if users use pthread, then they need it too, I suppose. A meta-comment: can we agree to take more time to discuss this sort of things? I’ll try to be responsive, and the earth won’t stop spinning if the fix waits a couple of days. ;-) Thanks, Ludo’.