Thread overview
LLVM 3.0 support
May 11, 2013
David Nadlinger
May 11, 2013
Kai Nacke
May 11, 2013
David Nadlinger
May 11, 2013
Kai Nacke
May 11, 2013
David Nadlinger
May 11, 2013
David Nadlinger
May 11, 2013
Hi all,

How long do we want to keep support for LLVM 3.0?

I'd love to drop it right now, as LLVM 3.0 defined a "-float-abi" command line switch in TargetMachine.cpp, conflicting with our new one. It also entails quite some maintenance effort to write around the missing pieces of the API. And this is not considering the fact that the optimizer, etc. improvements in LLVM 3.1–3.3 actually lead to quite an improvement for LDC users as well.

IMHO, the only reason to keep it would be to support building against the outdated LLVM distro packages e.g. in Debian, but since LLVM is easy to build locally while packaging (LDC), I am not sure how much of an argument this is anyway.

Also, several interesting new developments in LDC (Windows/MinGW, ARM, …) will require LLVM 3.3+ anyway.

David
May 11, 2013
On Saturday, 11 May 2013 at 20:44:57 UTC, David Nadlinger wrote:
> Hi all,
>
> How long do we want to keep support for LLVM 3.0?
>
> I'd love to drop it right now, ....

Maintaining LLVM 3.0 compability is a burden. The whole llvmcompat.cpp file is only dedicated to this. (llvmcompath.h has only 1 additional define for LLVM 3.1.)

Therefore I think it can be dropped. I like to put more effort in integrating new LLVM features like passing of linker switches to object files (for pragma lib).

BTW: Would it be possible to configure the lycus CI to additionally use a LLVM head? This would help if something breaks because of new LLVM behaviour (as in the exception case).

Kai
May 11, 2013
On Saturday, 11 May 2013 at 21:12:01 UTC, Kai Nacke wrote:
> Maintaining LLVM 3.0 compability is a burden. The whole llvmcompat.cpp file is only dedicated to this. (llvmcompath.h has only 1 additional define for LLVM 3.1.)
>
> Therefore I think it can be dropped. I like to put more effort in integrating new LLVM features like passing of linker switches to object files (for pragma lib).

Mhm… I think the safest option right now would be to try and make everything work with LLVM 3.0 for the pending release, and immediately after branching drop 3.0 support.

This would entail reverting my float-abi stuff on the release branch.

> BTW: Would it be possible to configure the lycus CI to additionally use a LLVM head? This would help if something breaks because of new LLVM behaviour (as in the exception case).

Alex? ;) What we could do for Travis, though, is to upload our own nightly LLVM .debs (if there aren't any out there) to some server and pull them in before builds. We already do something similar for LLVM 3.1 right now, just using some PPA instead.

David
May 11, 2013
On Saturday, 11 May 2013 at 21:46:28 UTC, David Nadlinger wrote:
> Mhm… I think the safest option right now would be to try and make everything work with LLVM 3.0 for the pending release, and immediately after branching drop 3.0 support.

Yea, it is. The LDC_LLVM_VER_3x macros are placed everywhere. It requires some tedious cleanup work - best done after the release.

>> BTW: Would it be possible to configure the lycus CI to additionally use a LLVM head? This would help if something breaks because of new LLVM behaviour (as in the exception case).
>
> Alex? ;) What we could do for Travis, though, is to upload our own nightly LLVM .debs (if there aren't any out there) to some server and pull them in before builds. We already do something similar for LLVM 3.1 right now, just using some PPA instead.

Maybe this helps: http://blog.llvm.org/2013/04/llvm-debianubuntu-nightly-packages.html

Kai
May 11, 2013
On Saturday, 11 May 2013 at 21:52:43 UTC, Kai Nacke wrote:
> On Saturday, 11 May 2013 at 21:46:28 UTC, David Nadlinger wrote:
>> Mhm… I think the safest option right now would be to try and make everything work with LLVM 3.0 for the pending release, and immediately after branching drop 3.0 support.
>
> Yea, it is. The LDC_LLVM_VER_3x macros are placed everywhere. It requires some tedious cleanup work - best done after the release.

Okay, I'll move forward with this to fix the build.

Would still love to get more feedback on this, though.

David
May 11, 2013
On Saturday, 11 May 2013 at 21:52:43 UTC, Kai Nacke wrote:
> Maybe this helps: http://blog.llvm.org/2013/04/llvm-debianubuntu-nightly-packages.html

It most certainly will as they offer an Ubuntu 12.04 repository.

David