国内多个库被 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 面试、工作经验、架构设计,加微信拉读者交流群,和大家交流!


原创不易 点赞支持

浏览 45
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报