In ecl/config.h line 220 there is a block labelled /* Missing integer types */
The int8_t has a typedef of char which is incompatible with Windows standard types.
https://msdn.microsoft.com/en-us/library/323b6b3k.aspx
changing line 221 from:
typedef char int8_t; to typedef signed char int8_t;
Fixes the issue for me and allows me to compile both lisp code and C++ projects using ecl.lib
I know that char and signed char should be the same but the MS VS compile disagrees.
Hey,
thanks for the report, I've added signed prefixes to all types in that part:
/* Missing integer types */ #if _MSC_VER < 1900 -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; +typedef signed char int8_t; +typedef signed short int16_t; +typedef signed int int32_t; typedef unsigned char uint8_t; typedef unsigned short uint16_t;
as a side note, at least in principle ECL requires C99 support from 16.1.2 release.
I'll push the fix when gitlab gets up again.
Best regards, Daniel
Jón Hallur Haraldsson writes:
In ecl/config.h line 220 there is a block labelled /* Missing integer types */
The int8_t has a typedef of char which is incompatible with Windows standard types.
https://msdn.microsoft.com/en-us/library/323b6b3k.aspx
changing line 221 from:
typedef char int8_t; to typedef signed char int8_t;
Fixes the issue for me and allows me to compile both lisp code and C++ projects using ecl.lib
I know that char and signed char should be the same but the MS VS compile disagrees.