We, freeciv developers, should be aware of newish C11 standard. Not
that we could start using C11 features in a long time - we depend on
only some C99 features currently so that freeciv can be compiled with
compilers that do not implement C99 fully.


 Features like _Generic -keyword would make life easier if we could
use them exclusively, but as long as we need to support older
compilers, there would be no gain in just adding new code as
alternative to old one, and not replacing old code with new one.

 Some features that I do find interesting in relation to freeciv
development at the moment:

 - Static assertions - that's something Jacob wanted to implement even
with old compilers, but I think we should use C11 syntax and just make
it optional
 - Multithreading support - we do need basic threading, so for pre-C11
envs we have to retain current pthread/winthread implementations as
alternative, but C11 threading should be used when possible. We also
use some non-mandatory (currently means: only optional threaded AI
needs them) threading features that could be made available in C11
systems only
 - Improved Unicode support - I haven't investigated what this means
in practice, but sounds like alternative to pulling libicu dependency
in as discussed earlier. Even libicu couldn't be hard requirement, so
implementing things optionally for C11 systems only is no worse in
that respect
 - Variable length arrays are *optional* feature in C11 while they
were mandatory in C99, and we do depend on that. It's unlikely that
any system that we would otherwise support won't have variable length
arrays support, but we have at least theoretical problem here.

 - ML

Freeciv-dev mailing list

Reply via email to