对于 2021 年 11 月的关注提交记录 (Go)

以下是我从golang/go的主分支提交记录中个人特别关注的事项列表。

以下是上次制作的清单。

可能有一些误解或错误,我在这里进行了简要说明。

主题

    • 既存の標準パッケージよりも改善された IP アドレス表現を提供する net/netip が追加されました。

 

    • 新しい GC Pacer (GC をいつ動かすか決定するアルゴリズム) が実装され、デフォルトで有効になりました。

 

    安全ではないとされている証明書の署名や TLS バージョンに対する扱いが変更されています。

承诺

2021年11月02日

新增了net/netip,提供了比现有的标准包更改进(较小且可进行比较,且不会发生内存分配)的IP地址表示。虽然需要转换到与现有函数不同的函数,但在特别是UDP发送和接收方面,受益较大。虽然没有详细说明,但还合并了一些优化UDP发送和接收方面的更改。

2021年11月3日

在Go 1.18中,现在可以在启动时检查编译后的二进制文件所需的架构级别。然而,在相同的amd64架构中,Go 1.18添加了使用较新指令的更高一代的功能。如果在启动时不进行检查,并在执行不支持的指令时会触发SIGILL信号,因此这个处理方式非常重要。

2021年11月5日

新的 GC Pacer(决定何时运行 GC 的算法)已经实现,并且已默认启用。这导致最小堆大小从 4 MiB 减少到了 512 KiB,但已经发现了性能问题,因此堆大小已恢复原状。

2021年11月6日

netip.Addr提供的函数在内存分配方面已经进行了改进。
通过使用命名返回值,可以减少内存复制,我是通过这个PR才知道的。然而,不推荐为了优化而使用,希望编译器能尽力进行优化。

SHA-1形式的证书验证已被取消,十次十准确。

TLS客户端请求的默认最低版本已更新为TLS 1.2。计划逐步扩大适用范围,并最终删除对TLS 1.0和TLS 1.1的支持。

2021年11月9日 jiǔ rì)

最近的变更中,Windows环境下可以创建崩溃转储文件,这是12个版本开始的。但由于条件的限制,Microsoft决定将13版本回退,以避免自动上传崩溃转储文件(包括内存内容)。

2021年11月13日

修复了在HTTP/2中关闭响应主体时可能返回错误的问题。这是与Go 1.17.3有关的回归。

2021年11月17日

当您在使用 `go build` 而不是 `go run` 时,修复了关于使用新加入的 Go 1.18 预定义标识符 `any` 的失败问题。如果泛型被启用,编译时会将 `any` 作为事前定义的标识符输出到运行时。

2021年11月20日

这是对事前定义的标识符”any”作为”interface{}”的别名进行修正。虽然在Go的规范中有这样的记载,但实际上它被处理为定义类型,而不是别名。

为了方便起见,预先声明的类型任意(any)是空接口的别名。

快速的评论整理

虽然列表中没有列出,但泛型相关的修正仍然很多。
此外,为了 Go 1.18 发布,还进行了大量的文档修正工作。

我觉得不仅限于泛型,Go 1.18 还引入了许多方便的新包和函数,所以可能会有更多在旧版本的 Go 中无法运行的包。

https://github.com/golang/go/issues/46518 – 该问题连接到Go语言的Github页面,编号为46518。

https://tailscale.com/blog/netaddr-new-ip-type-for-go/ – 此链接连接到Tailscale博客中的一篇文章,介绍了Go语言中的新IP类型。

https://github.com/golang/go/issues/48506 – 这个问题链接到Go语言的Github页面,编号为48506。

https://github.com/golang/go/issues/45453 – 此问题链接到Go语言的Github页面,编号为45453。

https://github.com/golang/go/issues/44167 – 该问题连接到Go语言的Github页面,编号为44167。

https://github.com/golang/go/issues/49744 – 这个问题链接到Go语言的Github页面,编号为49744。

https://github.com/golang/go/commit/c5c1955077cb94736b0f311b3a02419d166f45ac – 此链接连接到Go语言的Github页面,显示了指定提交的详细信息。

https://github.com/golang/go/issues/20859 – 该问题连接到Go语言的Github页面,编号为20859。

https://github.com/golang/go/wiki/CodeReviewComments#named-result-parameters – 此链接连接到Go语言的Github页面,显示了有关命名结果参数的代码审查建议。

https://github.com/golang/go/issues/41682 – 该问题连接到Go语言的Github页面,编号为41682。

https://github.com/golang/go/issues/45428 – 此问题链接到Go语言的Github页面,编号为45428。

https://github.com/golang/go/issues/20498 – 此问题连接到Go语言的Github页面,编号为20498。

https://github.com/golang/go/issues/49471 – 该问题连接到Go语言的Github页面,编号为49471。

https://github.com/golang/go/issues/49366 – 该问题连接到Go语言的Github页面,编号为49366。

https://github.com/golang/go/issues/49619 – 此问题链接到Go语言的Github页面,编号为49619。

https://github.com/golang/go/issues/49665 – 此问题链接到Go语言的Github页面,编号为49665。

https://tip.golang.org/ref/spec#Interface_types – 此链接连接到Go语言官方文档中有关接口类型的部分。

广告
将在 10 秒后关闭
bannerAds