Go 1.5 正式发布,这是 Go 的第六个重要版本。
此版本包括大量重大改进,编译工具链从[ C 转换到 Go](https://golang.org/doc/go1.5#c),从 Go 代码库中完全移除 C 代码。[完完全全重新设计了](https://golang.org/doc/go1.5#gc)垃圾收集器,减少垃圾收集器的停顿时间。改进 scheduler,允许修改默认 [GOMAXPROCS](https://golang.org/pkg/runtime/#GOMAXPROCS) 值(并发执行 goroutines 数量),可以从 1 修改到逻辑 CPUs 的数量。改进 linker,允许分布式 Go 包作为分享库链接到 Go 程序,可以构建 Go 包到归档或者分享库,可以链接或者通过 C 程序加载 ([design doc](https://golang.org/s/execmodes))。
此版本还包括[对开发工具的改进](https://golang.org/doc/go1.5#go_command):包与包之间允许分享实现细节;尝试性支持 "vendoring" 外部依赖,在 Go 程序中使用一个标准机制管理依赖;添加 "go tool trace" 命令;添加 "[go doc](https://golang.org/cmd/go/#hdr-Show_documentation_for_package_or_symbol)" 命令等等。
还有一些新操作系统和架构移植。新移植:darwin/arm,darwin/arm64 (Apple's iPhone 和 iPad 设备) 和 linux/arm64。尝试性支持 ppc64 和 ppc64le (IBM 64-bit PowerPC, big and little endian)。
新 darwin/arm64 移植和外部特性充分体现在 [Go 移动项目](https://godoc.org/golang.org/x/mobile),可以窥见 Go 是如何尝试在 Android 和 iOS 设备上构建应用。(Go 移动端方面并不包含在这个版本中)。
语言方面的改进非常小;标准库有大量的组件和改进。
完整改进内容请看[详细发行说明](https://golang.org/doc/go1.5),Go 1.5 现已提供[下载](https://golang.org/dl/)。
其实我一直没有想明白这样做的好处:
用同一种语言编写 编译器/解释器, 用来编译/解释 这种语言自己。
除了很cool以外, 还有什么看得到,感觉得出来的其他好处呢?
#5