On Fri, 11 May 2012, Nelson H. F. Beebe wrote:
> In order to keep Reduce maximally portable, I believe that it is still
> important to avoid use of C99 extensions over C89, even if most gcc
> versions from the last few years supply them.
> Here is an example of a C99'ism that caused a compilation failure on
> one of my systems:
> cc-1040 cc: ERROR File = /usr/local/ashare/reduce/reduce-20120504-csl/csl/cslbase/fwin.h, Line = 98
> An identifier is expected.
> #define FWIN_LOG(...) /* nothing */
> 1 error detected in the compilation of
At least I can defend myself by noting the comment
* Logging support. This will give a no-op unless the preprocessor symbol
* DEBUG is defined at compile time.
* Usage (eg): FWIN_LOG("I reached %d of %s\n", __LINE__, __FILE__);
* Note the use of a C variadic macro. These were introduced in C99 and so
* by using them I am assuming I have a C compiler that is that new.
I am just going through the code changing things back to use of
FWIN_LOG(("format", a1, a2)) so I do not rely on variadic macros. AT
present I do not know how many or what other c99-isms have crept it. These
days when I write free-standing C code I tend to use int32_t and int64_t
freely, but I hope and believe CSL survives pre that.