Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Runtime Performance ? #38970

Closed
wants to merge 59 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
331b866
[release-branch.go1.14] all: merge master into release-branch.go1.14
cagedmantis Feb 5, 2020
a068054
[release-branch.go1.14] go1.14rc1
cagedmantis Feb 5, 2020
3f0cded
[release-branch.go1.14] crypto/x509: fix godoc for MarshalPKCS8Privat…
katiehockman Feb 5, 2020
29ccdfc
[release-branch.go1.14] math/big: reintroduce pre-Go 1.14 mention in …
FiloSottile Feb 5, 2020
d898c7b
[release-branch.go1.14] all: merge master into release-branch.go1.14
cagedmantis Feb 6, 2020
5153475
[release-branch.go1.14] all: merge master into release-branch.go1.14
dmitshur Feb 13, 2020
f5293d7
[release-branch.go1.14] all: merge master into release-branch.go1.14
dmitshur Feb 21, 2020
b4dca64
[release-branch.go1.14] doc/go1.14: document the change to json.Numbe…
mvdan Feb 20, 2020
babeec2
[release-branch.go1.14] CONTRIBUTORS: second round of updates for Go …
dmitshur Feb 21, 2020
17acbdb
[release-branch.go1.14] hash/maphash: don't discard data on random se…
vovapi Feb 20, 2020
f63e55b
[release-branch.go1.14] crypto/cipher: require non-zero nonce size fo…
katiehockman Feb 7, 2020
8ced42e
[release-branch.go1.14] doc/go1.14: remove draft notice
dmitshur Feb 24, 2020
6a7f089
[release-branch.go1.14] doc/go1.14: document that freebsd/arm64 requi…
tklauser Feb 24, 2020
c49910a
[release-branch.go1.14] doc: add Go 1.14 to release history
cagedmantis Feb 25, 2020
20a838a
[release-branch.go1.14] go1.14
cagedmantis Feb 25, 2020
3dcb516
[release-branch.go1.14] doc/go1.14: add link to module migration guide
toothrot Feb 25, 2020
99f8de7
[release-branch.go1.14] doc/articles/race_detector: mention memory le…
kevinburke Feb 24, 2020
3293174
[release-branch.go1.14] runtime: don't panic on racy use of timers
ianlancetaylor Feb 26, 2020
c54e369
[release-branch.go1.14] runtime: guard VZEROUPPER on CPU feature
cherrymui Feb 26, 2020
e6036e7
[release-branch.go1.14] cmd/trace: update to use WebComponents V0 pol…
hyangah Feb 19, 2020
0e9f7ac
[release-branch.go1.14] doc/go1.14: document that unparsable URL in n…
stefanb Mar 6, 2020
76a6adc
[release-branch.go1.14] cmd/go: make go test -json report failures fo…
Mar 5, 2020
2e08d80
[release-branch.go1.14] runtime: don't save/restore FP registers in s…
cherrymui Mar 4, 2020
9c41c1d
[release-branch.go1.14] runtime/pprof: expand final stack frame to av…
prattmic Feb 28, 2020
6717d27
[release-branch.go1.14] runtime: special case interface hashing for p…
randall77 Feb 13, 2020
8e804f1
[release-branch.go1.14] runtime: make typehash match compiler generat…
randall77 Mar 6, 2020
fd85ff5
[release-branch.go1.14] runtime: fix problem with repeated panic/reco…
danscales Mar 5, 2020
adba22a
[release-branch.go1.14] cmd/go: include the go language version in ca…
Mar 12, 2020
c512509
[release-branch.go1.14] runtime: don't crash on mlock failure
ianlancetaylor Mar 12, 2020
229247d
[release-branch.go1.14] runtime: don't report a pointer alignment err…
randall77 Mar 17, 2020
e577ba9
[release-branch.go1.14] runtime: don't send preemption signal if ther…
cherrymui Mar 17, 2020
b620f6f
[release-branch.go1.14] doc/go1.14: mention Windows change for Open p…
ianlancetaylor Mar 18, 2020
564c76a
[release-branch.go1.14] go1.14.1
cagedmantis Mar 19, 2020
ab9d037
[release-branch.go1.14] testing: fix data race between parallel subtests
changkun Feb 28, 2020
f75a45c
[release-branch.go1.14] runtime: fix code so defer record is not adde…
danscales Mar 20, 2020
ca153f4
[release-branch.go1.14] runtime: don't call wakeNetPoller during time…
ianlancetaylor Mar 23, 2020
7487066
[release-branch.go1.14] runtime: ignore error returned by PowerRegist…
alexbrainman Feb 16, 2020
21f453b
[release-branch.go1.14] runtime: negate errno value for mips pipe/pipe2
ianlancetaylor Mar 22, 2020
b43b463
[release-branch.go1.14] runtime: prevent preemption while timer is in…
mknyszek Mar 25, 2020
612ef03
[release-branch.go1.14] cmd/go: do not append to the global cfg.OrigE…
Mar 26, 2020
9d7dad1
[release-branch.go1.14] runtime: ensure minTriggerRatio never exceeds…
mknyszek Mar 18, 2020
e6f15fa
[release-branch.go1.14] os/exec: use environment variables for user t…
KatelynHaworth Feb 25, 2020
cdd55a3
[release-branch.go1.14] cmd/cgo, misc/cgo: only cache anonymous struc…
tklauser Mar 29, 2020
8980ff4
[release-branch.go1.14] runtime: handle empty stack in expandFinalInl…
randall77 Mar 20, 2020
edea4a7
[release-branch.go1.14] runtime/pprof: increment fake overflow record PC
prattmic Mar 26, 2020
ea3a94c
[release-branch.go1.14] doc: update the minimum supported macOS versi…
cagedmantis Jan 8, 2020
c8d1e4c
[release-branch.go1.14] runtime: fix rounding in materializeGCProg
aclements Feb 26, 2020
2e44aa3
[release-branch.go1.14] cmd/go: update 'go help modules' for automati…
Mar 18, 2020
bec8e9c
[release-branch.go1.14] cmd/go: make module zip extraction more robust
Feb 28, 2020
96745b9
[release-branch.go1.14] go1.14.2
andybons Apr 8, 2020
768e5d1
[release-branch.go1.14] cmd/cgo: use consistent tag for a particular …
ianlancetaylor Apr 14, 2020
cd65852
[release-branch.go1.14] math/big: correct off-by-one access in divBasic
remyoudompheng Mar 5, 2020
c4b9269
[release-branch.go1.14] cmd/compile: fix deallocation of live value c…
mundaym Apr 14, 2020
1b41fcb
[release-branch.go1.14] runtime: ensure allocToCache updates searchAd…
mknyszek Apr 22, 2020
6936700
[release-branch.go1.14] runtime/race: update some .syso files
randall77 Apr 2, 2020
b338266
[release-branch.go1.14] runtime/race: update ppc64 .syso file
randall77 Apr 7, 2020
6143ce3
[release-branch.go1.14] runtime/race: rebuild netbsd .syso
randall77 Apr 11, 2020
b7eca1c
[release-branch.go1.14] runtime: make the scavenger's pacing logic mo…
mknyszek Apr 24, 2020
f4274e6
[release-branch.go1.14] cmd/compile: fix constant conversion involvin…
mdempsky Mar 27, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
22 changes: 22 additions & 0 deletions CONTRIBUTORS
Expand Up @@ -26,6 +26,7 @@

Aamir Khan <syst3m.w0rm@gmail.com>
Aaron Beitch <aaronb@arista.com>
Aaron Bieber <deftly@gmail.com>
Aaron Cannon <cannona@fireantproductions.com>
Aaron France <aaron.l.france@gmail.com>
Aaron Jacobs <jacobsa@google.com>
Expand All @@ -48,6 +49,7 @@ Adam Shannon <adamkshannon@gmail.com>
Adam Shelton <aashelt90@gmail.com>
Adam Sindelar <adamsh@google.com>
Adam Thomason <athomason@gmail.com>
Adam Williams <pwnfactory@gmail.com>
Adam Woodbeck <adam@woodbeck.net>
Adarsh Ravichandran <adarshravichandran91@gmail.com>
Aditya Harindar <aditya.harindar@gmail.com>
Expand Down Expand Up @@ -276,6 +278,7 @@ Awn Umar <awn@cryptolosophy.io>
Axel Wagner <axel.wagner.hh@googlemail.com>
Ayan George <ayan@ayan.net>
Ayanamist Yang <ayanamist@gmail.com>
Ayke van Laethem <aykevanlaethem@gmail.com>
Aymerick Jéhanne <aymerick@jehanne.org>
Azat Kaumov <kaumov.a.r@gmail.com>
Baiju Muthukadan <baiju.m.mail@gmail.com>
Expand Down Expand Up @@ -338,6 +341,7 @@ Brad Jones <rbjones@google.com>
Brad Morgan <brad@morgabra.com>
Brad Whitaker <bwhitaker@fastly.com>
Braden Bassingthwaite <bbassingthwaite@vendasta.com>
Bradford Lamson-Scribner <brad.lamson@gmail.com>
Bradley Falzon <brad@teambrad.net>
Brady Catherman <brady@gmail.com>
Brady Sullivan <brady@bsull.com>
Expand All @@ -351,6 +355,7 @@ Brett Cannon <bcannon@gmail.com>
Brett Merrill <brett.j.merrill94@gmail.com>
Brian Dellisanti <briandellisanti@gmail.com>
Brian Downs <brian.downs@gmail.com>
Brian Falk <falk@logicparty.org>
Brian G. Merrell <bgmerrell@gmail.com>
Brian Gitonga Marete <marete@toshnix.com> <bgmarete@gmail.com> <bgm@google.com>
Brian Kennedy <btkennedy@gmail.com>
Expand Down Expand Up @@ -404,6 +409,7 @@ Charles L. Dorian <cldorian@gmail.com>
Charles Lee <zombie.fml@gmail.com>
Charles Weill <weill@google.com>
Chauncy Cullitan <chauncyc@google.com>
Chen Zhihan <energiehund@gmail.com>
Cherry Zhang <cherryyz@google.com>
Chew Choon Keat <choonkeat@gmail.com>
Cholerae Hu <choleraehyq@gmail.com>
Expand Down Expand Up @@ -442,6 +448,7 @@ Christopher Cahoon <chris.cahoon@gmail.com>
Christopher Guiney <chris@guiney.net>
Christopher Henderson <chris@chenderson.org>
Christopher Koch <chrisko@google.com>
Christopher Loessl <cloessl+github@gmail.com>
Christopher Nelson <nadiasvertex@gmail.com>
Christopher Nielsen <m4dh4tt3r@gmail.com>
Christopher Redden <christopher.redden@gmail.com>
Expand Down Expand Up @@ -739,12 +746,14 @@ Frank Somers <fsomers@arista.com>
Frederic Guillot <frederic.guillot@gmail.com>
Frederick Kelly Mayle III <frederickmayle@gmail.com>
Frederik Ring <frederik.ring@gmail.com>
Frederik Zipp <fzipp@gmx.de>
Fredrik Enestad <fredrik.enestad@soundtrackyourbrand.com>
Fredrik Forsmo <fredrik.forsmo@gmail.com>
Fredrik Wallgren <fredrik.wallgren@gmail.com>
Frew Schmidt <github@frew.co>
Frithjof Schulze <schulze@math.uni-hannover.de> <sfrithjof@gmail.com>
Frits van Bommel <fvbommel@gmail.com>
Fujimoto Kyosuke <kyoro.f@gmail.com>
Fumitoshi Ukai <ukai@google.com>
G. Hussain Chinoy <ghchinoy@gmail.com>
Gaal Yahas <gaal@google.com>
Expand Down Expand Up @@ -803,6 +812,7 @@ GitHub User @frennkie (6499251) <mail@rhab.de>
GitHub User @hengwu0 (41297446) <41297446+hengwu0@users.noreply.github.com>
GitHub User @itchyny (375258) <itchyny@hatena.ne.jp>
GitHub User @jinmiaoluo (39730824) <jinmiaoluo@icloud.com>
GitHub User @jopbrown (6345470) <msshane2008@gmail.com>
GitHub User @kazyshr (30496953) <kazyshr0301@gmail.com>
GitHub User @kc1212 (1093806) <kc1212@users.noreply.github.com>
GitHub User @Kropekk (13366453) <kamilkropiewnicki@gmail.com>
Expand All @@ -828,6 +838,7 @@ GitHub User @uhei (2116845) <uhei@users.noreply.github.com>
GitHub User @uropek (39370426) <uropek@gmail.com>
GitHub User @utkarsh-extc (53217283) <utkarsh.extc@gmail.com>
GitHub User @witchard (4994659) <witchard@hotmail.co.uk>
GitHub User @yah01 (12216890) <kagaminehuan@gmail.com>
GitHub User @yuanhh (1298735) <yuan415030@gmail.com>
GitHub User @zikaeroh (48577114) <zikaeroh@gmail.com>
GitHub User @ZZMarquis (7624583) <zhonglingjian3821@163.com>
Expand Down Expand Up @@ -897,6 +908,7 @@ Heschi Kreinick <heschi@google.com>
Hidetatsu Yaginuma <ygnmhdtt@gmail.com>
Hilko Bengen <bengen@hilluzination.de>
Hiroaki Nakamura <hnakamur@gmail.com>
Hiromichi Ema <ema.hiro@gmail.com>
Hironao OTSUBO <motemen@gmail.com>
Hiroshi Ioka <hirochachacha@gmail.com>
Hitoshi Mitake <mitake.hitoshi@gmail.com>
Expand Down Expand Up @@ -973,6 +985,7 @@ Jakob Borg <jakob@nym.se>
Jakob Weisblat <jakobw@mit.edu>
Jakub Čajka <jcajka@redhat.com>
Jakub Ryszard Czarnowicz <j.czarnowicz@gmail.com>
Jamal Carvalho <jamal.a.carvalho@gmail.com>
James Aguilar <jaguilar@google.com>
James Bardin <j.bardin@gmail.com>
James Chacon <jchacon@google.com>
Expand Down Expand Up @@ -1020,6 +1033,7 @@ Jannis Andrija Schnitzer <jannis@schnitzer.im>
Jared Culp <jculp14@gmail.com>
Jaroslavas Počepko <jp@webmaster.ms>
Jason A. Donenfeld <Jason@zx2c4.com>
Jason Baker <jason-baker@users.noreply.github.com>
Jason Barnett <jason.w.barnett@gmail.com>
Jason Buberel <jbuberel@google.com>
Jason Chu <jasonchujc@gmail.com>
Expand Down Expand Up @@ -1213,6 +1227,7 @@ Kamil Chmielewski <kamil.chm@gmail.com>
Kamil Kisiel <kamil@kamilkisiel.net> <kamil.kisiel@gmail.com>
Kamil Rytarowski <krytarowski@users.noreply.github.com>
Kang Hu <hukangustc@gmail.com>
Kanta Ebihara <kantaebihara@gmail.com>
Karan Dhiman <karandhi@ca.ibm.com>
Karel Pazdera <pazderak@gmail.com>
Karoly Negyesi <chx1975@gmail.com>
Expand Down Expand Up @@ -1252,6 +1267,7 @@ Ketan Parmar <ketanbparmar@gmail.com>
Kevan Swanberg <kevswanberg@gmail.com>
Kevin Ballard <kevin@sb.org>
Kevin Burke <kev@inburke.com>
Kévin Dunglas <dunglas@gmail.com>
Kevin Gillette <extemporalgenome@gmail.com>
Kevin Kirsche <kev.kirsche@gmail.com>
Kevin Klues <klueska@gmail.com> <klueska@google.com>
Expand All @@ -1265,6 +1281,7 @@ Kim Yongbin <kybinz@gmail.com>
Kir Kolyshkin <kolyshkin@gmail.com>
Kirill Motkov <Motkov.Kirill@gmail.com>
Kirill Smelkov <kirr@nexedi.com>
Kirill Tatchihin <kirabsuir@gmail.com>
Kirk Han <kirk91.han@gmail.com>
Kirklin McDonald <kirklin.mcdonald@gmail.com>
Klaus Post <klauspost@gmail.com>
Expand Down Expand Up @@ -1378,6 +1395,7 @@ Marcelo E. Magallon <marcelo.magallon@gmail.com>
Marco Hennings <marco.hennings@freiheit.com>
Marcus Willock <crazcalm@gmail.com>
Marga Manterola <marga@google.com>
Mariano Cano <mariano@smallstep.com>
Marin Bašić <marin.basic02@gmail.com>
Mario Arranz <marioarranzr@gmail.com>
Marius A. Eriksen <marius@grailbio.com>
Expand Down Expand Up @@ -1949,6 +1967,7 @@ Sergey 'SnakE' Gromov <snake.scaly@gmail.com>
Sergey Arseev <sergey.arseev@intel.com>
Sergey Dobrodey <sergey.dobrodey@synesis.ru>
Sergey Frolov <sfrolov@google.com>
Sergey Ivanov <ser1325@gmail.com>
Sergey Lukjanov <me@slukjanov.name>
Sergey Mishin <sergeymishine@gmail.com>
Sergey Mudrik <sergey.mudrik@gmail.com>
Expand Down Expand Up @@ -2090,6 +2109,7 @@ Thomas Desrosiers <thomasdesr@gmail.com>
Thomas Habets <habets@google.com>
Thomas Kappler <tkappler@gmail.com>
Thomas Meson <zllak@hycik.org>
Thomas Symborski <thomas.symborski@gmail.com>
Thomas Wanielista <tomwans@gmail.com>
Thorben Krueger <thorben.krueger@gmail.com>
Thordur Bjornsson <thorduri@secnorth.net>
Expand Down Expand Up @@ -2130,6 +2150,7 @@ Tom Thorogood <me+google@tomthorogood.co.uk>
Tom Wilkie <tom@weave.works>
Tomas Dabasinskas <tomas@dabasinskas.net>
Tommy Schaefer <tommy.schaefer@teecom.com>
Tomohiro Kusumoto <zabio1192@gmail.com>
Tomoya Ishizaki <zaq1tomo@gmail.com>
Tonis Tiigi <tonistiigi@gmail.com>
Tony Reix <tony.reix@bull.net>
Expand Down Expand Up @@ -2240,6 +2261,7 @@ Xi Ruoyao <xry23333@gmail.com>
Xia Bin <snyh@snyh.org>
Xiangdong Ji <xiangdong.ji@arm.com>
Xing Xing <mikespook@gmail.com>
Xingqang Bai <bxq2011hust@qq.com>
Xu Fei <badgangkiller@gmail.com>
Xudong Zhang <felixmelon@gmail.com>
Xudong Zheng <7pkvm5aw@slicealias.com>
Expand Down
1 change: 1 addition & 0 deletions VERSION
@@ -0,0 +1 @@
go1.14.2
11 changes: 11 additions & 0 deletions doc/articles/race_detector.html
Expand Up @@ -395,3 +395,14 @@ <h2 id="Runtime_Overheads">Runtime Overhead</h2>
The cost of race detection varies by program, but for a typical program, memory
usage may increase by 5-10x and execution time by 2-20x.
</p>

<p>
The race detector currently allocates an extra 8 bytes per <code>defer</code>
and <code>recover</code> statement. Those extra allocations <a
href="https://golang.org/issue/26813">are not recovered until the goroutine
exits</a>. This means that if you have a long-running goroutine that is
periodically issuing <code>defer</code> and <code>recover</code> calls,
the program memory usage may grow without bound. These memory allocations
will not show up in the output of <code>runtime.ReadMemStats</code> or
<code>runtime/pprof</code>.
</p>
1 change: 1 addition & 0 deletions doc/contrib.html
Expand Up @@ -34,6 +34,7 @@ <h3 id="release"><a href="/doc/devel/release.html">Release History</a></h3>
<p>A <a href="/doc/devel/release.html">summary</a> of the changes between Go releases. Notes for the major releases:</p>

<ul>
<li><a href="/doc/go1.14">Go 1.14</a> <small>(February 2020)</small></li>
<li><a href="/doc/go1.13">Go 1.13</a> <small>(September 2019)</small></li>
<li><a href="/doc/go1.12">Go 1.12</a> <small>(February 2019)</small></li>
<li><a href="/doc/go1.11">Go 1.11</a> <small>(August 2018)</small></li>
Expand Down
62 changes: 47 additions & 15 deletions doc/go1.14.html
Expand Up @@ -14,24 +14,24 @@
main ul li { margin: 0.5em 0; }
</style>

<h2 id="introduction">DRAFT RELEASE NOTES — Introduction to Go 1.14</h2>
<h2 id="introduction">Introduction to Go 1.14</h2>

<p>
<strong>
Go 1.14 is not yet released. These are work-in-progress
release notes. Go 1.14 is expected to be released in February 2020.
</strong>
The latest Go release, version 1.14, arrives six months after <a href="go1.13">Go 1.13</a>.
Most of its changes are in the implementation of the toolchain, runtime, and libraries.
As always, the release maintains the Go 1 <a href="/doc/go1compat.html">promise of compatibility</a>.
We expect almost all Go programs to continue to compile and run as before.
</p>

<p>
Module support in the <code>go</code> command is now ready for production use,
and we encourage all users to migrate to Go modules for dependency management.
If you are unable to migrate due to a problem in the Go toolchain,
please ensure that the problem has an
<a href="https://golang.org/issue?q=is%3Aissue+is%3Aopen+label%3Amodules">open issue</a>
filed. (If the issue is not on the <code>Go1.15</code> milestone, please let us
know why it prevents you from migrating so that we can prioritize it
appropriately.)
Module support in the <code>go</code> command is now ready for production use,
and we encourage all users to <a href="https://blog.golang.org/migrating-to-go-modules">migrate to Go
modules for dependency management</a>. If you are unable to migrate due to a problem in the Go
toolchain, please ensure that the problem has an
<a href="https://golang.org/issue?q=is%3Aissue+is%3Aopen+label%3Amodules">open issue</a>
filed. (If the issue is not on the <code>Go1.15</code> milestone, please let us
know why it prevents you from migrating so that we can prioritize it
appropriately.)
</p>

<h2 id="language">Changes to the language</h2>
Expand Down Expand Up @@ -77,6 +77,18 @@ <h3 id="windows">Windows</h3>
(Data Execution Prevention)</a> enabled.
</p>

<p><!-- CL 202439 -->
On Windows, creating a file
via <a href="/pkg/os#CreateFile"><code>os.OpenFile</code></a> with
the <a href="/pkg/os/#O_CREATE"><code>os.O_CREATE</code></a> flag, or
via <a href="/pkg/syscall#Open"><code>syscall.Open</code></a> with
the <a href="/pkg/syscall#O_CREAT"><code>syscall.O_CREAT</code></a>
flag, will now create the file as read-only if the
bit <code>0o200</code> (owner write permission) is not set in the
permission argument. This makes the behavior on Windows more like
that on Unix systems.
</p>

<h3 id="wasm">WebAssembly</h3>

<p><!-- CL 203600 -->
Expand Down Expand Up @@ -108,7 +120,7 @@ <h3 id="riscv">RISC-V</h3>
<h3 id="freebsd">FreeBSD</h3>

<p><!-- CL 199919 -->
Go now supports the 64-bit ARM architecture on FreeBSD (the
Go now supports the 64-bit ARM architecture on FreeBSD 12.0 or later (the
<code>freebsd/arm64</code> port).
</p>

Expand Down Expand Up @@ -393,7 +405,7 @@ <h2 id="compiler">Compiler</h2>
<p><!-- CL 202117 -->
This release includes experimental support for compiler-inserted
coverage instrumentation for fuzzing.
See <a href="https://golang.org/issue/14565">the issue</a> for more
See <a href="https://golang.org/issue/14565">issue 14565</a> for more
details.
This API may change in future releases.
</p>
Expand Down Expand Up @@ -582,6 +594,13 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
was never a documented feature. For proper escaping, see <a
href="/pkg/encoding/json/#HTMLEscape"><code>HTMLEscape</code></a>.
</p>

<p><!-- CL 195045 -->
<a href="/pkg/encoding/json/#Number"><code>Number</code></a> no longer
accepts invalid numbers, to follow the documented behavior more closely.
If a program needs to accept invalid numbers like the empty string,
consider wrapping the type with <a href="/pkg/encoding/json/#Unmarshaler"><code>Unmarshaler</code></a>.
</p>
</dd>
</dl><!-- encoding/json -->

Expand Down Expand Up @@ -752,6 +771,19 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
</dd>
</dl><!-- net/textproto -->

<dl id="net/url"><dt><a href="/pkg/net/url/">net/url</a></dt>
<dd>
<p><!-- CL 185117 -->
When parsing of a URL fails
(for example by <a href="/pkg/net/url/#Parse"><code>Parse</code></a>
or <a href="/pkg/net/url/#ParseRequestURI"><code>ParseRequestURI</code></a>),
the resulting <a href="/pkg/net/url/#Error.Error"><code>Error</code></a> message
will now quote the unparsable URL.
This provides clearer structure and consistency with other parsing errors.
</p>
</dd>
</dl><!-- net/url -->

<dl id="os/signal"><dt><a href="/pkg/os/signal/">os/signal</a></dt>
<dd>
<p><!-- CL 187739 -->
Expand Down
4 changes: 2 additions & 2 deletions doc/install.html
Expand Up @@ -17,7 +17,7 @@ <h2 id="download">Download the Go distribution</h2>
<p>
<a href="/dl/" target="_blank">Official binary
distributions</a> are available for the FreeBSD (release 10-STABLE and above),
Linux, macOS (10.10 and above), and Windows operating systems and
Linux, macOS (10.11 and above), and Windows operating systems and
the 32-bit (<code>386</code>) and 64-bit (<code>amd64</code>) x86 processor
architectures.
</p>
Expand Down Expand Up @@ -49,7 +49,7 @@ <h2 id="requirements">System requirements</h2>
<tr><td colspan="3"><hr></td></tr>
<tr><td>FreeBSD 10.3 or later</td> <td>amd64, 386</td> <td>Debian GNU/kFreeBSD not supported</td></tr>
<tr valign='top'><td>Linux 2.6.23 or later with glibc</td> <td>amd64, 386, arm, arm64,<br>s390x, ppc64le</td> <td>CentOS/RHEL 5.x not supported.<br>Install from source for other libc.</td></tr>
<tr><td>macOS 10.10 or later</td> <td>amd64</td> <td>use the clang or gcc<sup>&#8224;</sup> that comes with Xcode<sup>&#8225;</sup> for <code>cgo</code> support</td></tr>
<tr><td>macOS 10.11 or later</td> <td>amd64</td> <td>use the clang or gcc<sup>&#8224;</sup> that comes with Xcode<sup>&#8225;</sup> for <code>cgo</code> support</td></tr>
<tr valign='top'><td>Windows 7, Server 2008R2 or later</td> <td>amd64, 386</td> <td>use MinGW (<code>386</code>) or MinGW-W64 (<code>amd64</code>) gcc<sup>&#8224;</sup>.<br>No need for cygwin or msys.</td></tr>
</table>

Expand Down
10 changes: 10 additions & 0 deletions misc/cgo/test/testx.go
Expand Up @@ -124,6 +124,11 @@ typedef struct {
} Issue31891B;

void callIssue31891(void);

typedef struct {
int i;
} Issue38408, *PIssue38408;

*/
import "C"

Expand Down Expand Up @@ -552,3 +557,8 @@ func useIssue31891B(c *C.Issue31891B) {}
func test31891(t *testing.T) {
C.callIssue31891()
}

// issue 38408
// A typedef pointer can be used as the element type.
// No runtime test; just make sure it compiles.
var _ C.PIssue38408 = &C.Issue38408{i: 1}
33 changes: 33 additions & 0 deletions misc/cgo/testgodefs/testdata/issue37479.go
@@ -0,0 +1,33 @@
// Copyright 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//
// +build ignore

package main

/*
typedef struct A A;

typedef struct {
struct A *next;
struct A **prev;
} N;

struct A
{
N n;
};

typedef struct B
{
A* a;
} B;
*/
import "C"

type N C.N

type A C.A

type B C.B