OSDT Weekly开源开发工具周报
首页 / 第 23 期

OSDT Weekly 第23期

2019-12-11 weekly-2019/2019-12-11.md

HelloGCC/HelloLLVM/OSDT 近期活动

下周三在北京会有PLCT开放日。

编译社区的八卦信息

看起来龙芯的生态在逐渐好转,来自社区的 @xiangzhai 提供了最近的两个dotnet上的八卦:

一不小心重复造轮子: https://github.com/dotnet/runtime/issues/606#issuecomment-562445090

动态分析误报多: https://github.com/dotnet/runtime/issues/553#issuecomment-564099820

GCC/Binutils-GDB/glibc

GLIBC

国产的x86处理器,兆芯,开始upstream底层库的支持了!主要是CPU Vendor ID等标识。

https://sourceware.org/ml/libc-alpha/2019-12/msg00244.html

Stefan Liebler采用GCC builtin改写部分数学库

[PATCH v2 00/18] Use GCC builtins for some math functions if desired.

https://sourceware.org/ml/libc-alpha/2019-12/msg00258.html

Aleksa Sarai 持续推动新增opennat2系统调用,第18版了

[PATCH v18 00/13] open: introduce openat2(2) syscall

https://sourceware.org/ml/libc-alpha/2019-12/msg00211.html

GCC

GCC开发仍然在stage3,没有大的feature修改,各组件积极修复测试中暴露出的问题。

Thomas Schwinge提议将coding style每行列数的限制从80列放宽到132列,社区激烈讨论

https://gcc.gnu.org/ml/gcc/2019-12/msg00064.html

David Malcolm主导的GCC静态分析框架可以在线尝鲜了。

https://gcc.gnu.org/ml/gcc/2019-12/msg00152.html

GCC内部重构,多线程编译更加友好的提议,from Nicholas Krause

https://gcc.gnu.org/ml/gcc/2019-12/msg00125.html

Nicholas同时提问GCC对C++ 11支持的feature完整性,有不少回复值得一看:

https://gcc.gnu.org/ml/gcc/2019-12/msg00128.html

关于新的ipa优化遍的讨论继续在Jan Hubicka和Martin Liška之间进行:

https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00701.html

Richard Sandiford发出第二版的combiner pass

https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00287.html

PowerPC: 关于libmvec(向量化的libm实现)对sincos的支持

https://gcc.gnu.org/ml/gcc/2019-12/msg00101.html

Binutils

H.J.Lu发出v4版本i386: Optimize for Jump Conditional Code Erratum

https://sourceware.org/ml/binutils/2019-12/msg00138.html

Alan Modra修复一系列corner case

https://sourceware.org/ml/binutils/2019-12/authors.html

GDB

Tom Tromey发出删除val_print的大patch set,Tom对GDB的重构做出了很大的贡献。

[PATCH 00/55] Remove val_print

https://sourceware.org/ml/gdb-patches/2019-12/msg00275.html

Andrew Burgess修复GDB调试不完整ELF的问题。

Fix bug when debugging a corrupted ELF

https://sourceware.org/ml/gdb-patches/2019-12/msg00252.html

Weimin Pan发出gdb对CTF的格式的支持

https://sourceware.org/ml/gdb-patches/2019-12/msg00215.html

LLVM/Clang/LLDB/LLD

风雨无阻,LLVM Weeky 更新到了第310期。

(以下感谢 Alex Bradbury

  • Kristof Beyls 在张罗 EuroLLVM 2020: seeking program comittee volunteers

  • Gábor Horváth wrote an RFC proposing function annotations as a next step in the effort to implement Herb Sutter's lifetime analysis. The proposed annotations would give information about the lifetime of function return values or output arguments. (这部分还是看英文地道点,翻译有点别扭)

(以下感谢 @MaskRay

围绕 Jump Conditional Code Erratum 的代码更新还在继续。看起来相当的热烈(不过小编1号看不懂),

Philip Reames 对 D70157 (划掉)不满意(/划掉), 又弄了 D71238 (MaskRay借着这个机会,搭伙儿吐嘈 MCCodePadder 没用,趁机删掉了 MCCodePadder D71106 ..)(小编1号:这波操作666)

在 D71238 中, D71238#1777747 的评论比较有份量:

All results are very preliminary - this is all from a single machine with a subset of our workloads.

Applying microcode without mitigation hurts. Geomean impacts aren't too terrible (5-10%), but some individual workloads suffer badly.

此外, Chandler Carruth 还想看到 clang/firefox/chromium 的 size 影响。目前可能还没有数据。

D71094 目前是被 MaskRay reject 但是依然 landed 的状态。 另一位新加入的 reviewer 也提出了不少的 comments。 看起来现在在社区想要提交代码英语都要很熟练 :-)

小编1号的感觉是似乎LLVM目前依然是允许部分 reviewer accept 就可以 land,目前为止依然是比较随意的, 完全靠自己名声。 这点似乎是 Mozilla 在引入 pha 的时候进行了改进,不知道是否可以参考下。

RISC-V in China

国内没啥新消息,国外 RISC-V Summit 正在开。等待有RV社区的小伙伴带回来一手报道。

https://tmt.knect365.com/risc-v-summit/agenda/1/

TVM 社区:发版啦!

好消息!摘录如下:

Hi all,

The Apache TVM (incubating) community is happy to announce Apache TVM (incubating) version 0.6.0!

...

0.6.0 is a major release incorporating important features including high-level Relay IR, Relay Virtual Machine, training support, quantization, TSim, MicroTVM, Rust support, etc. It also contains a count of operator support and performance improvement.

参考地址:

https://github.com/apache/incubator-tvm/releases/tag/v0.6.0

The Release Tag:

https://github.com/apache/incubator-tvm/tree/v0.6.0

TVM 相关的资源:

Best regards, Apache TVM (incubating) Team

Mozilla

风平浪静。

方舟开源编译器社区

风平浪静。

本周工具链岗位

我们,软件所PLCT实验室,长期招募编译开发实习生(C++/Java)。实习生的主要工作职责是参与PLCT在 GCC/LLVM、QEMU、 TVM、 方舟开源编译器及 Toy Runtime 开发。要求 C++/Java 编程能力由掌握或者熟练,

必要条件是在校学生,目前还不接受已经工作的朋友的兼职。具备良好的沟通和团队合作意识,熟练 Linux Bash Scripting 和 Git 常用操作。要求有基本的操作系统(OS)和编译原理的知识,IDE开发实习生要求掌握Eclipse插件开发的基本知识。可以坐班(LV3+)也可以远程(LV4+)。

PLCT隶属于中国科学院软件研究所,智能软件研究中心。我们的优势是提供一个专业氛围浓厚的学习环境,有资深工程师带。我们的劣势是穷,基本上没什么实习工资,电脑要自己带,没有什么技术长进之外的福利。

请感兴趣的同学联系邢老师 mingjie@iscas.ac.cn。

本周推荐阅读

本周推荐:《教育问题探津》 刘道玉 著

(小编1号提供)

我在人生的各个不同的阶段,都会时不时的思考教育相关的问题。当我在中学的时候,我疑惑一个班级这么多人,很多人没有认真听走神了怎么办,有更好的办法么?是否在同学之间的相互辅导中有更好的教学方式(我有尝试过在数学、物理等科辅导过同班的学生,但是并不能够抽象出来一个统一的知识框架来指导我们的讨论)?在大学的时候,我时不时会想,为什么我体验的中国的大学跟电视电影里的欧美的大学差异这么大?现在,我自己也讲课、培养学生和徒弟(新人),我更加频繁的在琢磨:我要怎么做才能用更少的时间,让学生掌握更多的知识,收到更多的启发;进一步的,能够覆盖到更多的学生?

很高兴能够在万圣书店扫到这本刘道玉先生的《教育问题探津》,让我过去几十年来想过的大多数教育相关的问题,得到了一位实践者的回答。刘道玉先生从事教育工作有60余年了,认认真真地进行着中国教育的改革和实践。通过阅读这本书,让我对于自己接下来要面临的各类挑战有了更加明确的认识,也更加乐观了一点点。

顺带,对于已经有了孩子的父母,这本书非常需要现在就入手。理由有二:第一,这本书不仅介绍了大学教育,也介绍了如何从0岁开始就对儿童进行启蒙教育;第二,即使刚出生的孩子,也只有不到7000天就要高考了(笑)。