Go 博客

Go 1.5 发布

Andrew Gerrand
2015 年 8 月 19 日

今天,Go 项目自豪地发布了 Go 1.5,这是 Go 的第六个主要稳定版本。

此版本包含对实现的重大更改。编译器工具链已 从 C 移植到 Go,消除了 Go 代码库中最后剩余的 C 代码。垃圾收集器已 完全重新设计,从而 显著减少 垃圾收集暂停时间。对调度程序的相关改进使我们能够将默认的 GOMAXPROCS 值(并发执行的 goroutine 数量)从 1 更改为逻辑 CPU 的数量。链接器的更改允许将 Go 包作为共享库分发以链接到 Go 程序中,并将 Go 包构建到可以链接到或由 C 程序加载的档案或共享库中 (设计文档)。

此版本还包括 对开发工具的改进。对 “内部” 包 的支持允许在包之间共享实现细节。对 “供应商” 外部依赖项的 实验性支持 是朝着 Go 程序中依赖项管理的标准机制迈出的一步。新的 “go tool trace” 命令允许可视化运行时中新跟踪基础设施生成的程序跟踪。新的 “go doc” 命令提供了改进的命令行界面,用于查看 Go 包文档。

还有一些 新的操作系统和架构端口。更成熟的新端口是 darwin/arm、darwin/arm64(Apple 的 iPhone 和 iPad 设备)以及 linux/arm64。还提供对 ppc64 和 ppc64le(IBM 64 位 PowerPC,大端和小端)的实验性支持。

新的 darwin/arm64 端口和外部链接功能推动了 Go 移动项目,这是一个探索如何将 Go 用于构建 Android 和 iOS 设备上的应用程序的实验。(Go 移动工作本身不属于此版本。)

唯一的语言更改非常小,取消了地图字面量语法中的一个限制,以使它们更加简洁,并与切片字面量保持一致。

标准库也看到了很多新增和改进。flag 包现在显示 更清晰的使用说明。math/big 包现在提供 Float 类型,用于计算任意精度的浮点数。对 Linux 和 BSD 系统上的 DNS 解析器的 改进 消除了执行名称查找的程序对 cgo 的要求。 go/types 包已 移至 标准库,而不是 golang.org/x/tools 存储库。(新的 go/constantgo/importer 包也是此移动的结果。)reflect 包添加了 ArrayOfFuncOf 函数,类似于现有的 SliceOf 函数。当然,还有通常的 较小的修复和改进列表

有关完整说明,请参阅 详细的版本说明。或者,如果您迫不及待地想开始,请前往 下载页面 获取 Go 1.5。

下一篇文章:Go GC:优先考虑低延迟和简单性
上一篇文章:GopherCon 2015 回顾
博客索引