2020

2020-01

@dougpuob 看到799了,0:00前掙扎着又找到一個地方弄了commit https://t.co/SOfkbJODgz (lld RISC-V undefined symbol的relocations的處理 https://t.co/ECV0nR9eX6 ),滿800了~

@cafe2code @sinkerine interesting

https://t.co/BxVeq0nezh Phabricator++, Github--

LLVM commits>1200。10.0 release branch前一周弄好了三个东西,-fpatchable-function-entry=(一个能同时吐嘈Linux/GCC/gas/ld.bfd/MIPS的功能);-z force-ibt -z shstk (学习AArch64 -z force-bti,以绵薄之力在hjl不优雅设计下的最后抗争);-malign-branch*(可能reviewer不希望我“抢”走他的功劳吧..) https://t.co/mUhVqkhCWy

@__broken_mike @scturtle neomutt++

glibc教会了我们怎么从C程序中印出一个整数…… gawk -v maxerr=gcc -S ..|sed -n 's/^.*@@@[^0-9]*\([0-9]*\)[^0-9]*@@@.*$/\1/p' -f ...errlist-compat.awk Versions Roland: .. I think I'm the pioneer of that "emit bogons in asm to grep later" technique, so sorry about that. 🙂 https://t.co/AXYgqcD26D

@MinakoOikawa 爲什麼是《海上花列傳》,而不是《品花寶鑑》呢?

@laike9m Manjusaka_Lee爲啥被封號?

[ELF][PPC32] Support canonical PLT https://t.co/H68Luc09wF + [ELF][PPC32] Support range extension thunks with addends https://t.co/7pu7TT8xak => FreeBSD buildworld success!

2020-02

https://t.co/FfwKfoW4l6 从-fpatchable-function-entry=N[,M]说起。hexo的node_modules三年没更新了,,,

今天效率不错呢,第一次主动给Linux交patch,怂恿hjl实现了GNU as和ld功能。R_RISCV_IRELATIVE还没有人玩,假如binutils那边没有动作的话我就再交patch https://t.co/J5j4ijsplv

Peter Smith是我贡献lld和MC时经常打交道的贡献者,他经常给出高质量的审查建议。他在ARM/AArch64支持外最大的贡献是thunk,比GNU ld和gold的thunk框架优越很多。唉,这也是ClangBuiltLinux的一大损失。据说Linaro还会再找一个人看lld ARM/AArch64?内忧外患,还要担心Propeller对lld/ELF质量的影响… https://t.co/jBtvPwdwhw

@MinakoOikawa 岛娘现在住哪里啊

peerbonus+=2。其中一个是有趣的linker script功能:SECTIONS { ... } INSERT [AFTER|BEFORE] $section;(Python+CUDA太容易产生大可执行档了。用这个功能把.nv_fatbin移动到合适的地方避免relocation overflow)。比较满意的是实现新功能,代码只多了5行。前两天尝试弄好另一个hjl当初hack的GCC选项…… https://t.co/XSSFu4AqX1

@ftiasch @sleeplesstyphon 去之前在哪裏呢?

@scturtle 轉職compiler engineer:)

算法题:YAML排版问题 https://t.co/RkNkp6l2SE 。长周末:整理了LTO dso_local、修了一个JumpThreading bug。去年阻止了Android Bionic污染lld ELF,现在又要修一下llvm-objcopy --only-keep-debug(bless这个困于国内的bug reporter)还好通过删代码解决了问题…… https://t.co/d2SfceqRyp

On 20180502, .... On 20190502, a bug report to https://t.co/PfiFb8FKXs . On 20200218, an lld patch🤗Rafael Ávila de Espíndola是lld/ELF的主要设计者。虽然还不能定性为回归,但总是一件令人欣喜的事情。 https://t.co/yEvKzClWEX

2020-03

今天删掉了powerpc{,64}-apple-darwin😜在原作者bless下提交了我的.ARM.attributes重写patch(得赶在SHT_RISCV_ATTRIBUTES前面修好)🤡修了llvm-objdump -t的顽疾,和-d的一个顽疾,改动了404个测试👹明天起要进入论持久战模式了😷 https://t.co/2FrvNRrgFx

今天我的Moore neighborhood里没有一个人。正式开始不见天日的蜗居生活(WFH)。GNU ld的一些linker script决定和某些最近改动我觉得没有意义,抛弃cargo cult打算在lld里实现有意义的规则。这则评论是不是等着我写lld linker script文档的意思…… https://t.co/hlnHx0VuHt

说我维护lld/ELF+LLVM binary utilities+MC,以后別人就相信了( 转型BIOS engineer。闭关(WFH)一周,食物不够吃,水要喝完了

seabios用Python+objdump处理16-bit, 32-bit segmented, 32-bit flat创建linker script布局这三类代码。lld和llvm-readelf修好了,clang可编译性有点难,我还没弄好 https://t.co/zTa5e8aUfs

谁知盘中餐,粒粒皆辛苦。白饭+榨菜。希望我不要饿死 😭试探一下glibc里"unfortunately there are some that think support clang+lld might weaken gnu toolchain in general..."都是哪些人。会是这个人吗? https://t.co/q82Neb4nxP

在linuxppc-dev碰到一个对clang不友好的人(GCC dev)。英语不好但还是要练习一下吵架~感觉我真的一直在战斗。一个"Blanket Write Privs" maintainer忘了24年前的决定。另一个也表示clang做法没有什么不对。为什么这个人充满敌意呢? https://t.co/u8W2VBa5cl

修好了llvm-objdump x86/PPC branch target,给lld加了--threads={1,2,...}。虽然之前被提名4次了,取得了第一个被合并进mainline Linux的commit~一堆ld+objdump+objcopy+dd hacks

不过过程其实并不愉快。这个BTF严重缺乏DWARF方面的审阅。Linux kernel毕竟就是堆砌杂物的地方 https://t.co/XD1Aiec22G

2020-04

现在物资匮乏时期,就像猴子吃芧,或者朝三而暮四,或者朝四而暮三。 https://t.co/mi1ryyQWT8

Intel CET真是负面教材的典范。在binutils社区罔顾反对force push,怎么又来clang/lld生事了 https://t.co/stb6NMbxVE

请君入瓮。太可怕了😭还有苍蝇😭请苍蝇大大吃很多很多面粉+糖+香蕉了 https://t.co/3dqlWGXw2j

为什么我一个lld maintainer跑去贡献GNU ld了呢。。我本来写了不少description,Nick全部删掉了。。打算靠这个功能修复libc++.a https://t.co/YkkqtSpcmR

现在粮食问题依然严峻,希望下一袋米快快来吧🍚powerpc给我的感觉真是越来越不好了😷昨天终于超度了前几天捕获的苍蝇🙏 https://t.co/l2dXzr2JLo

@wwwwodddd 大米。grain rice

2020-05

@huskyiiXD x86-64有PC relative instruction,ppc直到最近纔有ADDPCIS,然而無濟於事。ABI是基於噁心的TOC

@Manjusaka_Lee @laike9m 感覺我的用戶也要開始拋棄我的工具了……

这两天研究了一下gcov,给clang --coverage和llvm-cov加了一些功能,修复了诸多问题☺️……不想做饭但已经没有泡面了😭 https://t.co/ljBp4OdUhB

@laike9m "真正的passion在哪里"为什么能一下子问出这么深刻的问题?

@bobzhang1988 感觉不吃外卖安全一点……

@laike9m "The better option is to stop requiring copyright paperwork. It is harmful to the Emacs project." (Stefan Monnier) 不过他后来又纠正说是仅限于ELPA了...

@laike9m lldb+Emacs dap-mode..不过我的主力还是rr record+rr replay -d cgdb

尝试修复一些历史错误,clang/gcc -gsplit-dwarf -fuse-ld= ; ld --dynamic-list https://t.co/lmn5jNlG0C

@laike9m 其實我接下來的工作重心是debugger我應該多學習一點dap的……但就是懶。Debug Adapter Protocol生態系統裏很多組件都叫vscode(sigh,和隔壁LSP不一樣)。lldb實現server端,理論上支援DAP client的editor (plugins)都能用。Emacs的實現在 https://t.co/dzq7CRw7mi

@byvoid 可能當時不應該加 https://t.co/mgp26MkNc5.2 -> https://t.co/mgp26MkNc5.1.0.0 symlink (src/CMakeLists.txt: VERSION 1.0.0 SOVERSION 2)造成困惑的(libstdc++ glibc DT_SONAME就和包版本不匹配)。現在 https://t.co/mgp26MkNc5.1.1.1 -> https://t.co/mgp26MkNc5.1.1 看上去降低了,但應該無所謂。

https://t.co/0S0238GNxB https://t.co/C9rfvjWrpj https://t.co/IZmnxO1tJR 從這三篇回覆能讀出他對lld的敵意嗎?還是我理解錯了

@9cXndy 做飯

@ccQpein 謝謝。語氣看上去還是生硬了些

RISC-V people released Dwarves after Elves had awaken in the linker: typical .debug_line entry for non-RISC-V: 1 byte; RISC-V: 6 (DW_LNS_advance_line+DW_LNS_fixed_advance_pc+DW_LNS_copy)+48 (R_RISCV_ADD+R_RISCV_SUB). 54 times regression. Sooner or later they will rewrite .debug_*

@MinakoOikawa 大瓜🍉

@MinakoOikawa 不明發生麼了什麼。但羨慕吃泡麪……我現在能吃上泡麪就感覺不錯了(sayweee需要早點買等兩週到)

2020-06

给LLD添加SHT_GNU_verneed后修复副作用得到第一个Chromium commit🤔用上了binary patch..r2 -wqc '/x f0ffff6f00000000 @ section..dynamic; w0 16@hit0_0'改了几个.so。。。终于修好了clang --coverage,libclang_rt.profile和llvm-cov。-Xclang -coverage-version支持GCC 3.4~10,big-endian也能用了 https://t.co/aBhGCeoK0J

得到了glibc write access..但還不知道貢獻的規範

@huskyiiXD 其實我貢獻過,雖然沒幾個 (1個類似Signed-off形式,3個獨立)。。

@9cXndy

@BrieflyX 完全不懂ptmalloc啊。。你看過musl mallocng嗎?

Professor: "So the American government went to IBM to come up with an encryption standard, and they came up with—" Student: "EBCDIC!" 图三是一个OpenPower Foundation管理员告诉我因为访问量太少,他已经不记得密码了🤔 https://t.co/E2W5gkGAMk

RT @MinakoOikawa: 意识形态回音室。https://t.co/5ImGQPQg1D

lsp-protocol.el 我也没有不迁移的选项啊……今天又把clang 3.*~10 --coverage吐出来的.gcno/.gcda的读支持加回llvm-cov gcov了(支持gcc 3.4~10+clang 3.4~10)。不像gcc,3.4,4.7,4.8,8,9不兼容很多次( 还要吐槽一下Martin Liška为什么随便把-i (intermediate format)删除了(GCC 9 r265587) https://t.co/RDOOBLGHfu

本周的llvm贡献😹😹(--committer而不是--author只是为了多显示一条Mips,因为改test我还是花了点力气的……) https://t.co/bCczhCBTfM

@scturtle 在哪兒寫的?

https://t.co/XmawvZkrgU "[popularity] a logo for ccls" 应该用什么呢?🤔🤔 https://t.co/rMCFFb3BgU

2020-07

@XanthakisGeorge @dmartincy I think Daniel's method extracts information from a multi-line response of textDocument/hover returned by clangd, e.g. Passed by const reference as arg_a (converted to int). This is feasible because clangd traverses AST (richer but more expensive) (ccls just uses indexes).

@Manjusaka_Lee 我只能开着wechatircd,指望有用的记录被irc server下来..

@XanthakisGeorge @dmartincy An alternative design is to make clang::index::SymbolRole richer/more accurate (https://t.co/V1OWRl403U ). In ccls, SymbolRole maps to DocumentHighlightKind (Text/Read/Write. A client can extend this to represent more information). This can benefit other languages.

@shyhaimao 羨慕蝦條。鮮蝦片也很棒

https://t.co/F9c7m7yKKH Published vscode-ccls 0.1.29. ccls server reports indexing progress via $/progress now (the status bar icon is still available and complements VSCode's built-in progress bar)

@laike9m pthread_mutex_timedwait/pthread_cond_timedwait也都是abstime..

昨天的slide.. https://t.co/GFYeAHDs4f 還能搜索到視頻。超過1.5年沒有做過展示,說得不太好...

llvm-project 1700 commits🎉 https://t.co/veD3jXyjQ8

@MinakoOikawa 小虎🐯要變成小貓😺了嗎?

喵喵,竟然是Rust、CPython和Julia https://t.co/sI1kRZ3YdF

@felixonmars 機器貓😹

@scturtle eldoc一行 + lsp-ui-doc不是挺好的嘛

@laike9m @Manjusaka_Lee 我CPython只改過一行code coverage...

今天对着一个ThinLTO+PGO高度优化的clang逆向(因为没有.debug_*...),终于找到一个heap-use-after-free (calloc(0,8) reuse),然后两行exploit work around了一个可能持续了一两周的问题🤣所以今天基本没改周五要用的幻灯片= = https://t.co/ZBe6ZenxaN

https://t.co/3zWipBqFOr RISC-V linker relaxation and LLD (我的幻灯片是最差的🤣) 现在只会\begin{frame},block,itemize了😹 https://t.co/TNHDa9fmis

@lichray 十年前我还会尝试学习tikz的。。现在是省事地随便写写(不想耽误太多时间= =)

2020-08

@wwwwodddd @MinakoOikawa 什么Google刷题群?我也要加!

RT @oooverflow: After an EPIC battle for @defcon CTF, with MULTIPLE lead changes throughout 32 hours of competition,

A0E REMAINS VICTOR…

2013~2018年经历DEFCON CTF,做题一直心有余而力不足。2016年还会和大家一起熬夜/通宵(难得真能帮上忙)。2017年看到cLEMENCy好玩想向IDA大佬学习技术而熬夜。2018年再参与就只是近距离围观,见见熟人了解下近期的咨询……而今只是截图转发祝贺,只当是别人的热闹了😹转身继续看LLVM call site info

@laike9m 力不从心😓

@9cXndy Why?

@scturtle @w3cing 你不就在大廠嘛(

RT @CAL_FIRE: #RedFlagWarning in effect for Northern California until Sunday through Monday for dry thunderstorms. This is #CriticalFireWea…

发现并消灭了一只蜘蛛🕷️今天火势🔥就这么危急了吗。。。我还有不少patches没有git push🙏 https://t.co/iqntfiizIE

@laike9m @ototsuyume calibration notes不是從self assessment抄嗎?而且現在有了soft limit,不擔心self assessment比calibration notes長太多……直接對應

@9cXndy 聽了下感覺沒有打動我= =

2020-09

怎麼計算這個下屬和他經理的友善度?🤔 https://t.co/PMsvSWIUrD

@laike9m 重構command line option parsing,不慎刪掉了一個--foobar=true式樣的選項(明顯不像外部接口,是吧)。。並且在約一個月前還解釋了一下。這個下屬昨天就突然來了這麼兩句,然後他的經理牢騷更多的樣子。。

@GaloisNeko 不知道。。得罪了大佬怎麼辦:)

@bigeagle_xd 什麼情況= =

@Quantum_Ghost @Manjusaka_Lee https://t.co/BgSAvIfuaS ... third_party_musl 把所有0644文件改成0755了。。。

周末给clang --coverage加了Kirchhoff's circuit law的生成树优化;重写了llvm-cov gcov统计部分,实现了-r和-s;前几天难得用上post-order traversal计算流网络…… https://t.co/vqhuMeIDYD

@laike9m 不知道谁还会对clang gcov感兴趣……找不到rewviewer->只能认真测试+直接commit...

@HEHEHEHEHE2333 前两个贡献者也贡献过clang --coverage...

RT @Manjusaka_Lee: 先以私人身份说个事吧 PyCon China 2020时间已经定下来啦,今年 11-28/29,线上大会💯💯💯💯 但是呢,我们现在缺钱又缺人!!!所以大家如果有什么好的赞助机会请务必联系一下我!以及我们非常非常缺志愿者,翻译,会务等等都缺,…

@singularity1023 @laike9m 有什麼歷史嗎?我隱隱約約很多年前刷題的時候看到過那個csdn blog..

@CarlNERV @lichray IRC

@shyhaimao 进化用的大舌贝不知道从哪里来的

@9cXndy 为什么用幸存?

@Manjusaka_Lee 一些“但是”可以替换成“可是”或“然而”

@MinakoOikawa 水子龙?

@felixonmars 抱抱肥猫。现在用自己笔记本很少了,但每次打开Arch Linux, pacman -Syu就能想起肥猫😺

https://t.co/qksyF3FLrH gcov与LLVM中的实现。当初为什么选择了JavaScript流派的static site generator hexo...升级(过期了三年)花了好长时间。。

@violetzijing @Orz_2ai 這不是要怪github 不好好處理comments關聯性和網頁merge 很容易弄出一堆噪音bullet points嗎

Itanium (HP)的C++ exception ABI确实巧夺天工……我终于看明白了一个函数多个call site tables、多个action tables,共享一个type table是可行的。basic block sections是可行的。action records是组织成一棵trie的

@SPoteko 不懂。 https://t.co/Ja0mxRei0y "Please obsolete ia64."

2020-10

@sheevink @scturtle 毕竟…… ld/lexsup.c while (1) { getopt_long ... switch (optc) { case ... } } 方式处理命令行选项很容易出现这种问题。希望未来某个版本能废除grouped short options (-vvvv) https://t.co/7kkSOE5gLh

@machan_62 @tetrachino 配图是从哪里来的呢?

@delphij 默默执行了 man lam,找不到 -> 到 https://t.co/RG0li2N2WT 查阅了一下

不知不觉,llvm-project commits到1900了

https://t.co/BPBiO4TXHW LLVM命令行选项的处理。比较简单,没有花很久写

LLVM Dev Meeting结束。三天,每天结束后在virtual coffee breat里和人扯谈,挺有趣的。今天有三个codegen(aarch64,x86,amdgpu)和两个middle-end optimization:) "怎么指望meeting day能有产出呢"😹老哥分享了远程工作三年的经验("differently productive at home then I am in the office")

@laike9m 这次虚拟的 https://t.co/nPbFQZiNms 是免费的……如果早点知道你感兴趣可以就叫你注册了……https://t.co/N6SiC8rRYw 这种虚拟建筑物,虚拟桌子,几个在虚拟桌子旁边的人可以mic/camera的模式还挺有趣的

前天闲聊时Nick说Craig,视频里你的头的移动发生在你的声音的10秒后,Craig说可能因为他在运行测试,让系统迟缓了。然后他push了,说运行完了,问现在视频/音频是否同步。。现在看来,这是不是预示着他push了一个bug😱……用absl::GetFlag读取某个kTwoWordsAtomic flag时爆炸 https://t.co/lGqqojznHN

@scturtle 不用。是一个用了absl::flags的测试暴露出的miscompile

https://t.co/uPYlX83FEw 模块内函数调用和libc符号重命名。musl vs glibc。当需要举反例时,我总会想起i386和PowerPC...Mips无可救药就不详述了(其实是我不了解)

@MinakoOikawa 其意博,其理奥,其趣深。

@Se9uencer @quininers S老师求教CPU设计

@MinakoOikawa 不懂你們發生了什麼……有種當當網李國慶的既視感

周末累计躺了23小时了(周五腿疼,现在好像基本自然恢复了)😹🤡昨天唯一的小贡献就是发现MC没用R_X86_64_GOTPCRELX以及LLD可能会crash/mis-relax了😱起床迎接我的晚饭🍗 https://t.co/2kpOEfXIDd

@Manjusaka_Lee @iskyzh 你這句話會不會暴露出你還不是你們產品的用戶(

@MinakoOikawa 被祖国抛弃了吗?

2020-11

今天push了各种各样的commits...(终于修好了clang .gcc_except_table,CGSCC迭代顺序,提供了解决MCStreamer丢失位置信息的一般方法,修复了lld --emit-relocs,hack了.machine ppc64🤡 不知道怎么应对BOLT😹😿 (上周增强了.weak的error顺便混了两个Linux kernel commits🤣) https://t.co/QyDcxx6buk

只能云吸狸奴...不出门倒是很对🤣😓🍉 十一月四日风雨大作(陆游)

风卷江湖雨暗村,四山声作海涛翻。 溪柴火软蛮毡暖,我与狸奴不出门。

僵卧孤村不自哀,尚思为国戍轮台。 夜阑卧听风吹雨,铁马冰河入梦来。

Demo of submitting a linux-arm-kernel patch as of 2020-11 (every subtree maintainer is unique...). First, git send-email.. After you got a Reviewed-by: and waited for one day... https://t.co/6GAdor5fb9

@lichray Only 2 or 3 people contribute to the J compiler:(

https://t.co/GhPVAQecaR Stack unwinding (.ARM.exidx和MIPS compact exception tables还需要补充)

@laike9m 写得还比较槽……你可以吐槽不清晰的地方,我尝试改下

@9cXndy 前辈要去哪里

LLVM全家桶2000 commits达成😊😼第2000个的描述中不慎弄了一个typo(SORT_BY_INIT_PRIORITY) ... https://t.co/gvIo3xyY8N

https://t.co/GzGIZY0QBP 解析GNU风味的linker options

@Manjusaka_Lee 羡慕

@MinakoOikawa 小岛现在在给别人当食客吗?

@felixonmars @bigeagle_xd 向肥貓致敬!

@9cXndy @K4YT3X 而且应该先 * id 再除以总数吧

https://t.co/M7GATrRCZF All about symbol versioning

2020-12

今天的随机修改。。抓到了一群正在犯错的sifive人,幸好及时通知了另一阵营的人阻止他们铸成大错= = https://t.co/M0AzAOh72H

昨天修复了一系列dso_local问题,在-fno-pic模式下消灭copy relocations+canonical PLT指日可待(就等GCC接受这个提议的-fdirect-access-external-data;希望能一举修GCC/binutils x86-64 2014~2015两大错误) 看到有人最近都在删unused declarations,今天用ccls写了几行代码找出了几十个删掉了= = https://t.co/nPCrJXeVNN

今天收到了一个神奇的gcov patch😲几乎想通了,构造dominator tree可以线性,但是实现太复杂。。所以还是消圈吧。。 https://t.co/lkIRbwQRPE

@9cXndy 没有迭代,是eval-link, 还要再判断back edge,肯定比O(E^2)复杂……

@9cXndy 迭代算法是O(V^2*E)。接近线性的是Lengauer-Tarjan O(E alpha(E,V))。但一般(包括LLVM)用实践中更快的 O(V^2)的semi-NCA

@9cXndy https://t.co/Oi57GKrUU9 这样复杂度就只受制于dominator tree construction了。我用了semi-NCA所以是O(V^2)的

C++ exception handling ABI https://t.co/ViaRApYQO1

@laike9m 我也是这个感觉(其实我应该说我还没看= =

https://t.co/ViaRApYQO1 半Google Translate半手工移植到English版了= =

@migsaldivar Perhaps I should, now that you gave me an incentive:)

https://t.co/GhPVAQecaR has been translated to English...

https://t.co/RZ26YN5xqG LLD and GNU linker incompatibilities (Is LLD a drop-in replacement for GNU ld?)

https://t.co/ul96KTZTmA replaced 0.20201025 which had a /usr/include indexing problem on some distributions. Seems stable now

@erain @lobatt 就没时间做自己相干的事情了……

https://t.co/0zzybpHSCF 看起来主要贡献是2020年最后一天的Make sanitizers(asan/cfi/msan/tsan/ubsan)work with musl (发现IR贡献好少= =)