Clang emulates gcc (even so far as identifying itself as GCC for source level 
compatibility), they use the same command line arguments. Internally, clang has 
a somewhat better optimizer than gcc and feedback to the developer (warnings, 
error, etc..) is generally more useful than gcc. They both feed llvm so the 
backend is the same in either case. Apple seems to have a bigger investment in 
pushing clang forward than gcc, which generally means it has more of a future 
(there's never a guarantee though). I've been developing Mac OS X software 
since before the release of 10.0 and quite frankly the underlying tools haven't 
changed *that* much, the notable exception being when they dropped jam as the 
project tool. Windows has undergone far greater changes in that same time 
period..

If it were my choice, Mac OS X 10.8 would be the base OS with Xcode 4.6.1 
(current) with clang as the officially supported compiler and with an option to 
use gcc. I don't see why that would't last at least the public lifecycle of 
JDK8. What I would be more concerned with is the apparent drift from what we 
know as Mac OS X towards something more iOS-like, that could mean libraries and 
frameworks we depend on no longer being available, but at that point it 
wouldn't be the same OS and we'd have to re-evaluate anyways. Sort of like 
what's happening with Windows 8 right now.

-DrD-

> One reason to use gcc instead of clang would be to have one less difference 
> between platforms. It's always annoying when different compilers have a 
> different set of warnings (even if the warnings are correct and useful) and 
> you try to get something to compile on all platforms.
> 
> I don't know if there is any performance difference between the two - either 
> in compile time or runtime performance of the generated code.
> 
> /Staffan
> 
> On 11 maj 2013, at 00:16, Tim Bell <tim.b...@oracle.com> wrote:
> 
>> All-
>> 
>> The question of what toolchain to use on MacOS when building JDK8 is in play.
>> 
>> This is important because the decisions we make in the next few weeks will 
>> be in place for the lifetime of JDK8, including all future JDK8 update 
>> releases.
>> 
>> I have a few different pieces of feedback at this point, and (due to my own 
>> ignorance of the developer environment choices on MacOS), I'd like to throw 
>> the discussion out to a larger audience of MacOS developers.
>> 
>> 1) Use gcc as the build does today.
>> 
>> 2) Use Clang.
>> 
>> 3) Support both (since they should both compile the same source) but 
>> identify Clang as the official tool.
>> 
>> 4) Use Xcode (er - wait - isn't Clang a part of Xcode?  Please correct me if 
>> I am mistaken here....)
>> 
>> 
>> As part of the build-infrastructure team, my #1 concern is getting solid, 
>> repeatable builds from the toolchain, every time, that that's what I mean by 
>> 'official'.
>> 
>> If developers feel adventurous and want to run out ahead using bleeding edge 
>> tools, good for them - have fun.
>> 
>> What we would like to define here is a solid baseline of what we use to run 
>> the official from-scratch JDK8 builds.  That said, I'd like to nail down the 
>> tools used, and the specific version of the tools.
>> 
>> Thanks in advance for any feedback.
>> 
>> Tim Bell
>> Java Platform Group Infrastructure
>> 
> 

Reply via email to