mirror of
https://github.com/golang/go
synced 2024-11-26 20:01:19 -07:00
972df38445
Make panics more useful by printing values, if their underlying kind is printable, instead of just their memory address. Thus now given any custom type derived from any of: float*, int*, string, uint* if we have panic with such a result, its value will be printed. Thus given any of: type MyComplex128 complex128 type MyFloat64 float64 type MyString string type MyUintptr uintptr panic(MyComplex128(32.1 + 10i)) panic(MyFloat64(-93.7)) panic(MyString("This one")) panic(MyUintptr(93)) They will now print in the panic: panic: main.MyComplex64(+1.100000e-001+3.000000e+000i) panic: main.MyFloat64(-9.370000e+001) panic: main.MyString("This one") panic: main.MyUintptr(93) instead of: panic: (main.MyComplex128) (0xe0100,0x138cc0) panic: (main.MyFloat64) (0xe0100,0x138068) panic: (main.MyString) (0x48aa00,0x4c0840) panic: (main.MyUintptr) (0xe0100,0x137e58) and anything else will be printed as in the past with: panic: (main.MyStruct) (0xe4ee0,0x40a0e0) Also while here, updated the Go1.15 release notes. Fixes #37531 Change-Id: Ia486424344a386014f2869ab3483e42a9ef48ac4 Reviewed-on: https://go-review.googlesource.com/c/go/+/221779 Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
130 lines
3.3 KiB
HTML
130 lines
3.3 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>
|
|
TODO
|
|
</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>
|
|
</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 -->
|