Go 1.19 正式发布


Go 1.19 现已发布,可以通过访问下载页面获得该版本。"它的大部分变化是在工具链、运行时和库的实现方面。一如既往,该版本保持了 Go 1 的兼容性承诺。我们期望几乎所有的 Go 程序都能像以前一样继续编译和运行"。该版本包括一些内存模型的调整,LoongArch port,文档评论机制的改进等。

具体更新内容如下:

  • Go 1.19 完善并改进了 Go 1.18 。开发团队将 Go 1.19 的泛型开发集中在解决社区报告的一些细微问题和极端情况,以及重要的性能改进(某些泛型程序性能改进高达 20%)。
  • 文档注释现在支持链接、列表和更清晰的标题语法。此更改有助于用户编写更清晰、更容易浏览的文档注释,尤其是在具有大型 API 的包中。作为此更改的一部分,gofmt现在重新格式化文档注释以将标准格式应用于这些功能的使用。有关所有详细信息,可参阅“ Go Doc Comments”。
  • Go 的内存模型现在明确定义了 sync/atomic 包的行为。happens-before 关系的正式定义已被修改,以与 C、C++、Java、JavaScript、Rust 和 Swift 使用的内存模型保持一致。现有程序不受影响。随着内存模型的更新, sync/atomic 包中还有新的类型,例如 atomic.Int64 和 atomic.Pointer[T],以便更容易使用 atomic values。
  • 出于安全原因, os/exec 包不再遵循 PATH 查找中的相对路径。有关详细信息,可参阅 package documentation。golang.org/x/sys/execabs 的现有用途可以在仅使用 Go 1.19 或更高版本构建的程序中移回 os/exec。
  • 垃圾收集器增加了对软内存限制的支持,在新的垃圾收集指南中有详细讨论。该限制对于优化 Go 程序以在具有专用内存量的容器中尽可能高效地运行特别有用。
  • 当目标操作系统(GOOS)是任何类 Unix 系统时,新的构建约束 unix 就得到满足。如今,类 Unix 是指所有 Go 的目标操作系统,除了 js、plan9、windows 和 zos。
  • 此外,Go 1.19 还包括了各种性能和实现改进,包括动态调整初始 goroutine 堆栈以减少堆栈复制、在大多数 Unix 系统上自动使用附加文件描述符、在 x86-64 和 ARM64 上用于大型 switch 语句的跳转表,支持 ARM64 上的调试器注入函数调用,RISC-V 上的 register ABI 支持,以及在龙芯 64 位架构 LoongArch ( GOARCH=loong64) 上运行的 Linux 的实验性支持。

详情可查看官方博客。


相關推薦

2022-07-15

Go 1.19 发布了第一个 RC 版本,正式版预计在 8 月推出。 主要变化 针对“泛型”的 Bugfix 更新内存模型,与 C、C++、Java、JavaScript、Rust 和 Swift 使用的内存模型保持一致 Go 1.19 在启动时将默认提高打开文件的限制值 Go 1.19

2022-08-09

2022年8月2日,Go 1.19 正式发布,并添加了对 LoongArch 架构的原生支持。至此,LoongArch 指令系统在 Golang 社区成为与 X86、ARM 等指令系统并列支持的指令系统之一。 据龙芯官方介绍,2021年5月龙芯中科向 Golang 社区提交了 LoongArch

2022-11-12

庆祝 Go 开源 13 周年。2009 年 11 月 10 日,Go 作为开源项目正式宣布推出,目前已开源 13 周年。   对于 Go 来说,2022 是非常重要的一年,这一年  Go 发布了 Go 1.18 和 Go 1.19 版本,下面回顾一下今年 Go 发布的新

2022-09-11

考 KVM VM 磁盘镜像。 Fedora 37 Beta 将于下周二(9月13日)正式发布。或者如果你急于在这个周末尝试,已经有宣布准备好的 ISO 镜像:https://dl.fedoraproject.org/pub/alt/stage/37_Beta-1.5/。

2022-11-08

GoLand 2022.3 测试版已经发布,因此也已经停止添加新的功能,正集中精力修复错误,为 12 月初的主要版本做好准备。 性能改进 改变 'go list' 以改善索引 打开时从缓存中恢复项目结构 更快的 IDE 启动和项目打开 泛型

2022-10-21

进行创新。 值得一提的是,Google Open Source 官方一开始发布的的公告内容是:"谷歌向 CNCF 捐赠了用于简单快速安全的容器镜像构建的 KO 工具"。不过这篇原始贴很快就被删除,并以一个新的、稍有分寸的标题重新发布:"KO 申

2022-12-02

GoLand 2022.3 提供了性能增强以及针对泛型和 Go 工作区的新功能。新版本集成了 Go Playground,添加了改进 Go 文档注释的支持,为 HTTP 客户端和 Docker 引入了新功能,并提供了新 UI。 此外,GoLand 也迎来了 5 岁生日,官方邀请各位开

2022-10-27

托管、运行和扩展专用游戏服务器。 目前,Agones V1.27.0 发布了,此版本的 Agones 从 Go 1.17 升级到 Go 1.19,并带来其他改进: 默认情况下,在 GKE 上启用图像流式传输 为集群自动扩缩器提供更强大的灵活性 通过将错误包装

2022-07-31

GoLand 2022.2 为泛型和 go.work 带来了新功能,还增加了对模糊测试的支持,SQL 语句现在可被自动检测,还带来了针对它们的全面代码辅助。 GoLand 现已支持 WebSocket 连接,并且可以通过 HTTP 和 WebSocket 协议发送 GraphQL 查询。 泛型

2022-10-17

十月中旬,我们推出了 Gitea 1.17.3 版本。与此同时,1.18版本的新特性也几乎确定,追踪 Gitea 的代码仓库可以发现最新的 feature 大部分已进入冻结状态,相信不久之后会放出预览版,心急的小伙伴已经使用 Docker 快速切换到 Dev 分

2023-01-20

OAuthApp 是一个前端发布工具,用于快速开发前端网页项目,并发布到服务器。 具有引入脚本库就能使用服务端 API、在线发布 H5、应用站点的数据独立存储的特性。 2023-1-19主要更新 1,加入站点流量、服务器耗时、IP来源、新

2023-09-28

Windows Terminal Preview 1.19 现已发布,引入了 Broadcast Input、Web Search、Suggestions UI 等新功能。具体更新内容如下: Broadcast Input Broadcast Input 允许将一个终端窗格的内容 broadcast 到选项卡中的所有其他窗格。要打开 Broadcast Input,可

2022-11-23

嵌入式 Linux 部署的热门选择。 目前 Alpine Linux 3.17 发布了,此版本仍然由 Linux 5.15 LTS 内核系列提供支持,但把默认的 OpenSSL 实现升级到 OpenSSL 3.0 版本,此外,Rust 现在可用于所有支持的架构。 Alpine Linux 3.17 还附带了一些

2023-01-30

GO语言通用代码生成器:仙童已发布第一个Beta版,修复重要错误 GO语言通用代码生成器:仙童已发布第一个Beta版。修复了Excelize v2组件API变化引起的编译错误。此错误会引起Beta版以前所有版本代码生成物的编译错误。请用户迁