www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - LLVM 3.0 support

reply "David Nadlinger" <see klickverbot.at> writes:
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
parent reply "Kai Nacke" <kai redstar.de> writes:
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
parent reply "David Nadlinger" <see klickverbot.at> writes:
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
parent reply "Kai Nacke" <kai redstar.de> writes:
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
next sibling parent "David Nadlinger" <see klickverbot.at> writes:
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
prev sibling parent "David Nadlinger" <see klickverbot.at> writes:
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
May 11 2013