On 27-Dec-05, at 3:46 PM, Bradley Lucier wrote:
The problem seems to be in these lines in gambit.h:
#if CHAR_MAX == SCHAR_MAX #define ___SCHAR char #else #define ___SCHAR signed char #endif
I don't know why Marc thinks he needs these lines; I replaced them with
#define ___SCHAR signed char
and all was well ...
The above fragment of gambit.h is needed to allow some old C compilers which do not support "signed char" to compile Gambit. As I recall Sun' cc compiler on m68k had this problem.
I've fixed the problem by replacing that fragment with
#ifndef ___SCHAR #define ___SCHAR signed char #endif
This should work on modern C compilers, and for old ones the option "- D___SCHAR=char" can be added to the C compiler's command line to compile Gambit.
On a related subject, I have added the "wchar_t" type to the FFI (and wchar_t-string, nonnull-wchar_t-string, ...). This is useful for portability (on some C compilers wchar_t is 16 bits and on others it is 32 bits, this is now completely transparent to Scheme code).
Marc