sys-devel/crossdev
Available versions: 0.9.18-r10 ~0.9.19 **99999999
Installed versions: 0.9.18-r10(03:44:50 PM 11/29/2009)
Homepage: http://www.gentoo.org/
Description: Gentoo Cross-toolchain generator
交叉编译时很多嵌入式开发必须的工具,因为资料太少,遇到的问题又很难解决,所以交叉的开发环境一直让很多程序员头疼。我们就来了解一下gentoo下如何构建交叉编译环境。
先说说工具链,工具链是用来组建一个系统的工具包集合,因为它们使用输入和输出连接在一起,所以称为链。通常工具链包括以下几部分: Continue reading »
还有一周,公元记年的最后一位又要从0开始了。回首这十年,互联网技术的发展令人震惊。是时候总结以下这十年了,那些改变我们生活的技术和不怎么有用的技术们了。原作者通过邀请O‘Reilly内部的编辑,作者和朋友们,以及一些工业界的人士,连同一些评论和趋势,为我们总结了分别十种十年来最好和最坏的技术,这些技术没有特定的顺序。
- AJAX–已经很难记起AJAX(Asynchronous JavaScript and XML)诞生之前的生活时什么样子了吧,没关系,我将带你回忆。那是非常枯燥的年代,Web 1.0包含了大量的静态网页,每次点击都需要在web服务器上处理一个轮回,若你需要更多内容,就必须在网页中嵌入JAVA工具,并在心中祈祷用户的浏览器支持它。没有AJAX,我们就不会走到Web2.0,GMail和很多基于云计算的web应用。Flash依然很流行,但是在HTML5将要到来的时候,以前需要Flash或者Silverlight才能运行的RIA(胖互联网应用,Rich Internet Application)现在都能使用AJAX完成了。 Continue reading »
这是gcc maillist中某国际友人 laurent@guerby.net 做的2个小时报告的ppt,报告题目为GCC Toulibre 20091216。最近一直想深入了解gcc,而这个ppt基本包含本博想了解的内容,所以将其翻译并分享到这里。翻译过程中,很多地方可能有错,请大家不吝赐教。原版的ppt见文末。
- 什么是GCC
GCC–GNU Compiler Collection,即GNU 编译器集合。GCC即可作为本地编译器也能作为交叉编译器,它支持很多高级语言和多个编译和目标平台。GCC的网址 http://gcc.gnu.org.它是FSF基金会版权所有的自由软件. Continue reading »
不知不觉,一个多月的时间,Fred Chow的讲义就被翻译完了。感谢那些奉献代码的人,在编译器优化上所做的努力和探索永没有止境。
感谢忍住我蹩脚的英语和汉语,看了这些翻译的朋友们。在这个翻译的过程中,深深感到自己的水平很不足,很多翻译别说雅和达,连信这个简单的要求都很难达到。争取将这些资料进一步的完善,能够给更多的人一个可靠的参考。希望大家多提意见和建议.
单就我个人,还是在翻译的过程中,学到了很多,原先都是单纯的看ppt,但是发现那样的话,印象不顾深刻,所以就决定一点点的翻译。自这个博客创建以来,一直希望能将这里搞成编译爱好者们喜欢的网站,呵呵我将继续努力。
Fred Chow是Open64的几个元老级人物之一,高屋建瓴,统观全局的讲述,让我在翻译的过程中很是佩服,只有在这样的积累下,才能讲出这么详实概括的课程。 Continue reading »
此文是Fred Chow在德拉华大学所讲open64课程讲义的翻译,转载请注明出处 http://www.lingcc.com
Fred Chow 原版讲义见最后一页
- 软件开发指南
使用内部选项来开关每个优化–测试正常后的优化选项默认打开.尽量按照模块化原理开发,相关的模块定义尽量本地化。#ifdef Is_True_On宏来标记来断言和确认的使用。通过断言,确认程序和DevWarns协助debug。虽然包含debug信息的编译器速度慢很多,但是可以尽早的发现错误。
- Debug辅助工具
四类:抽取某个阶段内和不同阶段间的程序代码(使用选项 -tr???);抽取某个阶段内或不同阶段间的符号表(使用选项 -ts???);分析/优化过程中方便跟踪的工具(使用选项 -tt???);提供能在调试器中调用的打印程序。
- 存储管理
使用存储池机制(commom/util/memory.c)代替malloc/free.提供任意数量的独立操作的存储池,有类似栈的操作,pop是释放内存的唯一方式。使用基于临时特性的存储池–永久的、PU级的、阶段级的和基本块级的。 Continue reading »
现在自己可谓hostmoster和bluehost都体验过的,有信心说些评价给各位想在国外空间建博的朋友。我现在的blog建在bluehost上。hostmoster和bluehost我各有半个月的使用记录。hostmonster从09年11月18-12月3日。bluehost从09年12月02日到现在。
这两家的cpanel没有任何区别,所有的功能都用着非常顺手。如果还没有购买过主机的朋友,想买,我很推荐这两家。要说对于个人建站哪个最好,我推荐bluehost。理由如下:
1,功能方便,稳定。我测试了一下,我域名所绑定的主机上有700域名共享IP,可以使用这个工具查询http://www.my-ip-neighbors.com/index.php。目前还没有被封的情况。CPanel上的功能基本是网站维护所需的所有功能。
2,价格相对便宜,虽然hostmonster和bluehost的最优惠价格都一样,但是因为bluehost相对稳定,而且对高负载的处理更加科学,所以推荐使用bluehost。我在bluehost购买的是两年的服务。总共$90多。送域名。和国内的相比,价格差不多。
3,之所以推荐bluehost而非hostmonster,最重要的一点是CPU throttling上。Hostmonster在处理长时间高负载时,只是简单的断掉链接。每次负载增大时,刷新页面,浏览器就会提示服务器无响应。而bluehost在这方面就更加的柔和,迄今位置,我还没有经历过一次强制断开。 而在hostmonster上每天几乎都会有一次(我折腾的比较多).
当然了,就现在的形式来看,缺点还是很明显的。那就是得每天提心掉胆的。说不定哪天就直接不能访问,所有的努力都将从新开始。
不过,我还是先心存幻想把。毕竟,我只是想找个稳定的,高质量的,对得起咱老百姓的钱包的主机,认认真真的记录我的生活和学习。
至于其他国外的主机,我也曾对比过,现在已经想不起来什么原因了,反正觉得bluehost最适合我,多半是价格和延时的原因。可以参考我先前写过的总结一下自己购买主机的情况。想购买的,可以多找找优惠链接,多搜搜就会有。另外,最近不建议买,未来太不明朗了。。。
OpenMp和自动并行化
此文是Fred Chow在德拉华大学所讲open64课程讲义的翻译,转载请注明出处 http://www.lingcc.com
Fred Chow 原版讲义见最后一页
- 并行化
两种在open64中获得粗粒度并行化的方法:OpenMP和自动并行化。前者使用选项-mp来指导并行化,在Fortran,C和C++中支持OpenMP2.5。后者需要选项-apo打开,功能是在LNO阶段检测并行的循环并插入指导。在同一个编译中,可以两个同时使用。
- 对粗粒度并行化的支持
并行化的代码给出它自己函数的轮廓(?),轮廓函数嵌入到原始过程中,原始过程中的本地变量采用静态链的方式访问,指向轮廓函数的指针被传到libopenmp中的同步机制中用来做定型执行的调度。其中会有一段并行的代码保存下来以备串行执行之用
- 并行运行时执行
通过大量产生线程来达到执行并行代码区域的效果,默认情况下的线程数是CPU的个数,libopenmp(PathScale专利)包含:线程控制和同步机制和OpenMP intrinsic相关机制.运行时的动作通过环境变量控制,如指定线程和处理器之间的亲和性 Continue reading »
1,因为代码是从svn库里先checkout出来的,为了方面使用mercurial,就先做了清理工作。
删除当前目录下的所有.svn文件夹
find . -name “.svn” -type d -exec rm -rfv ‘{}’ \;
. 当前目录下
-name “.svn” 文件/文件夹名称为.svn
-type d 文件类型为文件夹
-exec 执行之后的命令直到 \;
rm -rfv ‘{}’ 删除find命令找到的所有文件夹 , ‘{}’表示使用find的输出做为rm的输入
Continue reading »
- 啥是nanojit?
Javascript的JIT后端,原先firefox直接使用javascript解释器,效率比较低。nanojit可以将频繁执行的javascript代码直接翻译为机器码执行,效率更高,性能更好。详细的介绍可以参看这篇文章:an overview of TraceMonkey, (我是中国人,我要看中文 ).本博还有一篇英文介绍,自己的蹩脚英语拙作。确实闲着无聊可以猛击这里。
- 咋又蹦出来个tracemonkey?
这得先从spidermonkey说起,spidermonkey是firefox里的Javascprit解释器。因为增加了Nanojit,这种通过跟踪(trace)热JAVAscript代码的JIT。所以改名叫tracemonkey。
- 我只关心这个firefox!
那就从这个地址下载吧,firefox_release.mips1-1_mipsel.deb. 下载之后切换到root帐号或者直接执行。注意目前Nanojit只测试了O32的龙芯,龙芯默认的操作系统和其他Debian衍生系统都能使用(目前测试了debian-en和Rays,没有问题).目前2E和2F的机器都能使用。N32的gentoo系统还不支持。 Continue reading »
支持反馈指导优化(Feedback-directed Optimizations)
此文是Fred Chow在德拉华大学所讲open64课程讲义的翻译,转载请注明出处 http://www.lingcc.com
Fred Chow 原版讲义见最后一页
- 反馈编译
使用目标机器可执行代码来收集程序运行信息并反馈给编译器(FDO),实现步骤:首先,使用选项-fb_create fb_file来插桩编译程序;然后运行“training run“,非常慢;最后再使用选项-fb_opt fb_file来编译程序。另外要求除fb之外的其他选项都是一样的。
- 插桩
插桩在编译阶段的WHIRL级中进行。数据手机工作可以在反馈编译的同一个点进行,可以收集到精确的程序代码反馈数据,且精确性不受编译选项影响(只要这些选项在两次编译时时相同的),这些插桩的代码是对运行时库libinstr.{so,a}的调用。并且支持多种类型的反馈数据—BB热度,边热度,值轮廓(?profiles)
- 插桩和编译阶段
可以在编译过程不同的阶段插桩(和收集数据)使用的是选项(-fb_phase):0-在VHO前,1–在LNO前,2–在WOPT前,3–CG前。仅稍后一点的阶段才能使用收集到的信息。另外当代码转换的时候,收集的数据也需要更新–提供了一些完成该功能的函数,并有一些参测的功能。默认的插桩阶段时-fb_phase 0.PathScale并未对其他的-fb_phase做测试
Continue reading »

近期评论