Planning Go 1.21

3,672 views
Skip to first unread message

Carlos Amedee

unread,
Jan 13, 2023, 2:22:22 PM1/13/23
to golang-dev

Hi gophers,

The Go 1.20 release is nearly out, and we're experimenting with reopening the tree early for Go 1.21 development. Please see the tracking issue 57736 for the latest tree status. Tentatively, we expect a soft reopening (for fixes only, not new features yet) by the week of January 16th 2023, and a full general tree reopening shortly thereafter, but please keep an eye on the issue for the latest updates.

Please use this thread to discuss your own plans for the 1.21 development cycle and to coordinate submission.

(Reminder, this thread is for things you *PLAN TO DO YOURSELF*, not things you want other people to do.)

If you plan on working on potentially risky changes, please follow our attached guide.

If you have insights from past Go development cycles on how this practice can be improved further, we welcome your feedback. The goal is to help everyone ship a robust release and minimize the risk of unexpected delays. Thank you for your help!

Thanks,

Carlos for the Release team


A Guide to Risky Changes go1_21.pdf

Keith Randall

unread,
Jan 13, 2023, 4:25:01 PM1/13/23
to Carlos Amedee, golang-dev
Batching of write barriers
Improve SSA scheduling pass
  fixes #42673 #56568
Maybe initialization ordering fix
  issue 57411 (still in proposal process)

--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-dev/24d9b257-2570-4e54-adc3-c15e0dfe6d2en%40googlegroups.com.

Filippo Valsorda

unread,
Jan 14, 2023, 4:57:13 AM1/14/23
to golang-dev
crypto/rsa performance work https://go.dev/issue/57752

A new crypto/tls session API, to support external PSKs, session IDs, serializing tickets, and a series of related fixes, including maybe a GODEBUG-gated fix for https://go.dev/issue/31641.
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.


Attachments:
  • A Guide to Risky Changes go1_21.pdf

constantinko...@gmail.com

unread,
Jan 14, 2023, 10:55:01 AM1/14/23
to golang-dev
Some issues of encoding/xml are marked "early-in-cycle".


Russ Cox

unread,
Jan 14, 2023, 3:34:39 PM1/14/23
to Carlos Amedee, golang-dev
I have at least the following balls in the air for Go 1.21:

panic(nil) as a run-time error (#25448)
Disabling cgo for the distributed cmd/go binary (#57007)
Reproducible Go toolchain builds (#24904).
$GOROOT/go.env (#57179), if proposal is accepted
Backward compatibility (#56986), if proposal is accepted
Forward compatibility (#57001), if proposal is accepted

Probably a few others too.



David Chase

unread,
Jan 15, 2023, 12:12:35 PM1/15/23
to Carlos Amedee, golang-dev
Cleanups:
 - rewrite expand_calls.go to focus only on calls, use (re-run) other rewrite passes to finish the job.
 - centralize magic numbers, as feasible (e.g., map implementation constants appear in at least 4 packages plus gdb-python plus hardcoded tests)

Early work for proposal approval of loop index variable capture change; some people will want to play with the change before deciding, so expose it, or a version of it, behind a GOEXPERIMENT.

Investigate/improve build/compile scheduling; wall time improvements tended to fall short of user time improvements in 1.20.
- refactor compiler tracing to (generally) make it work better for entire builds.

Perhaps improve generation of debugging information (it is currently as bad as quadratic time, though not space).



Michael Knyszek

unread,
Jan 17, 2023, 3:56:42 PM1/17/23
to Carlos Amedee, golang-dev
- Better hugepage management. (https://go.dev/issue/55328, https://go.dev/cl/436395, https://go.dev/cl/460316)
- Some work and cleanup in the x/debug package. (https://go.dev/cl/444158 and the non-API parts of https://go.dev/issue/57447)
- Tweaks to the GC pacer. (https://go.dev/issue/57069 and https://go.dev/issue/56966)
- Hopefully a few changes to the execution tracer for https://go.dev/issue/57175.
- If I'm very lucky, allocation headers. (https://go.dev/cl/437955)

Probably some more small things.

On Fri, Jan 13, 2023 at 2:22 PM Carlos Amedee <car...@golang.org> wrote:

Robert Griesemer

unread,
Jan 17, 2023, 4:54:34 PM1/17/23
to Carlos Amedee, golang-dev
Tentative 1.21 plans for type checker work (some of these may require proposals):

- Improved type inference
- Explicit representation of alias types (expected fix many long-standing issues)
- Remove more generics related restrictions
- Internal: refactoring of receiver type checking
- Internal: sharing more code between types2 and go/types

Sven Anderson

unread,
Jan 23, 2023, 5:20:38 PM1/23/23
to Carlos Amedee, golang-dev
I will try again to land  runtime.Pinner API in CL367296.
 

lab...@linux.vnet.ibm.com

unread,
Jan 24, 2023, 9:25:17 AM1/24/23
to golang-dev

The primary changes planned for ppc64/ppc64le are to leverage Power10 where possible. Other members of the team have CLs in flight and there is some additional linker work that might be done.

I have been working on a change to insert the PCALIGN directive at the top of small inner loops where beneficial, but I'm running into some issues. I might assistance from @drchase.

There are some opportunities to improve aes-gcm on ppc64le but it's not clear on how to proceed given the crypto assembler policy.

Ananth Bhaskararaman

unread,
Mar 23, 2023, 2:36:01 PM3/23/23
to golang-dev
I just landed a change that looks up users and groups on non-cgo Linux builds using systemd-userdb if its available (459455).

Ian Lance Taylor

unread,
Mar 23, 2023, 8:45:34 PM3/23/23
to Ananth Bhaskararaman, golang-dev
On Thu, Mar 23, 2023 at 11:36 AM Ananth Bhaskararaman <ant...@gmail.com> wrote:
>
> I just landed a change that looks up users and groups on non-cgo Linux builds using systemd-userdb if its available (459455).

Unfortunately this was rolled back due to test failures.

Ian
> --
> You received this message because you are subscribed to the Google Groups "golang-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/golang-dev/0a80613b-2919-4d61-8b08-79a5cf2b3751n%40googlegroups.com.

Ananth Bhaskararaman

unread,
Mar 24, 2023, 1:13:42 AM3/24/23
to Ian Lance Taylor, golang-dev
On Fri, 24 Mar 2023 at 06:15, Ian Lance Taylor <ia...@golang.org> wrote:
On Thu, Mar 23, 2023 at 11:36 AM Ananth Bhaskararaman <ant...@gmail.com> wrote:
>
> I just landed a change that looks up users and groups on non-cgo Linux builds using systemd-userdb if its available (459455).

Unfortunately this was rolled back due to test failures.

Ian

OK thanks, I'll look into it.

I will attempt to land systemd-userdb lookups for Go1.21.

Sven Anderson

unread,
Mar 28, 2023, 6:04:30 AM3/28/23
to Carlos Amedee, golang-dev
On Mon, Jan 23, 2023 at 11:20 PM Sven Anderson <sv...@redhat.com> wrote:
I will try again to land  runtime.Pinner API in CL367296.

I finished my work on the Pinner API for now, and it's ready for further review.

Thanks!

Sven

Mauro Leggieri

unread,
Apr 16, 2023, 3:11:47 PM4/16/23
to golang-dev
Hi Sven,

Does the object pinning also involve the GC to avoid analyzing it?

Time ago I faced a problem with a big cache. I had a large amount of objects in memory that I knew they were referenced so they shouldn't be freed. But the GC still checked them all the time to see if they were reachable or not, so the app ended spending more time in GC than in the main code.

Kind regards,
Mauro.
Reply all
Reply to author
Forward
0 new messages