Daniel MartĂ­ Profile picture
Nov 3 • 32 tweets • 8 min read
Live tweeting from @GolangSheffield about what's coming to #golang 1.20, to be released at the end of January!

Follow along in the thread below 👇
@GolangSheffield We'll first look at upcoming toolchain changes.

A big new feature is profile-guided optimization:
go.dev/issue/55022
Distributed toolchain binaries work on glibc and musl:
go.dev/issue/54197
Binary distributions no longer include .a files:
go.dev/issue/47257
Extend coverage testing to include applications:
go.dev/issue/51430
go test gains a -skip flag:
go.dev/issue/41583
go test now prints running tests on timeout:
go.dev/issue/39038
bootstrapping 1.20 now requires Go 1.17 or later:
go.dev/issue/44505
New GO$GOARCH build tags:
go.dev/issue/45454
cmd/go removed the deprecated build -i flag:
go.dev/issue/41696
Onto API changes in the standard library!

Support wrapping multiple errors:
go.dev/issue/53435
Experimental arena support (!!!):
go.dev/issue/51317
crypto/ecdh, a better crypto/elliptic:
go.dev/issue/52221
time: add DateTime, DateOnly, TimeOnly:
go.dev/issue/52746
bytes,strings: add Clone:
go.dev/issue/45038
strings: add CutPrefix, CutSuffix:
go.dev/issue/42537
add testing.B.Elapsed:
go.dev/issue/43620
add io.OffsetWriter:
go.dev/issue/45899
reflect: add Comparable, Equal:
go.dev/issue/46746
add reflect.SetZero:
go.dev/issue/52376
Now onto performance improvements!

~0.3% smaller binaries via growslice:
go.dev/cl/418554
~1.1% smaller binaries via runtime.inlinedCall:
go.dev/issue/54849
~1% smaller ARM64 binaries:
go.dev/cl/444715
the compiler got ~3% faster:
go.dev/cl/432897
new inline heuristic for struct compares:
go.dev/issue/38494
time: ~70% faster at parsing and ~30% at formatting RFC3339:
go.dev/issue/54093
go/printer is now ~13% faster:
go.dev/cl/424924
go.dev/cl/412555
text/template parsing is now ~40% faster:
go.dev/issue/53261
large io.Copy calls via splice on Linux are now ~20% faster:
go.dev/cl/425051
-race is now 15% faster on GOAMD64=v3:
go.dev/cl/444396
That's it for today! Look forward to the first beta being released in a few weeks' time, and please test it :)

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Daniel MartĂ­

Daniel MartĂ­ Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @mvdan_

May 5
Here's a list of some changes coming in #golang 1.19! The first beta will be out in a month, and the final release in early August.

Live tweeting from @GolangSheffield! Each change with a link, so you can read more.
1.18 shipped generics, which made it a large release that arrived six weeks late.

This means 1.19 got less development time than usual, to be able to release on time. The feature freeze is this week.
Starting out, lots of fixes and tweaks for type parameters AKA generics!

Some are being backported to Go 1.18, and some are still in progress. Overall, more polish.
Read 20 tweets
Nov 6, 2021
Here's a list of some changes to look forward to in #golang 1.18! The first beta should be out in a month, and the final release in three months.

Each change with a link, so you can read more.
Of course, generics, also known as type parameters! Work started about two years ago, and the language changes are finally landing.

Full details here: go.googlesource.com/proposal/+/ref…
Only overshadowed by generics is native support for fuzzing! @dvyukov led the way with go-fuzz for many years, and @katie_hockman with @jayconrod brought native support for "go test".

go.dev/blog/fuzz-beta
Read 14 tweets
Jan 21, 2021
Here's a short list of the changes to look forward to for #golang 1.17, to start landing once the merge window opens in a few weeks.

Don't get confused with 1.16, releasing next month. 1.17 will come out in seven months.

Each change with a link, so you can read more.
A register-based calling convention for Go functions. Backwards compatible, and should give 5-10% speed improvements across a range of applications.

github.com/golang/go/issu…
First class fuzzing support in the Go toolchain. This work has been happening behind the scenes in the dev.fuzz branch for some months, so I hope it will start landing for 1.17.

golang.org/s/draft-fuzzin…
Read 8 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(