Redian新闻
>
Snow Leopard充满活力的心脏——LLVM和Clang:【9/23】
avatar
Snow Leopard充满活力的心脏——LLVM和Clang:【9/23】# Apple - 家有苹果
p*t
1
如题。有课本吗?还是只有一页页的练习。
avatar
b*1
2
现在点开迅雷快传的地址都转到迅雷看看了。想下载清晰的电视剧都不行了。
avatar
m*h
3
总体来说去墨西哥带狗玩很方便。墨西哥还是发展中国家没有那么多条条框框。老墨大
多数很喜欢狗,没有亚洲人的dog phobia, 在墨西哥也很少看到亚洲面孔可以少很多麻
烦。我们一到就先咨询了一位小墨,一般来说狗狗只要不惹是生非, beach上随便玩。
大街上流浪狗很多,所以unleash也没人管。
跟中国一样,墨西哥全国上下一致努力创收,处处要小心陷阱。好在老墨还比较老实,
及算宰你一刀也是很温柔的。一般每次也就宰割十几二十刀的样子,比起少林寺厚道多
了。偶们在墨西哥入关的时候被狠宰了50刀。起因是今年墨国加了一条新的脱裤子放屁
的规定,健康证明上必需加一条free of parasites.虽然Mexico is well known as
parasites heaven. 而我们的兽医还不知道这条新规定。我们立即打电话回去,兽医可
以立即证明发个fax过来,墨官说只有他们的医生过来deworm才可以解决这个问题。还
拿了个昨天的同样问题的狗的文件给我们瞧。很巧的是居然也是从我们这个county过去
的。于是墨官打了个电话叫医生过来。等医生的中间又被抓进来一个带着短毛吉娃娃的
老太
avatar
a*a
4
http://bbs.weiphone.com/read.php?tid=506463
Mac OS X 10.6即所谓的Snow Leopard操作系统已正式发售。一如既往,Apple产
品光鲜的外表下凝聚了太多艰辛的劳作。ArsTechnic的John Siracusa以其独特的、专
业的、全面的视角深入翔实地体验这款最新的操作系统。
Weiphone.com将对该综述进行翻译整理并独家连载。欢迎关注。

引用
译注:为了帮助您更加顺畅地理解本文的内容,这里补充了文中一些相关概念的背景资
料。
编译器(compiler):是一种能够将源代码(通常由高级别的程序语言编写而成)
转换为低级别机器语言的程序。源码转换最重要的一个目的在于创建可执行文件。详情
请参考wikipedia。
LLVM(Low Level Virtual Machine,低级虚拟机):是构架编译器(compiler)
的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(
compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time
),对开发者保持开放,并兼容已有脚本。LLVM计划启动于2000年,最初由University
of Illinois at Urbana-Champaign的Chris Lattner主持开展。2006年Chris Lattner
加盟Apple Inc.并致力于LLVM在Apple开发体系中的应用。Apple也是LLVM计划的主要资
助者。详情请参考llvm.org以及wikipedia。
GCC(GNU Compiler Collection,缩写为GCC):是GNU计划推出的支持多种程序
语言的编译器系统。GCC是GNU Toolchain的主要组件。同时作为GNU操作系统的官方编
译器,GCC已被作为很多现代操作系统的标准编译器,如GNU/Linux,BSD以及Mac OS X
;同时也可用于很多嵌入式平台,如Symbian,AMCC等;还可用于一些游戏机平台如
Playstation和Sega Dreamcast等。详情请参阅Wikipedia以及GCC.GNU.org。
IDE(Integrated development environment):是一种能够为程序员和软件开
发提供广泛支持的软件程序。IDE通常由源码编辑器、编译器、自动化构建工具以及调
试器组成。详情请参阅Wikipedia。
早在几年以前,Apple就在LLVM开源计划上做出了重要的战略性投资。我曾在
一篇介绍Mac OS X Leopard的文章中简要介绍了LLVM的一些基本情况,Leopard利用
LLVM技术为JIT编译软件的OpenGL功能提供了高效的执行支持。在那篇综述的最后,我
这样结尾:
引用
对于LLVM,Apple拥有相当宏伟的计划:逐步摒弃Mac OS X中现有的GCC编译器
集合(complier collection),并采用全新的基于LLVM的编译器系统。该计划称为"
Clang",并且已有了一些可喜的进展。
随着Snow Leopard的推出,这一切开始逐渐浮出水面:Clang和LLVM已成为
Apple现行的编译策略。LLVM甚至还有一个全新的帅气的标:
目前,Apple为Mac OS X总共提供了四种编译器:GCC 4.0,GCC4.2,LLVM-GCC
4.2,以及Clang。这里是一个图表:
所有这些编译器在Mac OS X上均具有二进制兼容性(binary-compatible),这
就意味着您可以使用一种编译器创建一个资源库并与使用另一个编译器创建的可执行文
件相链接。并且,理论上讲,这些都是命令行编辑器并且都具有资源兼容性。然而,
Clang目前暂不支持GCC的一些复杂功能,同时Clang只支持C、Objective-C和一点点C++
(而GCC支持的相对较多)。Apple承诺,Clang未来将会为C++提供全方位支持,并且希望
能够在Snow Leopard的“服役期间”内解决GCC的不兼容问题。
Apple为Clang带来了两条引人注目的特性,那就是:更短的编译时间和更快的
可执行文件。Apple用其自身的软件如iCal,Address Book,Xcode,以及一些第三方软
件如Adium和Growl进行了测试,Clang编译器比GCC4.2快了近乎3倍。而对于编译的可执
行文件运行速度,由Clang生成的可执行文件则比GCC 4.2生成的可执行文件快5~25%。
同时,与其前任GCC相比,Clang提供了更为友好的开发环境。我承认这和多核
CPU等新技术的优势并无很大关联,但这确实开发者在使用Clang时首先面对的。
对于新手来说,Clang具有可嵌入性,因此Xcode可以在IDE的一些交互功能中
使用和最终的可执行文件相同的编译器结构。在编译过程中,Clang创建并保留了大量
详细的元数据(metadata),从而有利于调试和错误报告。例如,如果GCC返回如下错误:
这时候很难说清问题究竟在哪,对于编程新手来说尤为如此。好吧,牛人或许
已经看出来问题在哪了(如果您在WWDC上看到了这个例子的话),但是我相信大家都会认
为Clang返回的错误报告更有用:
可能个别菜鸟仍然不知所措,但是至少可以清晰地看到问题究竟出在哪里了:
与GCC含糊其辞的回应相比,Clang明明白白告诉你,哥们儿我不认识“NSString”这个
类型…
而且,有时候即使错误信息很明确,具体细节却未必如此,譬如GCC返回的这
个错误提示:
很明显,“无效的运算符号+”,但是这条语句中有4个“+”,究竟哪一个有
问题呢?多亏这些相近的元数据(metadata),Clang可以明确地为您指出问题所在:
更进一步抬杠。有时候错误一目了然,譬如这个GCC的例子,在报错行以上的
语句中丢失了一个分号“;”:
而Clang则更进一步,指出了究竟哪里丢失了这个分号:
楼下同学说了,这些都是“小事儿”,完全是鸡蛋里头挑骨头没事儿找事儿,
然而对于程序员来说,Clang提供的这种更为细致和细心的提示是相当贴心的。当然,
还有一些细节对于程序员来说则意义重大了,譬如这个基于LLVM的静态分析器(static
analyzer)。下图显示了静态分析器发现并指出了一处可能的bug:
图中高亮的部分明确地指出了任何一位程序员都有可能犯的bug。静态分析器
检测到,这一系列嵌套条件中,“myName”变量在至少一条路径里中未被初始化,从而
使得在最后一行发送“mutableCopy”时存在潜在的危险。
我相信Apple一定在其所有应用程序和操作系统上运行过静态分析器,以检查
一些潜在的bug。而对程序员来说,能够在庞大的代码库中自动监测潜在的bug,无疑是
一件非常爽的事情,对于自己开发平台的程序员来说更是如此。某种程度上来讲,Mac
OS X 10.6.0中存在的bug比先前的任何一个10.x.0系统的bug都要少,无疑这将归功于
LLVM。
通过Clang/LLVM的进一步推广和完善,Apple终于能够完全掌控其自己的开发
平台了。CodeWarrior的经验显然使Apple更加清晰地认识到,依赖于第三方平台开发工
具是相当不明智的。尽管花费了许多年的时间,但我认为即使最顽固的Metrowerks支持
者也会认为,Snow Leopard提供的Xcode确实是个相当不错的IDE。
许多年以来Apple一直纠结于GCC计划与Apple自身的编译需求之间的脱节,现
在Apple终于痛下决心另辟蹊径。诚然,GCC 4.2仍然是Snow Leopard的默认编译器,但
是很显然Apple已进入的过渡期。Clang自然是推荐的编译器,并且在可预见的将来,
Apple的焦点将集中于此。
上期连载中已经提到,硬件领域的技术进步已经使得软件和操作系统成为了目
前限制计算机性能的主要因素。或许您会有一些疑惑,究竟这些编译器将如何帮助开发
者更好地利用现有的硬件资源呢?下期连载将为您分析这个问题。
avatar
s*n
5
中文?数学?人教版,苏教版?
avatar
r*y
6
好像打开迅雷一个什么网页再用迅雷下载就可以,遇到过一次这样的。
不过确实现在很少迅雷了。据说做离线的卷了钱走人了?

【在 b********1 的大作中提到】
: 现在点开迅雷快传的地址都转到迅雷看看了。想下载清晰的电视剧都不行了。
avatar
m*j
7
赞,有钱有闲同学也有被宰的时候
avatar
m*k
8
most schools do not have standard text book

【在 p*t 的大作中提到】
: 如题。有课本吗?还是只有一页页的练习。
avatar
b*1
9
快传的页面现在点开就直接跳转到迅雷看看的页面了。
现在解决了。刚刚用VPN翻墙回去了,好囧。以前要翻墙出来,现在还要翻墙回去。而
且我发现即使迅雷离线下载打开,如果IP还是海外的话,也没速度,非得开着VPN才行。

【在 r****y 的大作中提到】
: 好像打开迅雷一个什么网页再用迅雷下载就可以,遇到过一次这样的。
: 不过确实现在很少迅雷了。据说做离线的卷了钱走人了?

avatar
c*a
10
"Nobody is interested in bothering a dog......."
haha :D
avatar
p*t
11

我是说这里的。

【在 s******n 的大作中提到】
: 中文?数学?人教版,苏教版?
avatar
b*y
12
有钱有闲的才容易被宰。

【在 m***j 的大作中提到】
: 赞,有钱有闲同学也有被宰的时候
avatar
a*l
13
我们这里据说今年开始用新加坡的数学课本
可能因为新加坡的数学评测成绩最好,但这是在中国没有参加的情况下
如果中国参加评测的话,大概你直接拿中国课本用就行了
avatar
w*6
14
去了一趟,没有腹泻啥的么?

【在 m***h 的大作中提到】
: 总体来说去墨西哥带狗玩很方便。墨西哥还是发展中国家没有那么多条条框框。老墨大
: 多数很喜欢狗,没有亚洲人的dog phobia, 在墨西哥也很少看到亚洲面孔可以少很多麻
: 烦。我们一到就先咨询了一位小墨,一般来说狗狗只要不惹是生非, beach上随便玩。
: 大街上流浪狗很多,所以unleash也没人管。
: 跟中国一样,墨西哥全国上下一致努力创收,处处要小心陷阱。好在老墨还比较老实,
: 及算宰你一刀也是很温柔的。一般每次也就宰割十几二十刀的样子,比起少林寺厚道多
: 了。偶们在墨西哥入关的时候被狠宰了50刀。起因是今年墨国加了一条新的脱裤子放屁
: 的规定,健康证明上必需加一条free of parasites.虽然Mexico is well known as
: parasites heaven. 而我们的兽医还不知道这条新规定。我们立即打电话回去,兽医可
: 以立即证明发个fax过来,墨官说只有他们的医生过来deworm才可以解决这个问题。还

avatar
c*0
15
我们孩子的学校用的是Open Court Reading 和Saxon Math,amazon上都有。
avatar
c*a
16
这么说换条狗带回来都没有人问哦。。。。
avatar
v*e
17
据说国内有卖的,孩子他爷爷还问过我们,需不需要。
后来还是决定不买,看看书店里卖的练习册,大概也能知道是什么样的进度了。

【在 p*t 的大作中提到】
: 如题。有课本吗?还是只有一页页的练习。
avatar
m*h
18
Actually, Cancun food is surprisingly delicious.

【在 w********6 的大作中提到】
: 去了一趟,没有腹泻啥的么?
avatar
y*a
19
破狗这趟国出的,照片呢
avatar
m*h
20
这是凤凰城的海关,不知道其他地方怎么样

【在 c******a 的大作中提到】
: 这么说换条狗带回来都没有人问哦。。。。
avatar
m*h
21
已经贴了一大把了。
再来几张临走的吧

【在 y*********a 的大作中提到】
: 破狗这趟国出的,照片呢
avatar
N*E
22
the last one...........
avatar
s*r
23
哈哈
屁股向后平沙落雁式

【在 m***h 的大作中提到】
: 已经贴了一大把了。
: 再来几张临走的吧

avatar
b*t
24
笑死

【在 s******r 的大作中提到】
: 哈哈
: 屁股向后平沙落雁式

avatar
c*a
25
再加回眸一笑百媚生

【在 s******r 的大作中提到】
: 哈哈
: 屁股向后平沙落雁式

avatar
c*a
26
这小兔尾巴忒可爱了!
avatar
m*h
27
呵呵,昨晚回来三只脚走路

【在 c******a 的大作中提到】
: 这小兔尾巴忒可爱了!
avatar
m*j
28
why is that cold?

【在 m***h 的大作中提到】
: 呵呵,昨晚回来三只脚走路
avatar
y*a
29
不得不说,破狗的日子比臭猫们美多了,你太偏心了
avatar
m*h
30
昨天据说最低-15F,历史新低

【在 m***j 的大作中提到】
: why is that cold?
avatar
m*h
31
猫猫喜欢睡在温暖舒适的大房子里过着纸醉金迷醉生梦死的糜烂生活

【在 y*********a 的大作中提到】
: 不得不说,破狗的日子比臭猫们美多了,你太偏心了
avatar
p*f
32
每次看别人在海边玩儿就羡慕不已,可惜没那个福气了.
avatar
b*n
33
破狗冰火交加啊,身子骨可真结实
avatar
e*u
34
哇,太美了

【在 m***h 的大作中提到】
: 已经贴了一大把了。
: 再来几张临走的吧

avatar
w*w
35
WOWOWOW, 這是何等的狗生啊!
貼在哪裡,我沒看到?

【在 m***h 的大作中提到】
: 已经贴了一大把了。
: 再来几张临走的吧

avatar
y*e
36
白雪真爽。。。
avatar
w*j
37
nice pictures
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。