mirror of
https://github.com/golang/go
synced 2024-11-18 07:34:53 -07:00
ab31e2749f
Importing the time/tzdata package will embed a copy of the IANA timezone database into the program. This will let the program work correctly when the timezone database is not available on the system. It will increase the size of the binary by about 800K. You can also build a program with -tags timetzdata to embed the timezone database in the program being built. This is a roll forward of CL 224588 which was rolled back due to test failures. In this version, the test is in the time package, not the time/tzdata package. That lets us compare the zip file to the time/tzdata package, ensuring that we are looking at similar versions of tzdata information. Fixes #21881 Fixes #38013 Fixes #38017 Change-Id: I916d9d8473abe201b897cdc2bbd9168df4ad671c Reviewed-on: https://go-review.googlesource.com/c/go/+/228101 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
208 lines
6.6 KiB
HTML
208 lines
6.6 KiB
HTML
<!--{
|
|
"Title": "Go 1.15 Release Notes",
|
|
"Path": "/doc/go1.15"
|
|
}-->
|
|
|
|
<!--
|
|
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>
|
|
main ul li { margin: 0.5em 0; }
|
|
</style>
|
|
|
|
<h2 id="introduction">DRAFT RELEASE NOTES — Introduction to Go 1.15</h2>
|
|
|
|
<p>
|
|
<strong>
|
|
Go 1.15 is not yet released. These are work-in-progress
|
|
release notes. Go 1.15 is expected to be released in August 2020.
|
|
</strong>
|
|
</p>
|
|
|
|
<h2 id="language">Changes to the language</h2>
|
|
|
|
<p>
|
|
TODO
|
|
</p>
|
|
|
|
<h2 id="ports">Ports</h2>
|
|
|
|
<p>
|
|
TODO
|
|
</p>
|
|
|
|
<h2 id="tools">Tools</h2>
|
|
|
|
<p>
|
|
TODO
|
|
</p>
|
|
|
|
<h3 id="go-command">Go command</h3>
|
|
|
|
<p><!-- golang.org/issue/37367 -->
|
|
The <code>GOPROXY</code> environment variable now supports skipping proxies
|
|
that return errors. Proxy URLs may now be separated with either commas
|
|
(<code>,</code>) or pipe characters (<code>|</code>). If a proxy URL is
|
|
followed by a comma, the <code>go</code> command will only try the next proxy
|
|
in the list after a 404 or 410 HTTP response. If a proxy URL is followed by a
|
|
pipe character, the <code>go</code> command will try the next proxy in the
|
|
list after any error. Note that the default value of <code>GOPROXY</code>
|
|
remains <code>https://proxy.golang.org,direct</code>, which does not fall
|
|
back to <code>direct</code> in case of errors.
|
|
</p>
|
|
|
|
<p>
|
|
TODO
|
|
</p>
|
|
|
|
<h4 id="go-test"><code>go</code> <code>test</code></h4>
|
|
|
|
<p><!-- https://golang.org/issue/36134 -->
|
|
Changing the <code>-timeout</code> flag now invalidates cached test results. A
|
|
cached result for a test run with a long timeout will no longer count as
|
|
passing when <code>go</code> <code>test</code> is re-invoked with a short one.
|
|
</p>
|
|
|
|
<h4 id="go-flag-parsing">Flag parsing</h4>
|
|
|
|
<p><!-- https://golang.org/cl/211358 -->
|
|
Various flag parsing issues in <code>go</code> <code>test</code> and
|
|
<code>go</code> <code>vet</code> have been fixed. Notably, flags specified
|
|
in <code>GOFLAGS</code> are handled more consistently, and
|
|
the <code>-outputdir</code> flag now interprets relative paths relative to the
|
|
working directory of the <code>go</code> command (rather than the working
|
|
directory of each individual test).
|
|
</p>
|
|
|
|
<h2 id="runtime">Runtime</h2>
|
|
|
|
<p>
|
|
TODO
|
|
</p>
|
|
|
|
|
|
<h2 id="library">Core library</h2>
|
|
|
|
<h3 id="time/tzdata">New embedded tzdata package</h3>
|
|
|
|
<p> <!-- CL 224588 -->
|
|
Go 1.15 includes a new package,
|
|
<a href="/pkg/time/tzdata/"><code>time/tzdata</code></a>,
|
|
that permits embedding the timezone database into a program.
|
|
Importing this package (as <code>import _ "time/tzdata"</code>)
|
|
permits the program to find timezone information even if the
|
|
timezone database is not available on the local system.
|
|
You can also embed the timezone database by building
|
|
with <code>-tags timetzdata</code>.
|
|
Either approach increases the size of the program by about 800 KB.
|
|
</p>
|
|
|
|
<p>
|
|
TODO
|
|
</p>
|
|
|
|
<dl id="testing"><dt><a href="/pkg/testing/">testing</a></dt>
|
|
<dd>
|
|
<p><!-- golang.org/issue/28135 -->
|
|
The <code>testing.T</code> type now has a <code>Deadline</code> method
|
|
that reports the time at which the test binary will have exceeded its
|
|
timeout.
|
|
</p>
|
|
<p><!-- golang.org/issue/34129 -->
|
|
A <code>TestMain</code> function is no longer required to call
|
|
<code>os.Exit</code>. If a <code>TestMain</code> function returns,
|
|
the test binary will call <code>os.Exit</code> with the value returned
|
|
by <code>m.Run</code>.
|
|
</p>
|
|
</dd>
|
|
</dl><!-- testing -->
|
|
|
|
<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>
|
|
|
|
<dl id="flag"><dt><a href="/pkg/flag/">flag</a></dt>
|
|
<dd>
|
|
<p><!-- CL 221427 -->
|
|
When the flag package sees <code>-h</code> or <code>-help</code>, and
|
|
those flags are not defined, the flag package prints a usage message.
|
|
If the <a href=/pkg/flag/#FlagSet><code>FlagSet</code></a> was created with
|
|
<a href=/pkg/flag/#ExitOnError><code>ExitOnError</code></a>,
|
|
<a href=/pkg/flag/#FlagSet.Parse><code>FlagSet.Parse</code></a> would then
|
|
exit with a status of 2. In this release, the exit status for <code>-h</code>
|
|
or <code>-help</code> has been changed to 0. In particular, this applies to
|
|
the default handling of command line flags.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<dl id="net/url"><dt><a href="/pkg/net/url/">net/url</a></dt>
|
|
<dd>
|
|
<p><!-- CL 207082 -->
|
|
The new <a href="/pkg/net/url/#URL"><code>URL</code></a>
|
|
method <a href="/pkg/net/url/#URL.Redacted"><code>Redacted</code></a>
|
|
returns the URL in string form with any password replaced with <code>xxxxx</code>.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<dl id="pkg-runtime"><dt><a href="/pkg/runtime/">runtime</a></dt>
|
|
<dd>
|
|
<p><!-- CL 221779 -->
|
|
If <code>panic</code> is invoked with a value whose type is derived from any
|
|
of: <code>bool</code>, <code>complex64</code>, <code>complex128</code>, <code>float32</code>, <code>float64</code>,
|
|
<code>int</code>, <code>int8</code>, <code>int16</code>, <code>int32</code>, <code>int64</code>, <code>string</code>,
|
|
<code>uint</code>, <code>uint8</code>, <code>uint16</code>, <code>uint32</code>, <code>uint64</code>, <code>uintptr</code>,
|
|
then the value will be printed, instead of just its address.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<dl id="sync"><dt><a href="/pkg/sync/">sync</a></dt>
|
|
<dd>
|
|
<p><!-- CL 205899, golang.org/issue/33762 -->
|
|
The new method
|
|
<a href="/pkg/sync/#Map.LoadAndDelete"><code>Map.LoadAndDelete</code></a>
|
|
atomically deletes a key and returns the previous value if present.
|
|
</p>
|
|
<p><!-- CL 205899 -->
|
|
The method
|
|
<a href="/pkg/sync/#Map.Delete"><code>Map.Delete</code></a>
|
|
is more efficient.
|
|
</p>
|
|
</dl><!-- sync -->
|
|
|
|
<dl id="testing"><dt><a href="/pkg/testing/">testing</a></dt>
|
|
<dd>
|
|
<p><!-- CL 226877, golang.org/issue/35998 -->
|
|
The new methods
|
|
<a href="/pkg/testing/#T.TempDir"><code>T.TempDir</code></a> and
|
|
<a href="/pkg/testing/#B.TempDir"><code>B.TempDir</code></a> and
|
|
return temporary directories that are automatically cleaned up
|
|
at the end of the test.
|
|
</p>
|
|
</dd>
|
|
</dl><!-- testing -->
|
|
|
|
<dl id="time"><dt><a href="/pkg/time/">time</a></dt>
|
|
<dd>
|
|
<p><!-- CL 220424, CL 217362, golang.org/issue/33184 -->
|
|
The new method
|
|
<a href="/pkg/time/#Ticker.Reset"><code>Ticker.Reset</code></a>
|
|
supports changing the duration of a ticker.
|
|
</p>
|
|
</dd>
|
|
</dl><!-- time -->
|