aaaaxy icon indicating copy to clipboard operation
aaaaxy copied to clipboard

Upgrade to Go 1.22

Open divVerent opened this issue 1 year ago • 3 comments

Right now I am building with Go 1.20. The game is known to work fine in Go 1.22.

Main caveats:

https://go.dev/doc/go1.20

  • Go 1.20 is the last release that will run on any release of Windows 7, 8, Server 2008 and Server 2012. Go 1.21 will require at least Windows 10 or Server 2016.
  • Go 1.20 is the last release that will run on macOS 10.13 High Sierra or 10.14 Mojave. Go 1.21 will require macOS 10.15 Catalina or later.

Also, Go 1.22 might be the next wall because:

https://go.dev/doc/go1.22

  • Go 1.22 is the last release that will run on macOS 10.15 Catalina. Go 1.23 will require macOS 11 Big Sur or later.

Thus, before making the switch, it may be worth trying to benchmark it to see if it's even justified to drop OS compatibility at this point (given no library that the game uses actually requires a newer Go version yet).

divVerent avatar Mar 09 '24 14:03 divVerent

I've acquired a Macbook Pro (2012) and am currently testing the build there. This one officially can run Catalina, so for now I'm considering Go 1.22 "the wall" for macOS, however I will compare performance in Go 1.20 vs Go 1.22 on that device to see if there's a compelling reason to upgrade there.

divVerent avatar Mar 14 '24 14:03 divVerent

Looks like this question stops asking itself - go-winio requires Go 1.21 or higher now, and as such I am forced to upgrade.

So next release will be with Go 1.21, and the release after will use Go 1.22 to ensure the loopvar change is harmless.

divVerent avatar Apr 23 '24 15:04 divVerent

Added an automated test for Go 1.22 to check if loopvars change is safe.

divVerent avatar Apr 23 '24 15:04 divVerent

1.22 has been done. New releases will be in 1.22.

divVerent avatar May 29 '24 13:05 divVerent