Send_linux 发表于 2012-05-14 09:11

FreeBSD 10 将使用 Clang 编译器替换 GCC

  
来自 phoronix 的消息称,根据 FreeBSD 2012 第一季度的状态报告 显示,来自 LLVM 的 Clang 编译器将成为 FreeBSD 10 的默认 C/C++ 编译器,废弃使用 GPL 授权协议的 GCC,而 Clang 的授权协议是 BSD。
Clang 是一个 C++ 编写、基于 LLVM、发布于 LLVM BSD 许可证下的 C/C++/Objective C/Objective C++ 编译器,其目标(之一)就是超越 GCC。
Clang 开发事出有因,Wiki 介绍如下:
Apple 使用 LLVM 在不支持全部 OpenGL 特性的 GPU (Intel 低端显卡) 上生成代码 (JIT),令程序仍然能够正常运行。之后 LLVM 与 GCC 的集成过程引发了一些不快,GCC 系统庞大而笨重,而 Apple 大量使用的 Objective-C 在 GCC 中优先级很低。此外 GCC 作为一个纯粹的编译系统,与 IDE 配合很差。加之许可证方面的要求,Apple 无法使用修改版的 GCC 而闭源。于是 Apple 决定从零开始写 C family 的前端,也就是基于 LLVM 的 Clang 了。
Clang 的特性:
   1. 快:通过编译 OS X 上几乎包含了所有 C 头文件的 carbon.h 的测试,包括预处理 (Preprocess),语法 (lex),解析 (parse),语义分析 (Semantic Analysis),抽象语法树生成 (Abstract Syntax Tree) 的时间,Clang 是 Apple GCC 4.0 的 2.5x 快。(2007-7-25)
   2. 内存占用小:Clang 内存占用是源码的 130%,Apple GCC 则超过 10x。
   3. 诊断信息可读性强:我不会排版,推荐去网站观看。其中错误的语法不但有源码提示,还会在错误的调用和相关上下文的下方有~~~~~和^的提示,相比之下 GCC 的提示很天书。
   4. GCC 兼容性。
   5. 设计清晰简单,容易理解,易于扩展增强。与代码基础古老的 GCC 相比,学习曲线平缓。
   6. 基于库的模块化设计,易于 IDE 集成及其他用途的重用。由于历史原因,GCC 是一个单一的可执行程序编译器,其内部完成了从预处理到最后代码生成的全部过程,中间诸多信息都无法被其他程序重用。Clang 将编译过程分成彼此分离的几个阶段,AST 信息可序列化。通过库的支持,程序能够获取到 AST 级别的信息,将大大增强对于代码的操控能力。对于 IDE 而言,代码补全、重构是重要的功能,然而如果没有底层的支持,只使用 tags 分析或是正则表达式匹配是很难达成的。

本文来自ChinaUnix新闻频道,如果查看原文请点:http://news.chinaunix.net/opensource/2012/0513/2169634.shtml

财版 发表于 2012-05-14 09:53

等C版的高手评价。

fender0107401 发表于 2012-05-14 10:05

:mrgreen:

duanbingnan 发表于 2012-05-14 10:39

LLVM大有超越GCC的势头

tony_trh 发表于 2012-05-14 17:30

苹果已经是LLVM的成功案例了,接下来就是FREEBSD,

kisswen 发表于 2012-05-14 17:42

正在使用9.0
不知道10什麼時候出來呢?

uusky_cu 发表于 2012-05-14 19:19

iPhone,iPad等,似乎都是基于FreeBSD的。当年乔布斯本来想用linux,结果跟linus谈判不欢而散。后来苹果还跟gcc合作,最后也是不欢而散。

最后苹果选择了跟FreeBSD和LLVM社区合作,现在LLVM确实对GCC构成威胁了。如果LLVM兼容gcc的选项,并且编译出来的二进制更加优秀的话,我想linus也会选择lvmm编译linux的吧?幸好,他们都是开源的,而且许可证更加宽松。对于商业用户来说,无疑是最乐意看到的。

ecloud 发表于 2012-05-14 20:19

uusky_cu 发表于 2012-05-14 19:19 static/image/common/back.gif
iPhone,iPad等,似乎都是基于FreeBSD的。当年乔布斯本来想用linux,结果跟linus谈判不欢而散。后来苹果还跟 ...

竟胡说八道
乔布斯当年在NEXT搞Mach的时候,Linus还在尿尿和泥巴玩呢
Mac OS X其实就是NextStep4.0,基于Mach3.0和4.3BSD,跟FreeBSD没有半毛钱关系

ecloud 发表于 2012-05-14 20:25

duanbingnan 发表于 2012-05-14 10:39 static/image/common/back.gif
LLVM大有超越GCC的势头
不是大有,而是已经超越了
只不过是kernel.org那群二货还扭扭捏捏的不好意思用llvm重编译
一方面不鸟GNU,一方面有打死不脱离gcc,口是心非,自作聪明,固步自封。所以说他们是一群二货

小鸟飞飞~ 发表于 2012-05-14 20:42

ecloud 发表于 2012-05-14 20:25 static/image/common/back.gif
不是大有,而是已经超越了
只不过是kernel.org那群二货还扭扭捏捏的不好意思用llvm重编译
一方面不鸟GN ...

linux内核跟gcc耦合程度是非常高的,你说人家内核小组2货,您用LLVM编译一个linux内核试试。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: FreeBSD 10 将使用 Clang 编译器替换 GCC