国内多个库被 rsc 钉上 Go 耻辱柱。。。

共 1455字,需浏览 3分钟

 ·

2024-06-30 08:00

大家好,我是煎鱼。

这还是比较突然的,下午正努力打工。国内社区群里突然就闹腾起来了。

仔细一看,原来是 Go 核心团队负责人 rsc,又冷不丁搞大招 😅。他直接把国内好几个知名库给直接钉上了 Go 源码库的耻辱柱上了。

如下图所示:

相关的源码地址:src/runtime/malloc.go[1],直接写在注释里了。

诱发这个事情的原由是:因为和新版本 Go1.23 不兼容,最新的版本不允许 //go:linkname 指向内部符号,包括 runtime 包。rsc 在相关 issues 中直言这些包过度使用 //go:linkname,对此不是很满意。

本次负责相关的同学在测试 go 1.23rc1Homebrew/homebrew-core#175310 时,发现了以上提到的库的报错。

直接关联提出多个 issues,表示 Go 1.23 不再允许 //go:linkname * runtime.* 的链接指令,要求尽快整改:

这波操作,感觉 rsc 还是很猛的。有种突然被糊了一脸的感觉。直接把你标注上核心代码里,倒逼你的排期要你马上整改。

但是我深入进去看了下相关回复,rsc 又比较 “友好”。似乎又没那么急:

rsc:“bytedance/sonic 被广泛使用,我们希望在不做改动的情况下保持其正常工作,当然我们也很乐意看到将来这些链接名称被清理掉。我们尝试列出 bytedance/sonic 需要的所有符号。但看起来我们可能漏掉了几个?如果您能确定我们漏掉了哪一组名称,并在 golang/go 中提出问题,我将不胜感激。谢谢!”

依我看,大可不必这么着急。Go 核心团队可以耐心些,多留点修改时间给大家的。适应和测试新版本也是需要时间的。(说好的 Go1 兼容性保障呢。。。)

推荐阅读

参考资料
[1]

src/runtime/malloc.go: https://github.com/golang/go/blob/master/src/runtime/malloc.go#L969C1-L980C27


关注和加煎鱼微信,

一手消息和知识,拉你进技术交流群👇



你好,我是煎鱼,出版过 Go 畅销书《Go 语言编程之旅》,再到获得 GOP(Go 领域最有观点专家)荣誉,点击蓝字查看我的出书之路

日常分享高质量文章,输出 Go 面试、工作经验、架构设计,加微信拉读者交流群,和大家交流!


原创不易 点赞支持

浏览 57
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐