mirror of
https://github.com/golang/go
synced 2024-11-19 06:04:39 -07:00
6a4b1f745d
Change-Id: I49b09349a632a6b6219c85638d9cb6774c0c210a Reviewed-on: https://go-review.googlesource.com/c/go/+/181721 Reviewed-by: Bryan C. Mills <bcmills@google.com>
415 lines
14 KiB
HTML
415 lines
14 KiB
HTML
<!--{
|
|
"Title": "Go 1.13 Release Notes",
|
|
"Path": "/doc/go1.13",
|
|
"Template": true
|
|
}-->
|
|
|
|
<!--
|
|
NOTE: In this document and others in this directory, the convention is to
|
|
set fixed-width phrases with non-fixed-width spaces, as in
|
|
<code>hello</code> <code>world</code>.
|
|
Do not send CLs removing the interior tags from such phrases.
|
|
-->
|
|
|
|
<style>
|
|
ul li { margin: 0.5em 0; }
|
|
</style>
|
|
|
|
<h2 id="introduction">DRAFT RELEASE NOTES - Introduction to Go 1.13</h2>
|
|
|
|
<p>
|
|
<strong>
|
|
Go 1.13 is not yet released. These are work-in-progress
|
|
release notes. Go 1.13 is expected to be released in August 2019.
|
|
</strong>
|
|
</p>
|
|
|
|
<p>
|
|
As of Go 1.13, the go command downloads and authenticates modules using
|
|
the Go module mirror and Go checksum database run by Google. See
|
|
<a href="https://proxy.golang.org/privacy">https://proxy.golang.org/privacy</a>
|
|
for privacy information about these services and the
|
|
<a href="/cmd/go/#hdr-Module_downloading_and_verification">go command documentation</a>
|
|
for configuration details.
|
|
</p>
|
|
|
|
<p>
|
|
TODO
|
|
</p>
|
|
|
|
<h2 id="language">Changes to the language</h2>
|
|
|
|
<p>
|
|
TODO
|
|
</p>
|
|
|
|
<h2 id="ports">Ports</h2>
|
|
|
|
<p>
|
|
TODO
|
|
</p>
|
|
|
|
<h3 id="darwin">Darwin</h3>
|
|
|
|
<p>
|
|
As <a href="go1.12#darwin">announced</a> in the Go 1.12 release notes,
|
|
Go 1.13 now requires macOS 10.11 El Capitan or later;
|
|
support for previous versions has been discontinued.
|
|
</p>
|
|
|
|
<h3 id="freebsd">FreeBSD</h3>
|
|
|
|
<p>
|
|
As <a href="go1.12#freebsd">announced</a> in the Go 1.12 release notes,
|
|
Go 1.13 now requires FreeBSD 11.2 or later;
|
|
support for previous versions has been discontinued.
|
|
FreeBSD 12.0 or later requires a kernel with the COMPAT_FREEBSD11 option set (this is the default).
|
|
</p>
|
|
|
|
<h2 id="tools">Tools</h2>
|
|
|
|
<p>
|
|
TODO
|
|
</p>
|
|
|
|
<h2 id="runtime">Runtime</h2>
|
|
|
|
<p>
|
|
TODO
|
|
</p>
|
|
|
|
|
|
<h2 id="library">Core library</h2>
|
|
|
|
<p>
|
|
TODO generally
|
|
</p>
|
|
|
|
<h3 id="tls_1_3">TLS 1.3</h3>
|
|
|
|
<p>
|
|
TODO; link to <a href="/doc/go1.12#tls_1_3">Go 1.12 notes</a>.
|
|
</p>
|
|
|
|
|
|
<h3 id="minor_library_changes">Minor changes to the library</h3>
|
|
|
|
<p>
|
|
As always, there are various minor changes and updates to the library,
|
|
made with the Go 1 <a href="/doc/go1compat">promise of compatibility</a>
|
|
in mind.
|
|
</p>
|
|
|
|
<p>
|
|
TODO
|
|
</p>
|
|
|
|
<!-- CL 161904: https://golang.org/cl/161904: cmd/compile: do not export float or complex constants with -asmhdr -->
|
|
<!-- CL 167780: https://golang.org/cl/167780: cmd/compile: rename init function from init.ializers back to init -->
|
|
<!-- CL 170448: https://golang.org/cl/170448: cmd/compile: enable -newescape by default -->
|
|
<!-- CL 174125: https://golang.org/cl/174125: cmd/dist: add support for openbsd/arm64 -->
|
|
<!-- CL 177797: https://golang.org/cl/177797: cmd/doc: always print package clause except for commands -->
|
|
<!-- CL 173345: https://golang.org/cl/173345: cmd/go: add -trimpath build flag -->
|
|
<!-- CL 173438: https://golang.org/cl/173438: cmd/go: change -tags to a comma-separated list -->
|
|
<!-- CL 175983: https://golang.org/cl/175983: cmd/go: set the "generate" build tag in go generate, per design doc -->
|
|
<!-- CL 167747: https://golang.org/cl/167747: 'go get' in module mode now supports the version suffix '@patch'.: cmd/go/internal/modget: support the suffix '@patch' in 'go get' -->
|
|
|
|
<dl id="all"><dt><a href="/pkg/all/">all</a></dt>
|
|
<dd>
|
|
<p><!-- CL 174457 -->
|
|
TODO: <a href="https://golang.org/cl/174457">https://golang.org/cl/174457</a>: add new GOOS=illumos, split out of GOOS=solaris
|
|
</p>
|
|
|
|
</dl><!-- all -->
|
|
|
|
<dl id="bytes"><dt><a href="/pkg/bytes/">bytes</a></dt>
|
|
<dd>
|
|
<p><!-- CL 161760 -->
|
|
TODO: <a href="https://golang.org/cl/161760">https://golang.org/cl/161760</a>: hoist error creation out of function
|
|
</p>
|
|
|
|
<p>
|
|
The new <a href="/pkg/bytes/#ToValidUTF8"><code>ToValidUTF8</code></a> function returns a
|
|
copy of a given byte slice with each run of invalid UTF-8 byte sequences replaced by a given slice.
|
|
</p>
|
|
|
|
</dl><!-- bytes -->
|
|
|
|
<dl id="context"><dt><a href="/pkg/context/">context</a></dt>
|
|
<dd>
|
|
<p><!-- CL 169080 -->
|
|
TODO: <a href="https://golang.org/cl/169080">https://golang.org/cl/169080</a>: don't depend on fmt
|
|
</p>
|
|
|
|
</dl><!-- context -->
|
|
|
|
<dl id="crypto/ed25519"><dt><a href="/pkg/crypto/ed25519/">crypto/ed25519</a></dt>
|
|
<dd>
|
|
<p><!-- CL 174945 -->
|
|
TODO: <a href="https://golang.org/cl/174945">https://golang.org/cl/174945</a>: promote from golang.org/x/crypto/ed25519
|
|
</p>
|
|
|
|
</dl><!-- crypto/ed25519 -->
|
|
|
|
<dl id="crypto/tls"><dt><a href="/pkg/crypto/tls/">crypto/tls</a></dt>
|
|
<dd>
|
|
<p><!-- CL 177698 -->
|
|
TODO: <a href="https://golang.org/cl/177698">https://golang.org/cl/177698</a>: add support for Ed25519 certificates in TLS 1.2 and 1.3
|
|
</p>
|
|
|
|
</dl><!-- crypto/tls -->
|
|
|
|
<dl id="database/sql"><dt><a href="/pkg/database/sql/">database/sql</a></dt>
|
|
<dd>
|
|
<p><!-- CL 170699 -->
|
|
TODO: <a href="https://golang.org/cl/170699">https://golang.org/cl/170699</a>: add NullTime
|
|
</p>
|
|
|
|
<p><!-- CL 174178 -->
|
|
TODO: <a href="https://golang.org/cl/174178">https://golang.org/cl/174178</a>: add NullInt32
|
|
</p>
|
|
|
|
</dl><!-- database/sql -->
|
|
|
|
<dl id="debug/dwarf"><dt><a href="/pkg/debug/dwarf/">debug/dwarf</a></dt>
|
|
<dd>
|
|
<p><!-- CL 158797 -->
|
|
TODO: <a href="https://golang.org/cl/158797">https://golang.org/cl/158797</a>: more graceful handling of unsupported types
|
|
</p>
|
|
|
|
</dl><!-- debug/dwarf -->
|
|
|
|
<dl id="html/template"><dt><a href="/pkg/html/template/">html/template</a></dt>
|
|
<dd>
|
|
<p><!-- CL 175218 -->
|
|
TODO: <a href="https://golang.org/cl/175218">https://golang.org/cl/175218</a>: add support for JavaScript modules
|
|
</p>
|
|
|
|
</dl><!-- html/template -->
|
|
|
|
<dl id="log"><dt><a href="/pkg/log/">log</a></dt>
|
|
<dd>
|
|
<p><!-- CL 168920 -->
|
|
TODO: <a href="https://golang.org/cl/168920">https://golang.org/cl/168920</a>: expose Writer() method of the standard logger
|
|
</p>
|
|
|
|
</dl><!-- log -->
|
|
|
|
<dl id="math/big"><dt><a href="/pkg/math/big/">math/big</a></dt>
|
|
<dd>
|
|
<p><!-- CL 160682 -->
|
|
TODO: <a href="https://golang.org/cl/160682">https://golang.org/cl/160682</a>: implement Rat.SetUint64
|
|
</p>
|
|
|
|
<p><!-- CL 168237 -->
|
|
TODO: <a href="https://golang.org/cl/168237">https://golang.org/cl/168237</a>: accept non-decimal floats with Rat.SetString
|
|
</p>
|
|
|
|
</dl><!-- math/big -->
|
|
|
|
<dl id="math/bits"><dt><a href="/pkg/math/bits/">math/bits</a></dt>
|
|
<dd>
|
|
<p><!-- CL 178177 -->
|
|
TODO: <a href="https://golang.org/cl/178177">https://golang.org/cl/178177</a>: document that Add, Sub, Mul, RotateLeft, ReverseBytes are constant time
|
|
</p>
|
|
|
|
</dl><!-- math/bits -->
|
|
|
|
<dl id="net"><dt><a href="/pkg/net/">net</a></dt>
|
|
<dd>
|
|
<p><!-- CL 156366 -->
|
|
TODO: <a href="https://golang.org/cl/156366">https://golang.org/cl/156366</a>: use DNS over TCP when use-vc is set in resolv.conf
|
|
</p>
|
|
|
|
<p><!-- CL 166297 -->
|
|
TODO: <a href="https://golang.org/cl/166297">https://golang.org/cl/166297</a>: use libSystem bindings for DNS resolution on macos if cgo is unavailable
|
|
</p>
|
|
|
|
<p><!-- CL 170678 -->
|
|
TODO: <a href="https://golang.org/cl/170678">https://golang.org/cl/170678</a>: add KeepAlive field to ListenConfig
|
|
</p>
|
|
|
|
</dl><!-- net -->
|
|
|
|
<dl id="net/http"><dt><a href="/pkg/net/http/">net/http</a></dt>
|
|
<dd>
|
|
<p><!-- CL 130256 -->
|
|
The new field <a href="/pkg/net/http/#Transport.ForceAttemptHTTP2"><code>Transport.ForceAttemptHTTP2</code></a>
|
|
controls whether HTTP/2 is enabled when a non-zero <code>Dial</code>, <code>DialTLS</code>, or <code>DialContext</code>
|
|
func or <code>TLSClientConfig</code> is provided.
|
|
</p>
|
|
|
|
<p><!-- CL 140357 -->
|
|
When reusing HTTP/2, the <a href="/pkg/net/http#Transport"><code>Transport</code></a> no longer performs unnecessary TLS handshakes.
|
|
</p>
|
|
|
|
<p><!-- CL 154383 -->
|
|
<a href="/pkg/net/http/#TimeoutHandler"><code>TimeoutHandler</code></a>'s
|
|
<a href="/pkg/net/http/#ResponseWriter"><code>ResponseWriter</code></a> now implements the
|
|
<a href="/pkg/net/http/#Pusher"><code>Pusher</code></a> and <a href="/pkg/net/http/#Flusher"><code>Flusher</code></a> interfaces.
|
|
</p>
|
|
|
|
<p><!-- CL 167681 -->
|
|
The new <a href="/pkg/net/http#Server"><code>Server</code></a> fields
|
|
<a href="/pkg/net/http/#Server.BaseContext"><code>BaseContext</code></a> and
|
|
<a href="/pkg/net/http/#Server.ConnContext"><code>ConnContext</code></a>
|
|
allow finer control over the <a href="/pkg/context#Context"><code>Context</code></a> values provided to requests and connections.
|
|
</p>
|
|
|
|
<p><!-- CL 173658 -->
|
|
The new <a href="/pkg/net/http/#Header"><code>Header</code></a> method
|
|
<a href="/pkg/net/http/#Header.Clone"><code>Clone</code></a> returns a copy of the receiver.
|
|
</p>
|
|
|
|
</dl><!-- net/http -->
|
|
|
|
<dl id="os"><dt><a href="/pkg/os/">os</a></dt>
|
|
<dd>
|
|
<p><!-- CL 166578 -->
|
|
If a <a href="/pkg/os/#File"><code>File</code></a> is opened using the O_APPEND flag, its
|
|
<a href="/pkg/os/#File.WriteAt"><code>WriteAt</code></a> method will always return an error.
|
|
</p>
|
|
|
|
</dl><!-- os -->
|
|
|
|
<dl id="os/exec"><dt><a href="/pkg/os/exec/">os/exec</a></dt>
|
|
<dd>
|
|
<p><!-- CL 174318 -->
|
|
On Windows, the environment for a <a href="/pkg/os/exec#Cmd"><code>Cmd</code></a> always inherits the
|
|
<code>%SYSTEMROOT%</code> value of the parent process unless the
|
|
<a href="/pkg/os/exec#Cmd.Env"><code>Cmd.Env</code></a> field includes an explicit value for it.
|
|
</p>
|
|
|
|
</dl><!-- os/exec -->
|
|
|
|
<dl id="reflect"><dt><a href="/pkg/reflect/">reflect</a></dt>
|
|
<dd>
|
|
<p><!-- CL 171337 -->
|
|
TODO: <a href="https://golang.org/cl/171337">https://golang.org/cl/171337</a>: add Value.IsZero
|
|
</p>
|
|
|
|
<p><!-- CL 174531 -->
|
|
TODO: <a href="https://golang.org/cl/174531">https://golang.org/cl/174531</a>: MakeFunc: allow assignment conversions on values returned from the wrapped function
|
|
</p>
|
|
|
|
</dl><!-- reflect -->
|
|
|
|
<dl id="runtime"><dt><a href="/pkg/runtime/">runtime</a></dt>
|
|
<dd>
|
|
<p><!-- CL 170318 -->
|
|
TODO: <a href="https://golang.org/cl/170318">https://golang.org/cl/170318</a>: randomize package initialization order in race mode
|
|
</p>
|
|
|
|
</dl><!-- runtime -->
|
|
|
|
<dl id="runtime, internal/poll, net"><dt><a href="/pkg/runtime, internal/poll, net/">runtime, internal/poll, net</a></dt>
|
|
<dd>
|
|
<p><!-- CL 166497 -->
|
|
TODO: <a href="https://golang.org/cl/166497">https://golang.org/cl/166497</a>: report event scanning error on read event
|
|
</p>
|
|
|
|
</dl><!-- runtime, internal/poll, net -->
|
|
|
|
<dl id="runtime/cgo"><dt><a href="/pkg/runtime/cgo/">runtime/cgo</a></dt>
|
|
<dd>
|
|
<p><!-- CL 170127 -->
|
|
TODO: <a href="https://golang.org/cl/170127">https://golang.org/cl/170127</a>: look for android_get_device_api_level in libc.so
|
|
</p>
|
|
|
|
</dl><!-- runtime/cgo -->
|
|
|
|
<dl id="strings"><dt><a href="/pkg/strings">strings</a></dt>
|
|
<dd>
|
|
<p><!-- CL 142003 -->
|
|
The new <a href="/pkg/strings/#ToValidUTF8"><code>ToValidUTF8</code></a> function returns a
|
|
copy of a given string with each run of invalid UTF-8 byte sequences replaced by a given string.
|
|
</p>
|
|
|
|
</dl><!-- strings -->
|
|
|
|
<dl id="sync"><dt><a href="/pkg/sync/">sync</a></dt>
|
|
<dd>
|
|
<p><!-- CL 166960 -->
|
|
Large <a href="/pkg/sync/#Pool"><code>sync.Pool</code></a> no longer increase stop-the-world pause times.
|
|
</p>
|
|
|
|
<p><!-- CL 166961 -->
|
|
<code>Pool</code> no longer needs to be completely repopulated after every GC. It now retains some objects across GCs,
|
|
as opposed to releasing all objects, reducing load spikes for heavy users of <code>Pool</code>.
|
|
</p>
|
|
|
|
</dl><!-- sync -->
|
|
|
|
<dl id="syscall"><dt><a href="/pkg/syscall/">syscall</a></dt>
|
|
<dd>
|
|
<p><!-- CL 168479 -->
|
|
TODO: <a href="https://golang.org/cl/168479">https://golang.org/cl/168479</a>: avoid _getdirentries64 on darwin
|
|
</p>
|
|
|
|
<p><!-- CL 174197 -->
|
|
TODO: <a href="https://golang.org/cl/174197">https://golang.org/cl/174197</a>: allow setting security attributes on processes
|
|
</p>
|
|
|
|
<p><!-- CL 174320 -->
|
|
TODO: <a href="https://golang.org/cl/174320">https://golang.org/cl/174320</a>: don't return EINVAL on zero Chmod mode on Windows
|
|
</p>
|
|
|
|
</dl><!-- syscall -->
|
|
|
|
<dl id="syscall/js"><dt><a href="/pkg/syscall/js/">syscall/js</a></dt>
|
|
<dd>
|
|
<p><!-- CL 177537 -->
|
|
TODO: <a href="https://golang.org/cl/177537">https://golang.org/cl/177537</a>: replace TypedArrayOf with CopyBytesToGo/CopyBytesToJS
|
|
</p>
|
|
|
|
</dl><!-- syscall/js -->
|
|
|
|
<dl id="testing"><dt><a href="/pkg/testing/">testing</a></dt>
|
|
<dd>
|
|
<p><!-- CL 112155 -->
|
|
TODO: <a href="https://golang.org/cl/112155">https://golang.org/cl/112155</a>: stop rounding b.N
|
|
</p>
|
|
|
|
<p><!-- CL 166717 -->
|
|
TODO: <a href="https://golang.org/cl/166717">https://golang.org/cl/166717</a>: add B.ReportMetric for custom benchmark metrics
|
|
</p>
|
|
|
|
<p><!-- CL 173722 -->
|
|
TODO: <a href="https://golang.org/cl/173722">https://golang.org/cl/173722</a>: delay flag registration; move to an Init function
|
|
</p>
|
|
|
|
</dl><!-- testing -->
|
|
|
|
<dl id="text/scanner"><dt><a href="/pkg/text/scanner/">text/scanner</a></dt>
|
|
<dd>
|
|
<p><!-- CL 163079 -->
|
|
TODO: <a href="https://golang.org/cl/163079">https://golang.org/cl/163079</a>: don't liberally consume (invalid) floats or underbars
|
|
</p>
|
|
|
|
</dl><!-- text/scanner -->
|
|
|
|
<dl id="text/template"><dt><a href="/pkg/text/template/">text/template</a></dt>
|
|
<dd>
|
|
<p><!-- CL 161762 -->
|
|
TODO: <a href="https://golang.org/cl/161762">https://golang.org/cl/161762</a>: add a slice function to the predefined global functions
|
|
</p>
|
|
|
|
</dl><!-- text/template -->
|
|
|
|
<dl id="time"><dt><a href="/pkg/time/">time</a></dt>
|
|
<dd>
|
|
<p><!-- CL 122876 -->
|
|
Day-of-year is now supported by <a href="/pkg/time/#time.Format"><code>Format</code></a>
|
|
and <a href="/pkg/time/#Parse"><code>Parse</code></a>.
|
|
</p>
|
|
|
|
<p><!-- CL 167387 -->
|
|
The new <a href="/pkg/time/#Duration"><code>Duration</code></a> methods
|
|
<a href="/pkg/time/#Duration.Microseconds"><code>Microseconds</code></a> and
|
|
<a href="/pkg/time/#Duration.Milliseconds"><code>Milliseconds</code></a> return
|
|
the duration as an integer count of their respectively named units.
|
|
</p>
|
|
|
|
</dl><!-- time -->
|
|
|