![](https://img.haomeiwen.com/i4759699/dc4ee5245023b066.jpg)
Release History
版本更新记录。
1.11
-
实验性支持 WebAssembly (js/wasm)。
-
实验性启用版本和依赖管理 Modules,替代 GOPATH。
-
最后一个支持 GOCACHE=off 的版本。
-
编译器支持内联更多类型函数,包括调用 panic 的函数。
-
编译优化 map delete、slice append。
-
更准确的调试信息,对没有 -N -l 编译结果提供更好支持。
-
允许在 delve 调试器中调用函数。
-
最后一个支持 godoc 命令行的版本,未来基于 web。
-
内存分配器使用稀疏堆,不再有 512GB 限制。
符号 @ 在 module 中有特殊含义,命令行不再支持 @ 符号。
1.10
-
工具链从可执行文件路径推导 GOROOT。
-
可用 GOTMPDIR 设置专用临时目录。
-
使用 GOCACHE 缓存编译结果,与 GOROOT/GOPATH 中已安装的编译结果隔离。
-
编译参数(gcflags 等)仅作用于命令行列出的包。
-
安装命令(go install)仅安装命令行列出的包,不含依赖项。
-
单元测试(go test)也将使用缓存加速。
-
性能测试(go tool pprof)新增 WEB 界面。
-
堆栈跟踪(stack trace)不再包含编译器自动生成(autogenerated)的函数。
-
GOMAXPROCS 最大限制取消。
-
LockOSThread/UnlockOSThread 嵌套数量必须匹配。
1.9
-
类型别名。
-
并行编译。(GO19CONCURRENTCOMPILATION=0 禁用)
-
工具集默认不再扫描 vendor 目录。
-
安装目录不再固定。(可显式设置 GOROOT)
-
新增 sync/map。
-
新增 test helper。
-
新增 pprof label。
1.8
-
不同的 tag 不再阻止 struct 显式转换。
-
改善 map 并发操作检测。
-
垃圾回收暂停时间进一步缩短到(10~100 us)。
-
函数参数生命周期不再等同整个栈帧,可被提前回收,需用 KeepAlive 保持。
-
改进 defer、CGO 调用开销(一半)。
-
编译后端 SSA 支持所有平台,gcflags -ssa=0 参数被移除。
-
支持默认 GOPATH 设置 $HOME/go。
-
支持插件模式(buildmode: plugin)。
-
支持 mutex profile。
-
工具链 yacc 移除。
-
工具链 pprof 支持 https+insecure 模式。
-
HTTP2/push,HTTP Server Graceful Shutdown。
1.7
-
AMD64 使用 SSA 后端,可使用 gcflags "-ssa=0" 关闭。
-
新二进制格式。
-
链接器不再支持 -X name value,须使用 -X name=value。
-
包依赖 vendor 成为正式功能,移除 GO15VENDOREXPERIMENT 环境变量。
-
为 x86–64 增加对 Linux’s perf、Intel’s VTune 工具支持(设置并保存 BP 寄存器值)。
-
实验性支持 Binary-only package。(静态包,不再需要源码文件)
BP 寄存器可选: 在 make.bash 构建工具链时添加GOEXPERIMENT=noframepointer 屏蔽。
1.6
-
CGO 支持指针共享。
-
重写 parser,替代 yacc 生成。
-
编译器增加 -msan 参数,支持 Clang MemorySanitizer,用于探测读未初始化内存(CGO)。
-
增加 buildmode c-shared 支持。
-
GO15VENDOREXPERIMENT 默认 1。
-
HTTP2 支持。
1.5
-
用 Go 重写运行时和编译器,需要使用 Go 编译 Go。
-
对 6g、6l 重命名,改为 compile、linker、asm。
-
新 GC 算法,实现并发标记和清理,增加控制器和辅助回收等。
-
GOMAXPROCS 默认 cores 数量。
-
增加 buildmode 支持,生成共享库。
-
支持 internal、vendor 包。
-
支持 go tool trace 命令,跟踪执行过程。
by: 雨痕
网友评论