On 22/09/2017 13:29, Branko Čibej wrote: > On 22.09.2017 13:18, Julian Foad wrote: >> Julian Foad wrote: >>> When we released Subversion 1.0 in 2004, we were still thinking we had >>> better not use C'90 because it was only 14 years old and, you know, >>> people need to be able to compile svn on systems of a reasonable age. >>> >>> So we had a "strict C'89" policy. No "//" comments, for example. >>> >>> Now C'99 is 18 years old and C'90 is, ahem, 27 years old. Does anybody >>> else feel like we're trapped in the dark ages? The only reason not to >>> upgrade is our personal fear of "rocking the boat", it seems to me. >>> >>> Let's just do it? >>> >>> I know there is a problem with Microsoft not supporting C'99. C'90 >>> should be fine though, and some of C'99 if we want to. >> Oops, I misremembered that C89==C90, while C99 is the one that brings new >> features. >> >> And Brane is pointing out on IRC lots of difficulties... >> >> :-( > Yes, we've had this discussion before, and the difficulties remain. :) > > -- Brane
Maybe we'd consider changing our view on this topic a bit and rather than increment the source compatibility from C89/C90 to C99 change the project to state compatibility based on a chosen compiler set plus all compilers which are full C99 aware? I.e. we'd declare project compatibility to support: - any fully C99 compliant compiler - VS: 2010-2017 - GCC: 2.7-7.2 - Clang: xxx-xxx -xxxxxx We then basically limit ourselves to the feature set which is supported by our chosen compiler set. As far as I see it, one of the main restrictions we regularly face is the use of //-comment styles (especially when talking here integrated external libraries/code). This is something which has long been supported even in VS. The wikipedia page also provides quite a summary of C99-support in different compilers [1]. Regards, Stefan [1] https://en.wikipedia.org/wiki/C99#Implementations

