正如go 1.10发行说明中所宣布的那样,go 1.11现在需要openbsd 6.2或更高版本,macos 10.10 yosemite或更高版本,或windows 7或更高版本;删除了对这些操作系统的早期版本的支持。
-msan现在支持 内存清理器()linux/arm64。 (推荐学习:go)
现在支持 构建模式c-shared和。 c-archivefreebsd/amd64
在64位mips系统上,新的环境变量设置 gomips64=hardfloat(默认设置)并 gomips64=softfloat选择是将硬件指令还是软件仿真用于浮点计算。对于32位的系统中,环境变量仍然gomips,因为在go 1.10加入。
在软浮点arm系统(goarm=5)上,go现在使用了更高效的软件浮点接口。这对于go代码是透明的,但是使用不受goarm保护的浮点指令的arm程序集将中断,必须将其移植到新接口。
在armv7上运行1.11不再需要配置了linux内核kuser_helpers。此设置在默认内核配置中启用,但有时在精简配置中被禁用。
web组装
go 1.11向webassembly (js/wasm)添加了一个实验端口。
go程序当前可编译到一个webassembly模块,该模块包括go运行时,用于goroutine调度,垃圾回收,地图等。因此,结果大小至少约为2 mb,或压缩后500 kb。go程序可以使用新的实验syscall/js包调用javascript 。二进制大小和与其他语言的互操作尚未成为优先事项,但将来的发行版中可能会解决。
由于添加了新的goos值“ js”和goarch值“ wasm”,go工具现在将忽略名为*_js.go或的go文件,除非使用了那些goos / goarch值。如果您已有与这些模式匹配的文件名,则需要重命名它们。 *_wasm.go
模块,软件包版本控制和依赖项管理
go 1.11添加了对称为“模块” 的新概念的初步支持,这是gopath的替代方案,具有对版本控制和程序包分发的集成支持。使用模块,开发人员不再局限于在gopath中工作,版本相关性信息是明确而轻巧的,并且构建更加可靠和可复制。
模块支持被认为是实验性的。根据go 1.11用户的反馈,详细信息可能会更改,并且我们计划了更多工具。尽管模块支持的详细信息可能会更改,但是使用go 1.11转换为模块的项目将继续在go 1.12和更高版本中使用。
构建缓存要求
go 1.11将是支持将环境变量设置gocache=off为禁用构建缓存的最新 版本,go 1.10中引入了该功能。从go 1.12开始,将需要构建缓存,这是消除的一步$gopath/pkg。上面描述的模块和程序包加载支持已经要求启用构建缓存。
以上就是golang1.11改了哪里东西的详细内容。
