www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - Survey: Can we drop support for LLVM versions prior to 3.5?

reply "Kai Nacke" <kai redstar.de> writes:
Hi all!

Currently LDC can be compiled with LLVM 3.1-3.6 with support for 
LLVM trunk constantly added.

Because the LLVM API is not stable this broad support becomes 
more and more a burden. It is also likely that this set of LLVM 
libraries will not be supported by the new Travis container 
(which I like to use because of more RAM and CPU cores).

Versions 3.1, 3.2 and 3.3 have serious bugs which forces us to 
disable optimizations for some tests. Especially 3.3 is unusable 
with OS X!

Therefore I like to know which LLVM version do you use with LDC.

If no one objects then the plan would be that the next major 
release is the last one which can be compiled with LLVM 3.1-3.4.

Please give feedback!

Regards,
Kai
Apr 09 2015
next sibling parent "Dmitri Makarov" <dmakarv gmail.com> writes:
3.5.1
Apr 10 2015
prev sibling next sibling parent reply "Daniel N" <ufo orbiting.us> writes:
On Friday, 10 April 2015 at 05:56:36 UTC, Kai Nacke wrote:
 Hi all!

 Currently LDC can be compiled with LLVM 3.1-3.6 with support 
 for LLVM trunk constantly added.

 Because the LLVM API is not stable this broad support becomes 
 more and more a burden. It is also likely that this set of LLVM 
 libraries will not be supported by the new Travis container 
 (which I like to use because of more RAM and CPU cores).

 Versions 3.1, 3.2 and 3.3 have serious bugs which forces us to 
 disable optimizations for some tests. Especially 3.3 is 
 unusable with OS X!

 Therefore I like to know which LLVM version do you use with LDC.

 If no one objects then the plan would be that the next major 
 release is the last one which can be compiled with LLVM 3.1-3.4.

 Please give feedback!

 Regards,
 Kai
Yes, please do! Personally I only use 3.6+ but 3.5 is a reasonable level, I have been meaning to suggest the same. Considering llvm project is very refactoring happy, any new code I tried to write for ldc quickly degraded into ifdef hell, actually to the point where I lost motivation to contribute at all, my respects that you have managed this long. If we jump to 3.5 I might give it another whirl. :)
Apr 10 2015
parent "Kai Nacke" <kai redstar.de> writes:
Hi Daniel!

On Friday, 10 April 2015 at 09:08:30 UTC, Daniel N wrote:
 Considering llvm project is very refactoring happy, any new 
 code I tried to write for ldc quickly degraded into ifdef hell, 
 actually to the point where I lost motivation to contribute at 
 all, my respects that you have managed this long.

 If we jump to 3.5 I might give it another whirl. :)
I can also help with the ifdef help if you have something to contribute. This should not hinder you to provide new code/ideas! Regards, Kai
Apr 13 2015
prev sibling next sibling parent "Marc =?UTF-8?B?U2Now7x0eiI=?= <schuetzm gmx.net> writes:
openSUSE 13.1 (the previous release) comes with LLVM 3.4, but 
13.2 (the current one) has LLVM 3.5.

I'm providing packages [1] for 13.1, but they were only accepted 
into the semi-official devel:languages:D two months ago; I guess 
not many people are using it. So it's fine with me.

https://build.opensuse.org/package/show?project=devel%3Alanguages%3AD&package=ldc
Apr 10 2015
prev sibling next sibling parent reply "John Colvin" <john.loughran.colvin gmail.com> writes:
On Friday, 10 April 2015 at 05:56:36 UTC, Kai Nacke wrote:
 Hi all!

 Currently LDC can be compiled with LLVM 3.1-3.6 with support 
 for LLVM trunk constantly added.

 Because the LLVM API is not stable this broad support becomes 
 more and more a burden. It is also likely that this set of LLVM 
 libraries will not be supported by the new Travis container 
 (which I like to use because of more RAM and CPU cores).

 Versions 3.1, 3.2 and 3.3 have serious bugs which forces us to 
 disable optimizations for some tests. Especially 3.3 is 
 unusable with OS X!

 Therefore I like to know which LLVM version do you use with LDC.

 If no one objects then the plan would be that the next major 
 release is the last one which can be compiled with LLVM 3.1-3.4.

 Please give feedback!

 Regards,
 Kai
OK by me. It's not like building LLVM is particularly tricky anyway. Why drop 3.4?
Apr 10 2015
parent "Kai Nacke" <kai redstar.de> writes:
On Friday, 10 April 2015 at 09:46:38 UTC, John Colvin wrote:
 Why drop 3.4?
In case of controversial discussion I needed something to negotiate :-) In fact I still use 3.4 with my Solaris/OpenIndiana VM. Regards, Kai
Apr 13 2015
prev sibling next sibling parent "Dicebot" <public dicebot.lv> writes:
Actually last stable release doesn't compile with 3.6, only with 
3.5 (caught me by surprise when I was rebuilding Arch packages 
last time as they have already moved to 3.6 as default)
Apr 10 2015
prev sibling next sibling parent "Johan Engelen" <j j.nl> writes:
I am using LLVM 3.6 and trunk (I build LLVM myself).
The only reason I have builds for 3.4 and 3.5 is to fix backwards 
compatibility issues...

On Friday, 10 April 2015 at 05:56:36 UTC, Kai Nacke wrote:
 Because the LLVM API is not stable this broad support becomes 
 more and more a burden. It is also likely that this set of LLVM 
 libraries will not be supported by the new Travis container 
 (which I like to use because of more RAM and CPU cores).
Is anyone actively working on having green Travis build for LLVM 3.6+ ?
Apr 10 2015
prev sibling next sibling parent reply David Nadlinger via digitalmars-d-ldc <digitalmars-d-ldc puremagic.com> writes:
On 04/10/2015 07:56 AM, Kai Nacke via digitalmars-d-ldc wrote:
 If no one objects then the plan would be that the next major release is
 the last one which can be compiled with LLVM 3.1-3.4.
As the one who instigated this, I obviously agree. One thing to keep in mind is that supporting old version requires quite a bit of effort on our side too, and arguably for no good reason. You can always build a local copy LLVM as part of the LDC build process which you don't even need to keep around after linking the LDC executable (if you use static linking). In fact, this is exactly how the LDC release packages are built. — David
Apr 11 2015
parent "David Nadlinger" <code klickverbot.at> writes:
On Saturday, 11 April 2015 at 19:02:41 UTC, David Nadlinger wrote:
 One thing to keep in mind is that supporting old version 
 requires quite a bit of effort on our side too, and arguably 
 for no good reason. You can always build a local copy LLVM as 
 part of the LDC build process which you don't even need to keep 
 around after linking the LDC executable (if you use static 
 linking).  In fact, this is exactly how the LDC release 
 packages are built.
That being said, we should closely work with the distro package maintainers to make sure this transition goes smoothly for them. For people compiling from sources anyway it does not really matter what version of LLVM they compile. — David
Apr 11 2015
prev sibling next sibling parent Marco Leise <Marco.Leise gmx.de> writes:
I use 3.5.0.

-- 
Marco
Apr 11 2015
prev sibling next sibling parent "safety0ff" <safety0ff.dev gmail.com> writes:
3.5.1 here.
Apr 11 2015
prev sibling next sibling parent "weaselcat" <weaselcat gmail.com> writes:
On Friday, 10 April 2015 at 05:56:36 UTC, Kai Nacke wrote:
 Hi all!

 Currently LDC can be compiled with LLVM 3.1-3.6 with support 
 for LLVM trunk constantly added.

 Because the LLVM API is not stable this broad support becomes 
 more and more a burden. It is also likely that this set of LLVM 
 libraries will not be supported by the new Travis container 
 (which I like to use because of more RAM and CPU cores).

 Versions 3.1, 3.2 and 3.3 have serious bugs which forces us to 
 disable optimizations for some tests. Especially 3.3 is 
 unusable with OS X!

 Therefore I like to know which LLVM version do you use with LDC.

 If no one objects then the plan would be that the next major 
 release is the last one which can be compiled with LLVM 3.1-3.4.

 Please give feedback!

 Regards,
 Kai
I use LLVM 3.6 only debian stable, slackware, freebsd, and opensuse have prior to 3.5 in their repos AFAIK.
Apr 11 2015
prev sibling parent "Kai Nacke" <kai redstar.de> writes:
On Friday, 10 April 2015 at 05:56:36 UTC, Kai Nacke wrote:
 Hi all!

 Currently LDC can be compiled with LLVM 3.1-3.6 with support 
 for LLVM trunk constantly added.

 Because the LLVM API is not stable this broad support becomes 
 more and more a burden. It is also likely that this set of LLVM 
 libraries will not be supported by the new Travis container 
 (which I like to use because of more RAM and CPU cores).

 Versions 3.1, 3.2 and 3.3 have serious bugs which forces us to 
 disable optimizations for some tests. Especially 3.3 is 
 unusable with OS X!

 Therefore I like to know which LLVM version do you use with LDC.

 If no one objects then the plan would be that the next major 
 release is the last one which can be compiled with LLVM 3.1-3.4.

 Please give feedback!

 Regards,
 Kai
To summarize the survey: The old LLVM versions are not in use. I am going to drop the support of next major release. Regards, Kai
Apr 20 2015