[SDL] SDL 2.0 ABI locked
Ryan C. Gordon
icculus at icculus.org
Tue Mar 19 08:21:47 PDT 2013
> OK, let me be the Devil's advocate. Why should it target C89? It is
> a library released *now*, targeting devices which were not even dreamt
> of in '89.
It's a legitimate question, so I'll give you a legitimate answer: SDL
1.2 targets C89--more or less--because there wasn't _any_ system that
had C99 support at the time.
Even now, SDL 1.2 still supports systems that don't offer C99 (like
BeOS, which married itself to gcc 2.95's ABI, other embedded devices, etc).
To the Devil's Advocate point: Kernighan and Ritchie C was not what
reasonable compilers targeted, even many years before SDL 0.1. And
anyone that's pushed zlib through clang will tell you: it's getting hard
to compile K&R-style code now.
For SDL2, we're obviously focused on more modern platforms, but most
Visual Studio installs do not have stdint.h, and the latest version of
Visual Studio _still_ does not support C99, stdint.h or not.
This is why you're starting to see "//" comments creep into SDL2 (C99
_and_ Visual Studio support them), but not, say, variables declared in
the middle of a function.
But mostly, we're not religious about targeting a specific C standard.
We go with the tradeoff of what works and what makes the codebase nicer,
and that tradeoff changes over time.
More information about the SDL