What is the principle of updating rust-lang/llvm?


#1

I’m just curious, are there any reasons not to use the officially tagged release (3.7.1 as of today) ? Isn’t the 3.8 dev branch too cutting edge?

Rebasing Rust-specific (optimization) patches onto an official release can make distro-specific packaging a bit easier.


#2

I believe Rust can work with LLVM 3.6 and 3.7 (and possibly even 3.5), as well as the built-in one.


#3

I personally prefer to stick to LLVM releases wherever possible, but the update was done to implement unwinding for i686 MSVC which I would personally deem more important than sticking with any one particular LLVM release.

As @huon mentioned we maintain compatibility with currently released versions of LLVM (e.g. 3.5-3.7), and we will merge anything necessary to be compatible with the 3.8 release as well.


#4

Thanks guys for the explanation. I observed some horrible crashes with my locally built i686->x86_64 cross compiler and wondered if there was anything wrong with using the distro LLVM. I’ll post more details as a GitHub issue.


#5

A bugfix for a 32bit -> 64bit cross compilation bug landed a few days ago, maybe you were running into that.


#6

Just in, an important fix for ARM cpu’s:

http://llvm.org/viewvc/llvm-project?view=revision&revision=259657

Hopefully it can be merged soon. Performance takes a x2 hit in certain scenarios without it.