| <!--{ |
| "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> |
| |
| <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="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><!-- 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="time"><dt><a href="/pkg/time/">time</a></dt> |
| <dd> |
| <p><!-- 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 --> |