Go 1.19版本发布

2023-06-01 00:00:00 版本 发布 1.19

go语言开发团队:2022 年 8 月 2 日发布 go1.19正式版本

今天,Go 团队很高兴发布 Go 1.19,您可以通过访问下载页面获得该版本。


go1.19版本下载:

https://go.dev/dl/

ps:有时候访问不了该页面,不怕,多访问几次就ok了

go1.19.png

Go 1.19 改进并改进了我们今年早些时候发布的大规模 Go 1.18 。

我们将 Go 1.19 的泛型开发集中在解决社区向我们报告的微妙问题和极端情况,以及重要的性能改进(某些泛型程序高达 20%)。


文档注释现在支持链接、列表和更清晰的标题语法。

此更改有助于用户编写更清晰、更易于导航的文档注释,尤其是在具有大型 API 的包中。

作为此更改的一部分,gofmt现在重新格式化文档注释以将标准格式应用于这些功能的使用。

有关所有详细信息,请参阅“ Go Doc Comments ”。

https://go.dev/doc/comment


Go 的内存模型现在明确定义了sync/atomic 包的行为。

之前发生关系的正式定义已被修改,以与 C、C++、Java、JavaScript、Rust 和 Swift 使用的内存模型保持一致。

现有程序不受影响。

随着内存模型的更新, sync/atomic 包中还有新的类型,

例如atomic.Int64和atomic.Pointer[T],以便更容易使用原子值。

内存模型:

https://go.dev/ref/mem

sync/atomic包:

https://go.dev/pkg/sync/atomic/


出于安全原因, os/exec 包不再尊重 PATH 查找中的相对路径。

有关详细信息,请参阅软件包文档 。

golang.org/x/sys/execabs的现有用途,可以在仅使用 Go 1.19 或更高版本构建的程序中移回 os/exec。


垃圾收集器增加了对软内存限制的支持,在新的垃圾收集指南中有详细讨论。

该限制对于优化 Go 程序以在具有专用内存量的容器中尽可能高效地运行特别有用。


unix当目标操作系统 ( GOOS) 是任何类 Unix系统时,新的构建约束得到满足。

今天,类 Unix 意味着 Go 的所有目标操作系统,除了js、plan9、windows和zos.


最后,Go 1.19 包括各种性能和实现改进,

包括动态调整初始 goroutine 堆栈以减少堆栈复制、在大多数 Unix 系统上自动使用附加文件描述符、在 x86-64 和 ARM64 上用于大型 switch 语句的跳转表,

支持 ARM64 上的调试器注入函数调用,RISC-V 上的寄存器 ABI 支持,

以及在龙芯 64 位架构 LoongArch ( GOARCH=loong64) 上运行的 Linux 的实验性支持。


感谢所有通过编写代码、提交错误、分享反馈以及测试 beta 和候选版本为这个版本做出贡献的人。

您的努力有助于确保 Go 1.19 尽可能稳定。

与往常一样,如果您发现任何问题,请提出问题。

https://go.dev/issue/new

享受 Go 1.19!

相关文章