What we know already
Andreas Linz—klingt.net
2020-02-21T19+16:11
go
command to skip certificate validation or accept HTTPGOINSECURE=localhost go get foo/bar
go.mod
specifies Go 1.14
/vendor
folder is present-mod=vendor
must have been passed-mod=mod
go test -v
(or t.Log
) is now streamed instead of being presented at the end of all testsdefer
This release improves the performance of most uses of defer to incur almost zero overhead compared to calling the deferred function directly. As a result, defer can now be used in performance-critical code without overhead concerns.
The page allocator is more efficient and incurs significantly less lock contention at high values of GOMAXPROCS. This is most noticeable as lower latency and higher throughput for large allocations being done in parallel and at a high rate.
Discord should consider to reevaluate their switch from Go to Rust 😉.
hash/maphash
string
/[]byte
to 64-bit integerscrypto/tls
GODEBUG
anymoreioutil.TempDir
ioutil.TempDir
allows to specify a naming pattern (like TempFile
)rm -rf /tmp/my-app-*
)mime
.js
and .mjs
files is now text/javascript
application/javascript
deprecated (IETF draft)net/http
Header.Values
returns all values associated to a header key (Header.Value
only returns the first one)httptest/Server
adds EnableHTTP2
testing
t.Cleanup
allows to define a custom cleanup function that is run after each testcmd/vet
warn about int
to string
conversionint
s with rune
sstring(10)
is "\n"
not "10"
unicode/utf8
provides runeToString
(play)interface
-interface
assertionCurrently, Go permits any type assertion x.(T) (and corresponding type switch case) where the type of x and T are interfaces.
cmd/vet
will warn about this (will be a compile error later)The primary goals for Go remain package and version management, better error handling support, and generics.
we are also making progress on the generics front (more on that later this year).