On 22 Feb 2011, at 09:11, Andy Wingo wrote: >> The problem is SCM_BOOL_T convert to #nil, and (not #nil)==>#t ! So I >> can't get a logical result. > > I believe this indicates that you compiled this extension against > headers from 1.8 or earlier. Not sure how you managed that :)
I noticed that that is possible - in fact, to make sure to get it right, I removed all Guile headers in /usr/local/include/ and reinstalled guile-2.0. The Guile 1.8 header libguile.h is in /usr/local/include/, but the one from 2.0 is in /usr/local/include/guile/2.0/. Both directories are included when compiling. So if the include order is wrong, or the from 2.0 is somehow excluded, you may get the wrong one, and it may in fact compile. Perhaps 2.0 should have some check that it gets the right header.