FreeBSD 10 将使用 Clang 编译器替换 GCC - 开源中国社区
FreeBSD 10 将使用 Clang 编译器替换 GCC
oschina 2012年05月13日

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

oschina oschina 发布于2012年05月13日 收藏 7 评论 16

有免费的MySQL,为什么还要买? >>>  

来自 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 分析或是正则表达式匹配是很难达成的。
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:FreeBSD 10 将使用 Clang 编译器替换 GCC
分享
评论(16)
最新评论
0
GCC接下来也会支持。LLVM。大家就在同一起步线上了。
GCC还有除LLVM之外的很多东东。
0

引用来自“i6250”的评论

BSD才是自由之王道

其实能把这些自由软件都联合起来,才是真正的王道。呵呵。不过这是不可能的!!所以能自由使用和研究就已经很好了。不能自由使用和研究的东西本身就是一种不自由。
0
BSD才是自由之王道
0
linux的乱象什么时候能有好转
0
期待之中
0
这是好事,以后不用那么麻烦了
0
还是更喜欢Gplv3的东西,那才是自由软件的王道
0
都说llvm的诊断信息可读性强,就其所提供的几个示例来看,我怎么感觉gcc的更好呢?llvm可能推荐方向确定的替代,但程序智能性方面远远没到可以完全了解人的需求的地步,所以很可能推荐错了。而gcc的提示相对抽象,也因此可以有更多的修改替代考量
0
有竞争是好事
0
*BSD无版权式“自由”还能撑多久?
0
除非有非常实质性的改变。不然肯定不用啊。
0
在window编译使用都很蛋疼..
0
有竞争,受益的是用户。也会激励gcc的进步。
0
习惯了GCC,换成CLANG还真是困难啊...唉
0
我们还都在用FREEBSD4.X/5.X
0
LLVM的前世今生: http://www.programmer.com.cn/9436/
gcc 作茧自缚啊
顶部