一些go.dev/blog 官方blog
- 官方blog
- 官方go源码
官方blog
官方blog主页展示 - 下方是按new->old排序的blog
go官方blog : The Go Blog
整理了go官方发布的blog,从中了解每个版本修改的内容。只筛选了部分blog,其余的感兴趣的可以直接点击上分的连接,去官网看。
这里不做翻译了,只是简单记录一下,需要翻译的直接google一键翻译,干净又卫生(方便又快捷)
Go 1.19 is released - 2 August 2022
The Go Team
2 August 2022
Today the Go team is thrilled to release Go 1.19, which you can get by visiting the download page.
Go 1.19 refines and improves our massive Go 1.18 release earlier this year. We focused Go 1.19’s generics development on addressing the subtle issues and corner cases reported to us by the community, as well as important performance improvements (up to 20% for some generic programs).
Doc comments now support links, lists, and clearer heading syntax. This change helps users write clearer, more navigable doc comments, especially in packages with large APIs. As part of this change gofmt
now reformats doc comments to apply a standard formatting to uses of these features. See “Go Doc Comments” for all the details.
Go’s memory model now explicitly defines the behavior of the sync/atomic package. The formal definition of the happens-before relation has been revised to align with the memory models used by C, C++, Java, JavaScript, Rust, and Swift. Existing programs are unaffected. Along with the memory model update, there are new types in the sync/atomic package, such as atomic.Int64 and [atomic.PointerT], to make it easier to use atomic values.
For security reasons, the os/exec package no longer respects relative paths in PATH lookups. See the package documentation for details. Existing uses of golang.org/x/sys/execabs can be moved back to os/exec in programs that only build using Go 1.19 or later.
The garbage collector has added support for a soft memory limit, discussed in detail in the new garbage collection guide. The limit can be particularly helpful for optimizing Go programs to run as efficiently as possible in containers with dedicated amounts of memory.
The new build constraint unix
is satisfied when the target operating system (GOOS
) is any Unix-like system. Today, Unix-like means all of Go’s target operating systems except js
, plan9
, windows
, and zos
.
Finally, Go 1.19 includes a wide variety of performance and implementation improvements, including dynamic sizing of initial goroutine stacks to reduce stack copying, automatic use of additional file descriptors on most Unix systems, jump tables for large switch statements on x86-64 and ARM64, support for debugger-injected function calls on ARM64, register ABI support on RISC-V, and experimental support for Linux running on Loongson 64-bit architecture LoongArch (GOARCH=loong64
).
Thanks to everyone who contributed to this release by writing code, filing bugs, sharing feedback, and testing the beta and release candidates. Your efforts helped to ensure that Go 1.19 is as stable as possible. As always, if you notice any problems, please file an issue.
Enjoy Go 1.19!
When To Use Generics - 12 April 2022
Get familiar with workspaces - 5 April 2022
An Introduction To Generics - 22 March 2022
An Introduction To Generics, 22 March 2022
Go 1.18 is released - 15 March 2022
Go 1.18 is released!, 15 March 2022
Two New Tutorials for 1.18 - 14 January 2022
Two New Tutorials for 1.18, 14 January 2022
Katie Hockman, for the Go team
14 January 2022
We will be releasing Go 1.18 soon, and this release includes a few new concepts for Go. We have published two new tutorials to help introduce you to these upcoming features.
The first new tutorial will help you get started with generics. This tutorial walks you through creating a generic function that can handle multiple types, and calling it from your code. Once you’ve created a generic function, you’ll learn about type constraints, and write some for your function. Also consider checking out the GopherCon talk about generics to learn more.
The second new tutorial will help you get started with fuzzing. This tutorial demonstrates how fuzzing can find bugs in your code, and walks through the process of diagnosing and fixing the issues. In this tutorial, you will write code that has a few bugs and use fuzzing to find, fix, and verify the bugs using the go command. Special thanks to Beth Brown for her work on the fuzzing tutorial!
Go 1.18 Beta 1 was released last month, which you can get by visiting the downloads page.
See the full draft release notes for Go 1.18 for more details about what to expect in the release.
As always, if you notice any problems, please file an issue.
We hope you enjoy the tutorials, and we look forward to everything to come in 2022!
Tutorial: Getting started with generics
Tutorial: Getting started with generics
Tutorial: Getting started with fuzzing
Tutorial: Getting started with fuzzing
A new search experience on pkg.go.dev - 9 November 2021
A new search experience on pkg.go.dev, 9 November 2021
Automatic cipher suite ordering in crypto/tls - 15 September 2021
Automatic cipher suite ordering in crypto/tls, 15 September 2021
Go 1.17 is released - 16 August 2021
Go 1.17 is released, 16 August 2021
The Go Collective on Stack Overflow - 23 June 2021
The Go Collective on Stack Overflow, 23 June 2021
Contexts and structs - 24 February 2021
Contexts and structs, 24 February 2021
When designing an API with context, remember the advice: pass
context.Context in as an argument; don’t store it in structs
.
New module changes in Go 1.16 - 18 February 2021
New module changes in Go 1.16, 18 February 2021
Go 1.16 is released - 16 February 2021
Go 1.16 is released, 16 February 2021
Command PATH security in Go - 19 January 2021
Command PATH security in Go, 19 January 2021
Go 1.15 is released - 11 August 2020
Go 1.15 is released, 11 August 2020
Keeping Your Modules Compatible - 7 July 2020
Keeping Your Modules Compatible, 7 July 2020
Pkg.go.dev is open source - 15 June 2020
Pkg.go.dev is open source!, 15 June 2020
Go, the Go Community, and the Pandemic - 25 March 2020
Go, the Go Community, and the Pandemic, 25 March 2020
A new Go API for Protocol Buffers - 2 March 2020
A new Go API for Protocol Buffers, 2 March 2020
Go 1.14 is released - 25 February 2020
Go 1.14 is released, 25 February 2020
Working with Errors in Go 1.13 - 17 October 2019
Working with Errors in Go 1.13, 17 October 2019
Go 1.13 is released - 3 September 2019
Go 1.13 is released, 3 September 2019