美文网首页
Go版本发布历史

Go版本发布历史

作者: 沙漠中的猴 | 来源:发表于2018-08-14 19:14 被阅读0次

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: 雨痕

相关文章

网友评论

      本文标题:Go版本发布历史

      本文链接:https://www.haomeiwen.com/subject/lpxbbftx.html