Skip to content

Latest commit

 

History

History
224 lines (122 loc) · 9.92 KB

File metadata and controls

224 lines (122 loc) · 9.92 KB

OSDT Weekly 2019-11-06 第018期

HelloGCC/HelloLLVM/OSDT 近期活动

就在周六下午了。这周六不加班的朋友,来感受下业界的技术脉搏。

报名二维码:

https://www.bagevent.com/event/6112393

编译社区的八卦信息

方舟开源编译器社区

今天刚刚的大新闻是,一直在坚持每天更新方舟编译器阅读笔记的「小乖他爹」,在1小时前宣布,要开始准备写一本方舟编译器源代码入门的书了。

感兴趣的同学可以点击原文或去知乎上搜索他的ID「小乖他爹」即可看到。

官方仓库风平浪静,现在内部仓库已经跟外部开源仓库每天通过码云(gitee)同步。这是一个好的流程的改进,华为公司内部开始跟开源社区有一种无言的互动了。羞涩的人大概都是这样子的吧,把好意表现出来,但是又不说。

代码中的一个好消息是提供了一个 Dockerfile,可以方便的构建了。Dockerfile 写的比较仔细,比我(小编1号)写得好。我是阅读了之后,才意识到,哦,原来 deb 的 caches 是删除掉更好一些的。

GCC

  • GCC对HWASAN(hardware address sanitizer,LLVM已经支持)的支持终于发出来 了。由于是Hardware Sanitizer,当然需要硬件的支持。Patch set 是Arm贡献的, 所以目前只支持AArch64,从review来看,merge进gcc10有一定概率。

  • GCC持续 Deprecate CC0 的工作。CC0是一种老旧的后端 condition code 模拟机制。 与之对应的是新的CC_MODE机制。 一些缺乏维护的老后端还基于CC0,如果不及时更 新,也可能在GCC11中被移除掉,名单包括 avr, cris, h8300, m68k, vax。

  • RISC-V: Embercosm 的 Craig 发出了 RISC-V load/store 指令压缩的优化遍支持。 主要思路是RV后端增加一个RTL扫描遍,将load/store尽可能的改写为采用小偏移量 的指令,为生成16位Compressed指令提供更多的机会。Sifive的gatekeeper Jim Wilson 和 Andrew Waterman 积极review, 同时指出添加一个新的RTL扫描遍会增加后 端的维护成本。RV联盟的重要成员西部数据 (WestDigital)的Nidal和Ofer强顶这 个优化,为Embercosm的patch提供WD的维护背书。

  • AArch64:GCC 大神 Richard Sandiford 持续改进 Scalable Vector Extension (SVE)的支持。包括一些列的Testcase清理和一个新的代码生成优化 patch set, GCC在采用SVE指令向量化loop的时候会选择代价更低的SVE指令。

此外,一家JDK优化公司Bell Soft发出了调整 Marvell ThunderX2 向量指令cost的小 patch,说明arm服务器的生态在成长,已经有第三方小公司contribue基础软件的 改进了。

  • Powerpc/IBM-Z:IBM支持发出一些小的bug fix和优化,对 GNU toolchain 的投入 一如既往。

(感谢小编2号提供本节内容)

Binutils

x86_64: Jan 贡献了对 AMD Zen2 指令的支持。

RISC-V: Sifive的Nelson发出收紧CSR寄存器检测的patch,貌似是为支持ISA Spec1.2的改动。

AArch64: Armv8.6-A指令支持的patch set有测试failure,被Nick勒令修复。

readelf: Christian 修复了一些列围绕IN_RANGE宏的小bug。

generic: Alan. M 改进了linker后端描述中 GENERATE_SHLIB_SCRIPT和EMBEDDED 的 关系。清理了一系列后端的错误用法 (Binutils后端一向是相互拷贝, 错误传递严重),感谢 Alan.M,Binutils 的老黄牛。

(感谢小编2号提供本节内容)

Glibc

AArch64: Huawei鲲鹏的memory函数优化review仍在继续。

S390:Stefan Liebler 发出采用convert-to-fixed指令优化浮点函数的 patch set。

pthread:Rafal Luzynski 发出新增 pthread_clockjoin_np 的 patch set。

syscall:如果有想提出新syscall的童鞋,可以看看同时说服Kernel和glibc社区的 所有相关人员工作量有多大(笑的很慈祥):

https://sourceware.org/ml/libc-alpha/2019-11/msg00095.html

[PATCH v15 0/9] open: introduce openat2(2) syscall,已经第15版, 外加50+抄送。。。很多还是mailing list。。。

(感谢小编2号提供本节内容)

Gdb

依旧是 Tom Tromey 和 Andrew Burgess 发出各种代码重构的patch,风平浪静 and a little bit boring,值得注意的是gdb社区采用gerrit进行代码review了,比如:

https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/447

(感谢小编2号提供本节内容)

LLVM/Clang/LLDB/LLD

llvm-objcopy 支持 --only-keep-debug 了

https://reviews.llvm.org/D67137

用于生成 debug file (某些发行版的 -dbg -dbgsym 就包含这类文件)。之前有至少四个不同的patch,但都因为各种问题(主要是不能减小文件大小)没有被接受... 今天终于可用了。

RISC-V in China

TVM 社区

V0.6 要发版了

来自 Tianqi Chen 的通知:

Dear Community,

thanks to everyone's effort in the past few months. This is a proposal to do a v0.6 release.

This release will be managed by the TVM PMC, with @yzhliu and myself as moderators. In the next few days we will be populating the release note in this thread. We also encourage everyone in the community to reply to the thread about pending PRs that should be included in the v0.6.

It is our first release after moving to the apache repo. So the main goal is about passing the general reviews to make sure the released product matches the ASF requirements. We hope that we can use this release to streamline the future releases

TVM Project Repo Migration

要从 https://github.com/apache/incubator-tvm 迁移到 Apache 的基础设施管理。

目前在 GitHub 上依然是很火热的,几十个Issues和PR都有意义。

另外,下周六11月16日在上海有 Tianqi Chen 的 TVM 活动(or 技术领域的中年粉丝见面会)。会场报名70人,在上周报名表单发布3小时内就满了。这里就不放出来具体信息了(反正报不上名了😄

后续我(小编1号)在现场参加完会发布一个新闻帖子来,Stay tuned。

Mozilla

风平浪静。没人离职。

功能点上,有一个只有只有开发人员才会注意到的功能要被新功能替代了:

Scratchpad End Of Life

被新的多行编辑器替代了。

另外一个有意思的Mozilla文化是,这个模块被废弃之后,Bugzilla 上的各类 bugs 不会被关闭,而是会被整体的移动到一个「墓地」存放着。 see https://bugzilla.mozilla.org/show_bug.cgi?id=1592303

与之对应的有一个吐槽 Mozilla 修复bugs非常缓慢的梗(确实有7年甚至10年的Bugs存在):

在 Mozilla 的 Bugzilla /

每当你关闭一个 bug /

你关闭的 / 是历经数载 /

经过争吵、误解、最后放下成见、达成一致 /

并形成了深厚羁绊的 /

异父异母的大家庭

(这个梗有点晦涩,看不懂就算了哈哈)

还有几个新功能:

Firefox Profiler now supports recording IPC messages

Jim Porter 发邮件宣布了这个新功能,展示了如何使用。

小编1号不是做这一块的,经验范围仅限于 Spidermonkey JS 引擎。从有限的知识来看,这算是一个非常不错的工具了。过程间的代码要debug我想想就头大。

Happy profiling!

New Memory Tooling in the Profiler

The profiler has experimental support for analyzing allocations in native code (C++ and Rust) via stack sampling. These features require Nightly and the new Profiler Toolbar Icon (directions below).

看起来非常有用。要用的话可以用每日构建版本或者自己编译。

https://profiler.firefox.com/docs/#/./memory-allocations

Firefox 的 Profiler 是真的做的越来越完善了。

其他

Eclipse 又在搞选举: Committer Election for Mickael Istria on Eclipse Plugin Development Environment (PDE) has started

本周工具链岗位

中国科学院软件研究所持续招聘编译器方向开发人员。程序语言与编译技术实验室现在招聘一些实习生,实习生的主要工作职责是负责实验室在 GNU GCC 工具链、LLVM 工具链、 MLIR 和 TVM、 方舟开源编译器及 Toy Runtime 上的开发(选一个集中精力开发)。可以坐班也可以远程,我们的优势是提供一个专业氛围浓厚的学习环境,有资深工程师带。我们的劣势是穷,基本上没什么实习工资,电脑要自己带,没有什么技术长进之外的福利。 请联系吴伟 w@droid.ac.cn 或 邢老师 mingjie@iscas.ac.cn

本周推荐阅读

本周推荐:《酒鬼与圣徒——在神的土地上干杯》

劳伦斯·奥斯本 著

蒋怡颖 译

推荐者:小编3号

(小编3号提供了两个版本的书评,只要有一个能够打动你,就足够了😄)

西装革履版本

劳伦斯是英国著名的记者、旅行家、作家,曾为《纽约时报》、《华尔街日报》、《纽约客》、《哈帕斯》等多家媒体供稿。

除此之外,他还是一个真正的爱酒如命的人。晚上六点钟的金汤力,是他生活中的重要部分。他从迪拜到贝鲁特、从伊斯兰堡到布鲁克林,

走了一路,喝了一路,沉思了一路。然后将其汇总起来,就有了这本酒文化类非虚拟作品:《酒鬼与圣徒——在神的土地上干杯》。

读了他这本书,才能明白,原来世界上那么多不可能有酒的地方竟然也有这样那样的酒吧。也是从他这本书里,我们读到了酒,读到了文化,

读到了独特的酒文化。

牛仔裤黑T恤版本

我是一个无酒不欢的人,很难坚持一周不喝酒。对于我来说,酒已经成为了生活中的一部分,除此之外我并无任何的不良嗜好。

当然,如果读书不算作是不良嗜好的话。随着酒龄的增长,对于酒的品质和文化的追寻,正在逐步渗入我的酒生活。

在我看来,《酒鬼与圣徒》更像是一个多年的酒友,一边品酒一边讲述在世界各地喝酒的故事,以及由此带来的思考。

这是一个老友的故事,是一趟酒的旅行,也是一场文化的盛宴。