Derelict works ok now, good work! However, the .di files end up eating newlines.
Before: double ALLEGRO_USECS_TO_SECS(long x) { return x / 1e+06; } double ALLEGRO_MSECS_TO_SECS(long x) { return x / 1000; } double ALLEGRO_BPS_TO_SECS(int x) { return 1 / x; } After: double ALLEGRO_USECS_TO_SECS(long x);double ALLEGRO_MSECS_TO_SECS(long x);double ALLEGRO_BPS_TO_SECS(int x); I've tried merging https://github.com/D-Programming-Language/dmd/pull/538 but it doesn't fix this.