[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 mailing list