方法最好是通用的,不是指某一个 pkg ;
RT,非常感谢!
1
AmrtaShiva 2020-10-14 10:41:36 +08:00 via Android
降低版本?
|
2
wleven 2020-10-14 10:43:21 +08:00
标准库不是向下兼容的吗?
|
3
ine181x 2020-10-14 10:44:01 +08:00
1.x 的标准库是向下兼容的?
|
4
cloverzrg2 2020-10-14 10:46:22 +08:00
试下这个格式 go get golang.org/x/net v0.0.0-20200116001909-b77594299b42
|
5
cloverzrg2 2020-10-14 10:47:07 +08:00
go get golang.org/x/net@c65d6632
|
6
ppphp 2020-10-14 10:52:10 +08:00
根据最小版本原则,同一个依赖会引用最高版本,要降所有依赖的一起降
|
9
lasuar OP @cloverzrg2 go/ast 在 x 下面没有的,只有 golang.org/x/tools/go/ast/astutil,这个是 util 来的,也是引用标准库的 ast
|
10
katsusan 2020-10-14 12:09:04 +08:00
标准库默认的是链接$GOROOT/pkg/$GOOS_$GOARCH 下的目标文件,
比如"import go/ast“的话会链接 /usr/local/go/pkg/linux_amd64/go/ast.a, 目前没看到链接器有提供选项可以改这个。按我的愚见有两种思路: 1. git clone 指定版本的 go 源码到 GOPATH/pkg/mod/github.com/golang 下 比如 git clone --branch go1.13.1 https://github.com/golang/go %GOPATH%/pkg/mod/github.com/golang 这样可以 import "github.com/golang/go/src/go/ast"来使用 2. 在当前项目下用 vendor 管理一个标准库的副本 |
13
cholerae 2020-10-14 13:38:23 +08:00
不要搞黑科技,如果真的有必要就老老实实拷出来当作一个第三方包来维护。
|
14
sunriz 2020-10-14 16:15:00 +08:00
自己 fork 一个再引用
|
15
Mohanson 2020-10-14 16:30:46 +08:00 via Android
|
16
lasuar OP @Mohanson 当然明白你的意思,但查清 /复现具体的问题对我来说目前要花不少时间,我只能基于经验判断并得出一个目前较快解决问题的方案,至于具体的问题,是否真的是标准库 bug 要等到自己有时间才能去查明。
|
17
reus 2020-10-14 23:37:02 +08:00
对编译器做 git bisect,看看是哪一个 commit 导致的,然后要么改自己代码,要么去 github 提 issue
标准库 ast 包很少改动,数到第十个 commit 都已经是一年半以前了。而且大多数是改注释 |
18
Yoock 2020-10-14 23:57:39 +08:00 1
不要怀疑标准库,绝大部分情况下是你自己的问题
|