这周有了新的变化:RMS辞职了FSF,同时继续作为GNU的领头羊存在。而GNU的22位maintainers 在10月7日发表了一封联名公开声明, 表示RMS不能代表GNU,感谢RMS。其中包括了GCC、GDB、Binutils的若干活跃maintainers。
Hmm,心情复杂。感觉现在美国的政治正确真是逼得紧,政治运动无孔不入。我已经开始期待会有一波技术大牛逃离美国的热潮了 XD
小乖他爹国庆期间依然做到了日更,现在已经到了36期。短期内可能已经无法被超越了。可以通过 方舟编译器学习笔记 来跟着一起学习。
召唤可以一起看/搜集八卦的小伙伴。请在留言区或公众号回复我加入。
(thanks MaskRay for this section)
GCC wwwdocs 已经迁移至 git
gcc也争取年底能通过reposurgeon这个工具迁移到git。glibc终于放弃了ChangeLog,gcc也有望放弃。据说之前8年Cauldron每年都在谈去除ChangeLog和迁移git,今年终于都要实现了
Indu Bhagat 提出我们应该比较CTF(Compact C Type Format)和DWARF表示类型信息的空间占用。(这也是我非常希望产生的话题,Oracle的staff在推 gcc -gt,而且希望strip不要默认删除 .ctf ,这个我是强烈反对的),考虑CTF是否真的有必要?
CTF(Compact C Type Format)是一种描述类型信息、比DWARF精简的调试信息格式。它不支持C++,目前有一个变体BTF用于Linux kernel的eBPF。Oracle想要把CTF添加到binutils (已经commit)和gcc里。binutils里还有ld如何链接、如何支持SHF_ALLOC的.ctf变体、strip是否应该默认.ctf等开放问题没有解决。GCC这边,有一些开发者认为我们应该研究如何简化DWARF的输出,开 -fdebug-types-section或-gdwarf-5
,用dwz等外部工具dedup,是否能产生足够小的调试信息,使得CTF的size优势不复存在。这样的话,我们是否还有必要支持一个现在还不能用于C++,spec还不明确的格式。假如CTF真的有它好的地方,可以考虑贡献到DWARF标准里,而不是让gcc支持一个新的格式
(我的看法也是,CTF/BTF最近几年经常被拿出来谈,推动它们的人喜欢拿不公平的、与DWARF的比较来证明新的调试信息格式有必要。但是DWARF这边缺乏开发者简化输出,仅生成和CTF类似的信息,证明CTF/BTF其实并没有必要(我非常相信这一点🤦))
最后,Cauldron让更多人了解到CTF、参与讨论是件好事(
(thanks MaskRay for this section)
Facebook BOLT (post-link optimization)的主要作者对Propeller用的方法产生质疑。 https://lists.llvm.org/pipermail/llvm-dev/2019-October/135616.html 质疑和反对写得非常长,下了大功夫了。BOLT跟Propeller功能有较大重合,diss起来比较扎实。
llvm-libc的添加libc顶级目录的commit https://reviews.llvm.org/D67867 。不得不说这个commit非常草率,对于一个新项目,只有一个thumb-up,有几个人表达open questions的情况下就被commit了。这是很没有礼貌的做法。
第一届中国 RISC-V 论坛 – “征稿通知” 已经正式发出。截稿时间是10月20日,通知时间是10月27日。
网站是 https://crvf2019.github.io/
另一个跟RV相关的消息是Arm今天隆重的宣布自定义指令支持。由于跟之前Arm的行为举止颇为不一致,引起了大家友好的吐槽。画面大概是这样子的:
Arm:「哎呀,你在吃什么啊,好恶心!」
RV:。。。
Arm:『好!恶!心!』
RV:。。。
Arm:『给我吃一口!』
RV:。。。
Haichen 给出了9月份的TVM发展月报。 满满当当,相当好,可以作为快速跟进项目进展用。
量子计算机和量子计算领域 正在快速升温。
Lua 5.4.0 beta rc2 释出了。还没正式发布。rc1 的时候玩了下,发现定义LUA_NOCVTS2N 不能阻止 '3'+'4'
的 implicit conversion from string to number
,报告了问题,看到[rc2]把这个问题修复了。这对应了manual #8.1 6月出了5.4.0 alpha。主要更新是 1) 增加了一个generational gc模式 (默认是原来的tri-color incremental模式),据说对于游戏引擎帮助很大 2) 加了一个 to-be-closed variable
,类似 semi-RAII (gc finalizer 顺序是mark顺序的逆序,不是 C++ destructor 那样) 3) const variable,但语法比较笨拙 local var <const> = whatever
,我希望他们改成 const var = whatever
(OCaml/Rust/Scala都有简洁语法)
(thanks MaskRay)
不用担心名额,由于规模大,我们今年扩充成了一个全天的活动😄
海报网址:
http://www.hellogcc.org/?p=34362
华为俄罗斯团队开始招聘了,并且在 LLVM 邮件列表上进行了 JD 的投放。有兴趣的小伙伴可以试一试。
中国科学院软件研究所持续招聘编译器方向开发人员。请联系吴伟 [email protected] 或 邢老师 [email protected]。
本周推荐:《历史的教训》
过去的几周,过去的几个月,过去的大半年,大大小小新闻不断,心情也起伏不断。放平心情的一种方式是能够将眼光投射到更加宽广的空间,和更加深远的时间纬度。看看历史怎么说。这本《历史的教训》是各种推荐书单的常客,而我是最近才开始阅读。让我们坐下来,love and curse,偶不,peace。