LDC 0.15.2 beta1 is out!

Dan Olson via digitalmars-d-ldc digitalmars-d-ldc at puremagic.com
Fri Mar 20 18:03:52 PDT 2015


"Kai Nacke" <kai at redstar.de> writes:
> Hi everyone!
>
> On behalf of the LDC team I am proud to announce the LDC 0.15.2 beta1
> release!
> It is based on the 2.066.1 front-end and LLVM 3.1-3.6 (OS X: no
> support for 3.3).
>
> This minor release fixes some issues. Most important are the ABI
> changes which fixes a lot of bugs in the Win64 compiler.

I've got release-0.15.2 and LLVM 3.6 working with iOS and no
regressions.

The ABI change presented me with an interesting puzzle though.  It
switched extern (D) varargs to C style varags pushed on the stack
instead of a separate arg array.

I had been using fastcc function calls [1] for extern (D) on IOS due to
an LLVM optimizer bug with C calling convention (ccc) and, for a lesser
reason, because the fastcc assembly code can at times be beautiful
compared to ccc on iOS.  But fastcc doesn't support C style varags.

The path of least resistance seemed to be adopting ccc function calls.
The LLVM optimizer bug with ccc still caused a unittest failure with
LLVM 3.5.1.  Updating to LLVM 3.6 though apparently fixed it.

[1] http://llvm.org/docs/LangRef.html#calling-conventions


More information about the digitalmars-d-ldc mailing list