
LLVM 6.0.0 Release - deng
http://lists.llvm.org/pipermail/llvm-dev/2018-March/121675.html
======
m1h4
Would love to see better transparency from Apple with regards to their
adoption/flavour of Clang. The current and next versions of Xcode (9.2 and
9.3) still do not support std::variant/std::optional in Cpp17 for example…

~~~
AlexeyBrin
Apple's LLVM and Clang from Xcode 9 are based on version 4.0 of the main
LLVM/Clang. You'll need at least LLVM/Clang 5.0 for more C++17 compatibility.

To be fair, modern C++ support is not a priority for Apple, their efforts are
more toward Swift.

~~~
cozzyd
It's fine if it's not a priority, but why ship a crippled compiler when they
could ship the upstream compiler? ABI issues maybe? (I've heard from OS X
users that XCode updates have broken the string ABI multiple times anyway...).

I don't really care too much since I'm not an OS X user, but some people
insist on trying to compile/run some of the software I work on on OS X...

~~~
Joky
Talking of Apple Clang as a crippled compiler comes across as very uneducated
opinion to me. It goes through an extensive validation / stabilization for
many months before being released. So yes it adds some delay in getting new
shiny features, but calling it "crippled" seems like a very much uneducated
opinion here.

You can have an idea about the integration exactly what version from upstream
Apple is integrating by looking at Swift (they somehow have to be in sync). I
guess the last Xcode update was: [https://github.com/apple/swift-
clang/commits/swift-4.1-branc...](https://github.com/apple/swift-
clang/commits/swift-4.1-branch) The next minor update will likely be this one:
[https://github.com/apple/swift-
clang/commits/swift-4.2-branc...](https://github.com/apple/swift-
clang/commits/swift-4.2-branch) ; so judging at the history I bet you'll get a
version of clang that is based of clang-5.0 upstream. And likely the next
major Xcode (10?) would be based of this: [https://github.com/apple/swift-
llvm/tree/swift-5.0-branch](https://github.com/apple/swift-
llvm/tree/swift-5.0-branch) ; which is based off clang-6.0. Note that this
branch will very likely get many bug fixes in the next ~6 months. (the above
are only guesses based on past release, I don't know anything about their
current plan or schedule).

The Apple engineers will try to build all variants of the Apple OS for all the
HW they ship with this new clang-6.0 based branch. The usual process is to fix
upstream the development of clang-7.0 and cherry-pick in these branches.

So the compiler that you'll get with the next major Xcode, even if based of
clang-6.0 will have many/most of the bug-fixes that will be in clang-7.0
(release in July), but not most of the new features (and new bugs!). Caveat:
this apply only to ARM64 and X86, of course Apple does not try to backport
bugfixes for platform they don't support.

(Note that libc++ is handled a bit differently.)

Disclaimer: I was part of the Apple clang team until ~1y ago.

~~~
cozzyd
I'm sure a lot of work goes into it, but often features that are present in
upstream clang seem to be removed or heavily delayed. Fom the perspective of a
Linux "developer" whose software (C++ scientific tools) sometimes gets
compiled with the Xcode clang++, I've seen (i.e. been told of by Apple users)
all sorts of problems that don't happen with upstream clang or modern gcc. The
fact that the versioning isn't coherent with upstream clang makes things even
more confusing.

~~~
pertymcpert
What features?

~~~
cozzyd
Well the one I'm familiar with is Apple's explicit disabling of thread-local
storage for a long time. See e.g.
[https://stackoverflow.com/a/23850891](https://stackoverflow.com/a/23850891),
which thankfully has been fixed since then (but it took something like 2
years).

------
kevstev
Did I miss something big, or did this seem like a small changelog for a major
release? Its been a few years since I have been a daily user of llvm, but all
the changes seemed very small reading their description.

------
ryancheung
The Apple LLVM 9.0 still does not support LeakSanitizer, but document in
[https://github.com/google/sanitizers/wiki/AddressSanitizerLe...](https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizer)
show it supports x86 OSX, holy shit!

~~~
ryancheung
I'm kinda newbie, after brew install llvm, LeakSanitizer found...

~~~
ryancheung
I googled, and can't find any link which can tell me what the difference
between llvm and Apple llvm.

------
jedisct1
Any benchmarks yet?

