Tin đồn nói đó là vì Apple muốn thả GCC (do vấn đề với GPLv3 giấy phép ), và chuyển sang Clang.
Đây không phải là tin đồn, đây là vị trí được Apple công bố. Giấy phép GPL trên GCC ngăn Apple tích hợp triệt để trình biên dịch/phân tích cú pháp trong các công cụ phát triển của họ. Với Clang/LLVM, họ không có hạn chế như vậy và do đó có thể làm nhiều hơn với các công cụ của họ (bắt đầu với tích hợp phân tích tĩnh tĩnh trong Xcode 3.2 và đi xa hơn với Xcode 4). Ngoài các vấn đề cấp phép, Clang/LLVM xây dựng nhanh hơn nhiều so với GCC và trong các tiêu chuẩn của Apple (và kinh nghiệm của riêng tôi) tạo ra các tệp thực thi có hiệu suất tốt hơn so với GCC. Nó tạo ra các thông báo lỗi hữu ích hơn rất nhiều. Nó được xây dựng theo kiểu mô-đun, điều này cũng giúp dễ dàng duy trì và mở rộng hơn GCC trong tương lai.
Apple đã tuyên bố rằng tất cả các tính năng C++ ngoại trừ mẫu được xuất đều được hỗ trợ trong LLVM Compiler 2.0 sắp tới trong Xcode 4 và trình biên dịch đã tự lưu trữ trong một thời gian ngắn. Nếu bạn không thể chờ đợi, hoặc không muốn thử xem trước nhà phát triển Xcode 4, bạn có thể kiểm tra trình biên dịch ngay bây giờ bằng cách lấy mã nguồn từ main LLVM site.
Tôi khuyên bạn nên xem tự do có sẵn WWDC 2010 videos cho phiên 300 - "Công cụ nhà phát triển của Liên minh" và phiên 312 - "Có gì mới trong trình biên dịch LLVM" nơi họ trình bày những gì họ đang làm việc với trình biên dịch LLVM .
Thời gian khôn ngoan, chỉ có Apple mới có thể cho bạn biết khi nào họ sẽ làm điều gì đó và thậm chí họ không thể biết chính xác thời điểm nào đó sẽ sẵn sàng cho giờ vàng. Bạn có thể thực hiện các dự đoán được giáo dục dựa trên quỹ đạo cải tiến của bản xem trước nhà phát triển Xcode, nhưng đó là tất cả. Tuy nhiên, Clang/LLVM là cách mà Apple đi, vậy tại sao không lên kế hoạch cho điều đó?
Nguồn
2010-12-12 15:38:30
Cho đến nay, Clang chỉ hỗ trợ một vài tính năng C++ 0x, tôi không nghĩ rằng nó hỗ trợ mọi thứ không hỗ trợ GCC. – delnan
Vâng, Apple sử dụng GCC 4.1 và Clang trưởng thành hơn (ít nhất là đối với các tính năng được hỗ trợ) so với GCC 4.1. – peoro
Ngoại trừ Apple sử dụng GCC 4.2.1 không 4.1. – jer