aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitri Shuralyov <dmitshur@golang.org>2022-08-01 14:19:15 -0400
committerDmitri Shuralyov <dmitshur@golang.org>2022-08-01 14:19:15 -0400
commit46ab46c7c565425089230836684bd8e2644d48a4 (patch)
treea745285f0ec83af8a584ff0c6c558bfda84664eb
parentad672e7ce101cc52e38bae3d7484e4660a20d575 (diff)
parente99f53fed98b0378c147588789b8c56b0305469b (diff)
downloadgo-46ab46c7c565425089230836684bd8e2644d48a4.tar.gz
go-46ab46c7c565425089230836684bd8e2644d48a4.zip
[release-branch.go1.19] all: merge master (e99f53f) into release-branch.go1.19
Merge List: + 2022-08-01 e99f53fed9 doc: move Go 1.19 release notes to x/website + 2022-08-01 8b13a073a1 doc: mention removal of cmd/compile's -importmap and -installsuffix flags + 2022-08-01 e95fd4c238 doc/go1.19: fix typo: EM_LONGARCH -> EM_LOONGARCH + 2022-08-01 dee3efd9f8 doc/go1.19: fix a few links that were missing trailing slashes + 2022-07-30 f32519e5fb runtime: fix typos + 2022-07-29 9a2001a8cc cmd/dist: always pass -short=true with -quick + 2022-07-28 5c8ec89cb5 doc/go1.19: minor adjustments and links + 2022-07-28 417be37048 doc/go1.19: improve the loong64 release notes + 2022-07-28 027855e8d8 os/exec: add GODEBUG setting to opt out of ErrDot changes + 2022-07-27 462b78fe70 misc/cgo/test: use fewer threads in TestSetgidStress in long mode + 2022-07-27 055113ef36 math/big: check buffer lengths in GobDecode + 2022-07-27 4248146154 net: document UDPConn.ReadFromUDPAddrPort's AddrPort result more + 2022-07-26 faf4e97200 net: fix WriteMsgUDPAddrPort addr handling + 2022-07-26 caa225dd29 doc/go1.19: note that updated race syso files require GNU ld 2.26 + 2022-07-26 ceefd3a37b bytes: document that Reader.Reset affects the result of Size + 2022-07-26 3e97294663 runtime/cgo: use frame address to set g0 stack bound + 2022-07-25 24dc27a3c0 cmd/compile: fix blank label code + 2022-07-25 9fcc8b2c1e runtime: fix runtime.Breakpoint() on windows/arm64 + 2022-07-25 795a88d0c3 cmd/go: add space after comma in 'go help test' + 2022-07-25 9eb3992ddd doc/go1.19: minor fixes + 2022-07-25 dcea1ee6e3 time: clarify documentation for allowed formats and add tests to prove them + 2022-07-25 37c8112b82 internal/fuzz: fix typo in function comments + 2022-07-25 850d547d2d doc/go1.19: expand crypto release notes + 2022-07-24 64f2829c9c runtime: fix typo in function comments + 2022-07-24 2ff563a00e cmd/compile/internal/noder: correct spelling errors for instantiation + 2022-07-22 c5da4fb7ac cmd/compile: make jump table symbol local + 2022-07-22 774fa58d1d A+C: delete AUTHORS and CONTRIBUTORS + 2022-07-21 2d655fb15a unsafe: document when Sizeof/Offsetof/Alignof are not constant + 2022-07-21 076c3d7f07 net/http: remove accidental heading in Head documentation + 2022-07-21 c4a6d3048b cmd/dist: enable race detector test on S390X + 2022-07-20 244c8b0500 cmd/cgo: allow cgo to pass strings or []bytes bigger than 1<<30 + 2022-07-20 df38614bd7 test: use go tool from tree, not path + 2022-07-20 bb1749ba3b cmd/compile: improve GOAMD64=v1 violation test + 2022-07-19 176b63e711 crypto/internal/nistec,debug/gosym: fix typos + 2022-07-19 8e1e64c16a cmd/compile: fix mknode script + 2022-07-19 28be440d34 A+C: add Weizhi Yan + 2022-07-19 85a482fc24 runtime: revert to using the precomputed trigger for pacer calculations + 2022-07-19 ae7340ab68 CONTRIBUTORS: update for the Go 1.19 release + 2022-07-18 de8101d21b runtime: fix typos + 2022-07-18 967a3d985d cmd/compile: revert "remove -installsuffix flag" + 2022-07-18 c0c1bbde17 http: improve Get documentation + 2022-07-15 2aa473cc54 go/types, types2: correct alignment of atomic.Int64 + 2022-07-15 4651ebf961 encoding/gob: s/TestIngoreDepthLimit/TestIgnoreDepthLimit/ + 2022-07-14 dc00aed6de go/parser: skip TestParseDepthLimit for short tests + 2022-07-14 783ff7dfc4 encoding/xml: skip TestCVE202230633 for short tests + 2022-07-14 aa80228526 cmd/go/internal/modfetch: avoid duplicating path components in Git fetch errors + 2022-07-14 b9d5a25442 cmd/go: save zip sums for downloaded modules in 'go mod download' in a workspace + 2022-07-14 a906d3dd09 cmd/go: avoid re-enqueuing workspace dependencies with errors + 2022-07-14 266c70c263 doc/go1.19: add a release note for 'go list -json=SomeField' + 2022-07-13 558785a0a9 cmd/compile: remove -installsuffix flag + 2022-07-13 1355ea3045 cmd/compile: remove -importmap flag + 2022-07-13 f71f3d1b86 misc/cgo/testshared: run tests only in GOPATH mode + 2022-07-13 feada53661 misc/cgo/testcshared: don't rely on an erroneous install target in tests + 2022-07-13 c006b7ac27 runtime: clear timerModifiedEarliest when last timer is deleted + 2022-07-13 923740a8cc cmd/compile: fix type assert in dict pass + 2022-07-12 bf2ef26be3 cmd/go: in script tests, avoid checking non-main packages for staleness + 2022-07-12 5f5cae7200 cmd/go: avoid indexing GOROOT packages when the compiler is 'gccgo' + 2022-07-12 c2edb2c841 cmd/go: port TestIssue16471 to a script test and add verbose logging + 2022-07-12 9c2526e637 cmd/go/internal/modfetch/codehost: add missing newline in '# lock' log message + 2022-07-12 85486bcccb image/jpeg: increase TestLargeImageWithShortData timeout by an order of magnitude + 2022-07-12 27794c4d4a cmd/go/internal/modload: ignore disallowed errors when checking for updates Change-Id: Ic05832c8c7c33ab016386bf7e85d6bad62a8fb98
-rw-r--r--AUTHORS1504
-rw-r--r--CONTRIBUTORS2865
-rw-r--r--doc/go1.19.html919
-rw-r--r--misc/cgo/test/setgid2_linux.go5
-rw-r--r--misc/cgo/testcshared/cshared_test.go35
-rw-r--r--misc/cgo/testplugin/plugin_test.go6
-rw-r--r--misc/cgo/testplugin/testdata/issue53989/main.go32
-rw-r--r--misc/cgo/testplugin/testdata/issue53989/p/p.go52
-rw-r--r--misc/cgo/testplugin/testdata/issue53989/plugin.go13
-rw-r--r--misc/cgo/testshared/shared_test.go9
-rw-r--r--src/bytes/reader.go3
-rw-r--r--src/cmd/cgo/out.go23
-rw-r--r--src/cmd/compile/doc.go3
-rw-r--r--src/cmd/compile/internal/amd64/versions_test.go31
-rw-r--r--src/cmd/compile/internal/base/flag.go19
-rw-r--r--src/cmd/compile/internal/ir/mini.go1
-rw-r--r--src/cmd/compile/internal/ir/mknode.go9
-rw-r--r--src/cmd/compile/internal/noder/stencil.go4
-rw-r--r--src/cmd/compile/internal/ssa/rewrite.go1
-rw-r--r--src/cmd/compile/internal/ssagen/ssa.go4
-rw-r--r--src/cmd/compile/internal/types/size.go2
-rw-r--r--src/cmd/compile/internal/types2/sizes.go23
-rw-r--r--src/cmd/compile/internal/types2/sizes_test.go41
-rw-r--r--src/cmd/dist/test.go4
-rw-r--r--src/cmd/go/alldocs.go2
-rw-r--r--src/cmd/go/go_test.go15
-rw-r--r--src/cmd/go/internal/modcmd/download.go26
-rw-r--r--src/cmd/go/internal/modfetch/codehost/codehost.go2
-rw-r--r--src/cmd/go/internal/modfetch/coderepo.go8
-rw-r--r--src/cmd/go/internal/modindex/read.go3
-rw-r--r--src/cmd/go/internal/modload/build.go7
-rw-r--r--src/cmd/go/internal/modload/buildlist.go5
-rw-r--r--src/cmd/go/internal/test/test.go2
-rw-r--r--src/cmd/go/testdata/mod/example.com_retract_noupgrade_v1.0.0.txt9
-rw-r--r--src/cmd/go/testdata/script/build_overlay.txt20
-rw-r--r--src/cmd/go/testdata/script/get_issue16471.txt22
-rw-r--r--src/cmd/go/testdata/script/mod_download_issue51114.txt21
-rw-r--r--src/cmd/go/testdata/script/mod_download_private_vcs.txt10
-rw-r--r--src/cmd/go/testdata/script/mod_retract_noupgrade.txt11
-rw-r--r--src/cmd/go/testdata/script/test_fuzz_cache.txt11
-rw-r--r--src/cmd/go/testdata/script/work_goproxy_off.txt59
-rw-r--r--src/cmd/go/testdata/script/work_why_download_graph.txt10
-rw-r--r--src/crypto/internal/nistec/p224_sqrt.go2
-rw-r--r--src/debug/gosym/symtab.go2
-rw-r--r--src/encoding/gob/gobencdec_test.go2
-rw-r--r--src/encoding/xml/read_test.go5
-rw-r--r--src/go/build/build.go3
-rw-r--r--src/go/build/deps_test.go8
-rw-r--r--src/go/parser/parser_test.go8
-rw-r--r--src/go/types/sizes.go23
-rw-r--r--src/go/types/sizes_test.go41
-rw-r--r--src/image/jpeg/reader_test.go23
-rw-r--r--src/internal/fuzz/mem.go2
-rw-r--r--src/math/big/floatmarsh.go7
-rw-r--r--src/math/big/floatmarsh_test.go12
-rw-r--r--src/math/big/ratmarsh.go6
-rw-r--r--src/math/big/ratmarsh_test.go12
-rw-r--r--src/net/http/client.go2
-rw-r--r--src/net/http/header.go3
-rw-r--r--src/net/ipsock_posix.go6
-rw-r--r--src/net/udpsock.go4
-rw-r--r--src/net/udpsock_test.go43
-rw-r--r--src/os/exec/dot_test.go86
-rw-r--r--src/os/exec/exec.go5
-rw-r--r--src/os/exec/lp_plan9.go3
-rw-r--r--src/os/exec/lp_unix.go3
-rw-r--r--src/os/exec/lp_windows.go6
-rw-r--r--src/runtime/asm_arm64.s24
-rw-r--r--src/runtime/cgo/gcc_linux_amd64.c4
-rw-r--r--src/runtime/chan.go2
-rw-r--r--src/runtime/mgcpacer.go22
-rw-r--r--src/runtime/mprof.go2
-rw-r--r--src/runtime/runtime_test.go7
-rw-r--r--src/runtime/string.go2
-rw-r--r--src/runtime/testdata/testprog/vdso.go2
-rw-r--r--src/runtime/time.go12
-rw-r--r--src/time/format.go8
-rw-r--r--src/time/format_test.go7
-rw-r--r--src/unsafe/unsafe.go13
-rw-r--r--test/fixedbugs/issue52278.go2
-rw-r--r--test/run.go18
-rw-r--r--test/typeparam/issue53762.go18
82 files changed, 818 insertions, 5493 deletions
diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index bb07bd52e8..0000000000
--- a/AUTHORS
+++ /dev/null
@@ -1,1504 +0,0 @@
-# This is the official list of Go authors for copyright purposes.
-# This file is distinct from the CONTRIBUTORS files.
-# See the latter for an explanation.
-
-# Since Go 1.11, this file is not actively maintained.
-# To be included, send a change adding the individual or
-# company who owns a contribution's copyright.
-
-# Names should be added to this file as one of
-# Organization's name
-# Individual's name <submission email address>
-# Individual's name <submission email address> <email2> <emailN>
-# See CONTRIBUTORS for the meaning of multiple email addresses.
-
-# Please keep the list sorted.
-
-10x Genomics, Inc.
-A Medium Corporation
-Aamir Khan <syst3m.w0rm@gmail.com>
-Aaron France <aaron.l.france@gmail.com>
-Aaron Stein <aaronstein12@gmail.com>
-Aaron Torres <tcboox@gmail.com>
-Aarti Parikh <aarti.parikh@gmail.com>
-Abe Haskins <abeisgreat@abeisgreat.com>
-Abhinav Gupta <abhinav.g90@gmail.com>
-Adam Eijdenberg <adam@continusec.com>
-Adam Harvey <aharvey@php.net>
-Adam Kisala <adam.kisala@gmail.com>
-Adam Medzinski <adam.medzinski@gmail.com>
-Adam Shannon <adamkshannon@gmail.com>
-Adam Thomason <athomason@gmail.com>
-Adam Woodbeck <adam@woodbeck.net>
-Aditya Mukerjee <dev@chimeracoder.net>
-Adrian Hesketh <adrianhesketh@hushmail.com>
-Adrian Nos <nos.adrian@gmail.com>
-Adrian O'Grady <elpollouk@gmail.com>
-Adrien Bustany <adrien-xx-google@bustany.org>
-Adrien Petel <peteladrien@gmail.com>
-Aécio Júnior <aeciodantasjunior@gmail.com>
-Aeneas Rekkas (arekkas) <aeneas@ory.am>
-Afanasev Stanislav <phpprogger@gmail.com>
-Agis Anastasopoulos <agis.anast@gmail.com>
-Agniva De Sarker <agnivade@yahoo.co.in>
-Ahmed W. Mones <oneofone@gmail.com>
-Ahmet Soormally <ahmet@mangomm.co.uk>
-Ahmy Yulrizka <yulrizka@gmail.com>
-Aiden Scandella <ai@uber.com>
-Ainar Garipov <gugl.zadolbal@gmail.com>
-Aishraj Dahal <aishraj@users.noreply.github.com>
-Akhil Indurti <aindurti@gmail.com>
-Akihiro Suda <suda.kyoto@gmail.com>
-Akshat Kumar <seed@mail.nanosouffle.net>
-Alan Shreve <alan@inconshreveable.com>
-Albert Nigmatzianov <albertnigma@gmail.com>
-Albert Strasheim <fullung@gmail.com>
-Albert Yu <yukinying@gmail.com>
-Alberto Bertogli <albertito@blitiri.com.ar>
-Alberto Donizetti <alb.donizetti@gmail.com>
-Alberto García Hierro <alberto@garciahierro.com> <alberto.garcia.hierro@gmail.com>
-Aleksandar Dezelin <dezelin@gmail.com>
-Aleksandr Lukinykh <a.lukinykh@xsolla.com>
-Alekseev Artem <a.artem060@gmail.com>
-Alessandro Arzilli <alessandro.arzilli@gmail.com>
-Alessandro Baffa <alessandro.baffa@gmail.com>
-Alex A Skinner <alex@lx.lc>
-Alex Brainman <alex.brainman@gmail.com>
-Alex Browne <stephenalexbrowne@gmail.com>
-Alex Carol <alex.carol.c@gmail.com>
-Alex Jin <toalexjin@gmail.com>
-Alex Myasoedov <msoedov@gmail.com>
-Alex Plugaru <alex@plugaru.org> <alexandru.plugaru@gmail.com>
-Alex Schroeder <alex@gnu.org>
-Alex Sergeyev <abc@alexsergeyev.com>
-Alexander Demakin <alexander.demakin@gmail.com>
-Alexander Döring <email@alexd.ch>
-Alexander F Rødseth <alexander.rodseth@appeartv.com>
-Alexander Guz <kalimatas@gmail.com>
-Alexander Kauer <alexander@affine.space>
-Alexander Kucherenko <alxkchr@gmail.com>
-Alexander Larsson <alexander.larsson@gmail.com>
-Alexander Menzhinsky <amenzhinsky@gmail.com>
-Alexander Morozov <lk4d4math@gmail.com>
-Alexander Neumann <alexander@bumpern.de>
-Alexander Orlov <alexander.orlov@loxal.net>
-Alexander Pantyukhin <apantykhin@gmail.com>
-Alexander Reece <awreece@gmail.com>
-Alexander Surma <surma@surmair.de>
-Alexander Zhavnerchik <alex.vizor@gmail.com>
-Alexander Zolotov <goldifit@gmail.com>
-Alexandre Cesaro <alexandre.cesaro@gmail.com>
-Alexandre Fiori <fiorix@gmail.com>
-Alexandre Normand <alexandre.normand@gmail.com>
-Alexandre Parentea <aubonbeurre@gmail.com>
-Alexandre Viau <alexandre@alexandreviau.net>
-Alexei Sholik <alcosholik@gmail.com>
-Alexey Borzenkov <snaury@gmail.com>
-Alexey Neganov <neganovalexey@gmail.com>
-Alexey Palazhchenko <alexey.palazhchenko@gmail.com>
-Alexey Semenyuk <alexsemenyuk88@gmail.com>
-Alexis Hildebrandt <surryhill@gmail.com>
-Ali Rizvi-Santiago <arizvisa@gmail.com>
-Aliaksandr Valialkin <valyala@gmail.com>
-Alif Rachmawadi <subosito@gmail.com>
-Allan Simon <allan.simon@supinfo.com>
-Alok Menghrajani <alok.menghrajani@gmail.com>
-Aman Gupta <aman@tmm1.net>
-Amazon.com, Inc
-Amir Mohammad Saied <amir@gluegadget.com>
-Amr Mohammed <merodiro@gmail.com>
-Amrut Joshi <amrut.joshi@gmail.com>
-Anand K. Mistry <anand@mistry.ninja>
-Anders Pearson <anders@columbia.edu>
-André Carvalho <asantostc@gmail.com>
-Andre Nathan <andrenth@gmail.com>
-Andreas Auernhammer <aead@mail.de>
-Andreas Litt <andreas.litt@gmail.com>
-Andrei Korzhevskii <a.korzhevskiy@gmail.com>
-Andrei Tudor Călin <mail@acln.ro>
-Andrei Vieru <euvieru@gmail.com>
-Andrew Austin <andrewaclt@gmail.com>
-Andrew Balholm <andybalholm@gmail.com>
-Andrew Benton <andrewmbenton@gmail.com>
-Andrew Bonventre <andybons@chromium.org>
-Andrew Braunstein <awbraunstein@gmail.com>
-Andrew Bursavich <abursavich@gmail.com>
-Andrew Ekstedt <andrew.ekstedt@gmail.com>
-Andrew Etter <andrew.etter@gmail.com>
-Andrew Harding <andrew@spacemonkey.com>
-Andrew Lutomirski <andy@luto.us>
-Andrew Pogrebnoy <absourd.noise@gmail.com>
-Andrew Pritchard <awpritchard@gmail.com>
-Andrew Radev <andrey.radev@gmail.com>
-Andrew Skiba <skibaa@gmail.com>
-Andrew Szeto <andrew@jabagawee.com>
-Andrew Wilkins <axwalk@gmail.com>
-Andrew Williams <williams.andrew@gmail.com>
-Andrey Mirtchovski <mirtchovski@gmail.com>
-Andrey Petrov <andrey.petrov@shazow.net>
-Andrii Soldatenko <andrii.soldatenko@gmail.com>
-Andrii Soluk <isoluchok@gmail.com>
-Andriy Lytvynov <lytvynov.a.v@gmail.com>
-Andrzej Żeżel <andrii.zhezhel@gmail.com>
-Andy Balholm <andy@balholm.com>
-Andy Davis <andy@bigandian.com>
-Andy Finkenstadt <afinkenstadt@zynga.com>
-Andy Lindeman <andy@lindeman.io>
-Andy Maloney <asmaloney@gmail.com>
-Andy Pan <panjf2000@gmail.com> <panjf2000@golangcn.org> <i@andypan.me>
-Andy Walker <walkeraj@gmail.com>
-Anfernee Yongkun Gui <anfernee.gui@gmail.com>
-Angelo Bulfone <mbulfone@gmail.com>
-Anh Hai Trinh <anh.hai.trinh@gmail.com>
-Anit Gandhi <anitgandhi@gmail.com>
-Anmol Sethi <anmol@aubble.com>
-Anschel Schaffer-Cohen <anschelsc@gmail.com>
-Anthony Alves <cvballa3g0@gmail.com>
-Anthony Canino <anthony.canino1@gmail.com>
-Anthony Eufemio <anthony.eufemio@gmail.com>
-Anthony Martin <ality@pbrane.org>
-Anthony Sottile <asottile@umich.edu>
-Anthony Starks <ajstarks@gmail.com>
-Anthony Voutas <voutasaurus@gmail.com>
-Anthony Woods <awoods@raintank.io>
-Antoine Martin <antoine97.martin@gmail.com>
-Antonin Amand <antonin.amand@gmail.com>
-Antonio Antelo <aantelov87@gmail.com>
-Antonio Bibiano <antbbn@gmail.com>
-Antonio Troina <thoeni@gmail.com>
-Apisak Darakananda <pongad@gmail.com>
-Apsalar
-Aram Hăvărneanu <aram@mgk.ro>
-Areski Belaid <areski@gmail.com>
-Ariel Mashraki <ariel@mashraki.co.il>
-Arlo Breault <arlolra@gmail.com>
-ARM Ltd.
-Arnaud Ysmal <arnaud.ysmal@gmail.com>
-Arne Hormann <arnehormann@gmail.com>
-Arnout Engelen <arnout@bzzt.net>
-Aron Nopanen <aron.nopanen@gmail.com>
-Arthur Khashaev <arthur@khashaev.ru>
-Artyom Pervukhin <artyom.pervukhin@gmail.com>
-Arvindh Rajesh Tamilmani <art@a-30.net>
-Ashish Gandhi <ag@ashishgandhi.org>
-Atin Malaviya <amalaviy@akamai.com>
-Ato Araki <ato.araki@gmail.com>
-Audrey Lim <audreylh@gmail.com>
-Audrius Butkevicius <audrius.butkevicius@gmail.com>
-Augusto Roman <aroman@gmail.com>
-Aulus Egnatius Varialus <varialus@gmail.com>
-Aurélien Rainone <aurelien.rainone@gmail.com>
-awaw fumin <awawfumin@gmail.com>
-Awn Umar <awn@cryptolosophy.io>
-Axel Wagner <axel.wagner.hh@googlemail.com>
-Ayanamist Yang <ayanamist@gmail.com>
-Aymerick Jéhanne <aymerick@jehanne.org>
-Azat Kaumov <kaumov.a.r@gmail.com>
-Baiju Muthukadan <baiju.m.mail@gmail.com>
-Baokun Lee <nototon@gmail.com> <bk@golangcn.org>
-Bartosz Grzybowski <melkorm@gmail.com>
-Bastian Ike <bastian.ike@gmail.com>
-Beijing Bytedance Technology Co., Ltd.
-Ben Burkert <ben@benburkert.com>
-Ben Haines <bhainesva@gmail.com>
-Ben Lubar <ben.lubar@gmail.com>
-Ben Olive <sionide21@gmail.com>
-Ben Shi <powerman1st@163.com> <ben.shi@streamcomputing.com>
-Benjamin Black <b@b3k.us>
-Benjamin Cable <cable.benjamin@gmail.com>
-Benjamin Hsieh <tanookiben@users.noreply.github.com>
-Benny Siegert <bsiegert@gmail.com>
-Benoit Sigoure <tsunanet@gmail.com>
-Berengar Lehr <berengar.lehr@gmx.de>
-Bharath Kumar Uppala <uppala.bharath@gmail.com>
-Bill Zissimopoulos <billziss@navimatics.com>
-Billie Harold Cleek <bhcleek@gmail.com>
-Bjorn Tillenius <bjorn@tillenius.me>
-Bjorn Tipling <bjorn.tipling@gmail.com>
-Blain Smith <rebelgeek@blainsmith.com>
-Blake Gentry <blakesgentry@gmail.com>
-Blake Mesdag <blakemesdag@gmail.com>
-Blake Mizerany <blake.mizerany@gmail.com>
-Blixt <me@blixt.nyc>
-Bob Briski <rbriski@gmail.com>
-Bob Potter <bobby.potter@gmail.com>
-Bobby Powers <bobbypowers@gmail.com>
-Bolt
-Borja Clemente <borja.clemente@gmail.com>
-Brad Burch <brad.burch@gmail.com>
-Brad Morgan <brad@morgabra.com>
-Bradley Falzon <brad@teambrad.net>
-Brady Catherman <brady@gmail.com>
-Brady Sullivan <brady@bsull.com>
-Brendan Daniel Tracey <tracey.brendan@gmail.com>
-Brett Cannon <bcannon@gmail.com>
-Brett Merrill <brett.j.merrill94@gmail.com>
-Brian Dellisanti <briandellisanti@gmail.com>
-Brian Downs <brian.downs@gmail.com>
-Brian G. Merrell <bgmerrell@gmail.com>
-Brian Gitonga Marete <marete@toshnix.com> <bgmarete@gmail.com>
-Brian Kennedy <btkennedy@gmail.com>
-Brian Kessler <brian.m.kessler@gmail.com>
-Brian Ketelsen <bketelsen@gmail.com>
-Brian Smith <ohohvi@gmail.com>
-Brian Starke <brian.starke@gmail.com>
-Bryan Alexander <Kozical@msn.com>
-Bryan Chan <bryanpkc@gmail.com>
-Bryan Ford <brynosaurus@gmail.com>
-Bulat Gaifullin <gaifullinbf@gmail.com>
-Burak Guven <bguven@gmail.com>
-Caine Tighe <arctanofyourface@gmail.com>
-Caleb Martinez <accounts@calebmartinez.com>
-Caleb Spare <cespare@gmail.com>
-Canonical Limited
-Carl Chatfield <carlchatfield@gmail.com>
-Carl Henrik Lunde <chlunde@ifi.uio.no>
-Carl Johnson <me@carlmjohnson.net>
-Carlisia Campos <carlisia@grokkingtech.io>
-Carlo Alberto Ferraris <cafxx@strayorange.com>
-Carlos Castillo <cookieo9@gmail.com>
-Carlos Cirello <uldericofilho@gmail.com>
-Carolyn Van Slyck <me@carolynvanslyck.com>
-Case Nelson <case.nelson@gmail.com>
-Casey Callendrello <squeed@gmail.com>
-Casey Marshall <casey.marshall@gmail.com>
-Cezar Sá Espinola <cezarsa@gmail.com>
-ChaiShushan <chaishushan@gmail.com>
-Changkun Ou <hi@changkun.de> <hi@changkun.us>
-Chaoqun Han <hanssccv@gmail.com>
-Charles Fenwick Elliott <Charles@FenwickElliott.io>
-Charles L. Dorian <cldorian@gmail.com>
-Charles Lee <zombie.fml@gmail.com>
-Chef Software, Inc.
-Chew Choon Keat <choonkeat@gmail.com>
-Cholerae Hu <choleraehyq@gmail.com>
-Chotepud Teo <AlexRouSg@users.noreply.github.com>
-Chris Ball <chris@printf.net>
-Chris Biscardi <chris@christopherbiscardi.com>
-Chris Dollin <ehog.hedge@gmail.com>
-Chris Farmiloe <chrisfarms@gmail.com>
-Chris Hines <chris.cs.guy@gmail.com>
-Chris Howey <howeyc@gmail.com>
-Chris Jones <chris@cjones.org>
-Chris Kastorff <encryptio@gmail.com>
-Chris Lennert <calennert@gmail.com>
-Chris Liles <caveryliles@gmail.com>
-Chris McGee <sirnewton_01@yahoo.ca> <newton688@gmail.com>
-Chris Roche <rodaine@gmail.com>
-Chris Smith <chrsmith@users.noreply.github.com>
-Chris Stockton <chrisstocktonaz@gmail.com>
-Christian Alexander <christian@linux.com>
-Christian Couder <chriscool@tuxfamily.org>
-Christian Himpel <chressie@googlemail.com>
-Christian Pellegrin <chri@evolware.org>
-Christine Hansmann <chhansmann@gmail.com>
-Christoffer Buchholz <christoffer.buchholz@gmail.com>
-Christoph Blecker <admin@toph.ca>
-Christoph Hack <christoph@tux21b.org>
-Christopher Cahoon <chris.cahoon@gmail.com>
-Christopher Guiney <chris@guiney.net>
-Christopher Henderson <chris@chenderson.org>
-Christopher Nelson <nadiasvertex@gmail.com>
-Christopher Nielsen <m4dh4tt3r@gmail.com>
-Christopher Redden <christopher.redden@gmail.com>
-Christopher Wedgwood <cw@f00f.org>
-Christos Zoulas <christos@zoulas.com> <zoulasc@gmail.com>
-CL Sung <clsung@gmail.com> <cl_sung@htc.com>
-Clement Skau <clementskau@gmail.com>
-CloudFlare Inc.
-Cody Oss <the.cody.oss@gmail.com>
-Colin Edwards <colin@recursivepenguin.com>
-Colin Kennedy <moshen.colin@gmail.com>
-Conrad Irwin <conrad.irwin@gmail.com>
-Conrad Meyer <cemeyer@cs.washington.edu>
-Conrado Gouvea <conradoplg@gmail.com>
-Constantin Konstantinidis <constantinkonstantinidis@gmail.com>
-CoreOS, Inc.
-Corey Thomasson <cthom.lists@gmail.com>
-Cristian Staretu <unclejacksons@gmail.com>
-Currant
-Cyrill Schumacher <cyrill@schumacher.fm>
-Daisuke Fujita <dtanshi45@gmail.com>
-Damian Gryski <dgryski@gmail.com>
-Damien Lespiau <damien.lespiau@gmail.com>
-Damien Mathieu <42@dmathieu.com>
-Dan Ballard <dan@mindstab.net>
-Dan Caddigan <goldcaddy77@gmail.com>
-Dan Callahan <dan.callahan@gmail.com>
-Dan Peterson <dpiddy@gmail.com>
-Dan Sinclair <dan.sinclair@gmail.com>
-Daniel Fleischman <danielfleischman@gmail.com>
-Daniel Johansson <dajo2002@gmail.com>
-Daniel Kerwin <d.kerwin@gini.net>
-Daniel Krech <eikeon@eikeon.com>
-Daniel Lidén <daniel.liden.87@gmail.com>
-Daniel Martí <mvdan@mvdan.cc>
-Daniel Morsing <daniel.morsing@gmail.com>
-Daniel Nephin <dnephin@gmail.com>
-Daniel Ortiz Pereira da Silva <daniel.particular@gmail.com>
-Daniel Skinner <daniel@dasa.cc>
-Daniel Speichert <daniel@speichert.pl>
-Daniel Theophanes <kardianos@gmail.com>
-Daniel Upton <daniel@floppy.co>
-Daniela Petruzalek <daniela.petruzalek@gmail.com>
-Danny Rosseau <daniel.rosseau@gmail.com>
-Darren Elwood <darren@textnode.com>
-Darshan Parajuli <parajulidarshan@gmail.com>
-Datong Sun <dndx@idndx.com>
-Dave Cheney <dave@cheney.net>
-Dave MacFarlane <driusan@gmail.com>
-Dave Russell <forfuncsake@gmail.com>
-David Brophy <dave@brophy.uk>
-David Bürgin <676c7473@gmail.com>
-David Calavera <david.calavera@gmail.com>
-David Carlier <devnexen@gmail.com>
-David du Colombier <0intro@gmail.com>
-David Forsythe <dforsythe@gmail.com>
-David G. Andersen <dave.andersen@gmail.com>
-David Howden <dhowden@gmail.com>
-David Jakob Fritz <david.jakob.fritz@gmail.com>
-David Leon Gil <coruus@gmail.com>
-David NewHamlet <david@newhamlet.com>
-David R. Jenni <david.r.jenni@gmail.com>
-David Sansome <me@davidsansome.com>
-David Stainton <dstainton415@gmail.com>
-David Thomas <davidthomas426@gmail.com>
-David Titarenco <david.titarenco@gmail.com>
-David Url <david@urld.io>
-David Volquartz Lebech <david@lebech.info>
-David Wimmer <davidlwimmer@gmail.com>
-Davies Liu <davies.liu@gmail.com>
-Davor Kapsa <davor.kapsa@gmail.com>
-Dean Prichard <dean.prichard@gmail.com>
-Deepak Jois <deepak.jois@gmail.com>
-Denis Bernard <db047h@gmail.com>
-Denis Brandolini <denis.brandolini@gmail.com>
-Dennis Kuhnert <mail.kuhnert@gmail.com>
-Denys Honsiorovskyi <honsiorovskyi@gmail.com>
-Derek Buitenhuis <derek.buitenhuis@gmail.com>
-Derek McGowan <derek@mcgstyle.net>
-Derek Parker <parkerderek86@gmail.com>
-Derek Shockey <derek.shockey@gmail.com>
-Dev Ojha <dojha12@gmail.com>
-Dev Zhoujun <dev.zhoujun@gmail.com>
-Develer SRL
-Devon H. O'Dell <devon.odell@gmail.com>
-Dhaivat Pandit <dhaivatpandit@gmail.com>
-Dhiru Kholia <dhiru.kholia@gmail.com>
-Dhruvdutt Jadhav <dhruvdutt.jadhav@gmail.com>
-Didier Spezia <didier.06@gmail.com>
-Dimitri Sokolyuk <sokolyuk@gmail.com>
-Dimitri Tcaciuc <dtcaciuc@gmail.com>
-Diogo Pinela <diogoid7400@gmail.com>
-Dirk Gadsden <dirk@esherido.com>
-Diwaker Gupta <diwakergupta@gmail.com>
-Dmitri Popov <operator@cv.dp-net.com>
-Dmitri Shuralyov <dmitri@shuralyov.com> <shurcooL@gmail.com>
-Dmitriy Cherchenko <dcherchenko@gmail.com>
-Dmitriy Dudkin <dudkin.dmitriy@gmail.com>
-Dmitriy Shelenin <deemok@googlemail.com> <deemok@gmail.com>
-Dmitry Chestnykh <dchest@gmail.com>
-Dmitry Doroginin <doroginin@gmail.com>
-Dmitry Savintsev <dsavints@gmail.com>
-Dmitry Yakunin <nonamezeil@gmail.com>
-Dominic Green <dominicgreen1@gmail.com>
-Dominik Honnef <dominik.honnef@gmail.com>
-Donald Huang <don.hcd@gmail.com>
-Dong-hee Na <donghee.na92@gmail.com>
-Donovan Hide <donovanhide@gmail.com>
-Dropbox, Inc.
-Duncan Holm <mail@frou.org>
-Dustin Herbison <djherbis@gmail.com>
-Dustin Sallings <dsallings@gmail.com>
-Dustin Shields-Cloues <dcloues@gmail.com>
-Dvir Volk <dvir@everything.me> <dvirsky@gmail.com>
-Dylan Waits <dylan@waits.io>
-Edan Bedrik <3d4nb3@gmail.com>
-Eden Li <eden.li@gmail.com>
-Eduardo Ramalho <eduardo.ramalho@gmail.com>
-Edward Muller <edwardam@interlix.com>
-Egon Elbre <egonelbre@gmail.com>
-Ehren Kret <ehren.kret@gmail.com>
-Eitan Adler <lists@eitanadler.com>
-Eivind Uggedal <eivind@uggedal.com>
-Elbert Fliek <efliek@gmail.com>
-Eldar Rakhimberdin <ibeono@gmail.com>
-Elena Grahovac <elena@grahovac.me>
-Elias Naur <mail@eliasnaur.com> <elias.naur@gmail.com>
-Elliot Morrison-Reed <elliotmr@gmail.com>
-Emerson Lin <linyintor@gmail.com>
-Emil Hessman <emil@hessman.se>
-Emil Mursalimov <mursalimovemeel@gmail.com>
-Emilien Kenler <hello@emilienkenler.com>
-Emmanuel Odeke <emm.odeke@gmail.com> <odeke@ualberta.ca>
-Empirical Interfaces Inc.
-Eoghan Sherry <ejsherry@gmail.com>
-Eric Chiang <eric.chiang.m@gmail.com>
-Eric Clark <zerohp@gmail.com>
-Eric Daniels <eric@erdaniels.com>
-Eric Engestrom <eric@engestrom.ch>
-Eric Lagergren <ericscottlagergren@gmail.com>
-Eric Milliken <emilliken@gmail.com>
-Eric Pauley <eric@pauley.me>
-Eric Rescorla <ekr@rtfm.com>
-Eric Roshan-Eisner <eric.d.eisner@gmail.com>
-Eric Rykwalder <e.rykwalder@gmail.com>
-Erik Aigner <aigner.erik@gmail.com>
-Erik Dubbelboer <erik@dubbelboer.com>
-Erik St. Martin <alakriti@gmail.com>
-Erik Westrup <erik.westrup@gmail.com>
-Ernest Chiang <ernest_chiang@htc.com>
-Erwin Oegema <blablaechthema@hotmail.com>
-Esko Luontola <esko.luontola@gmail.com>
-Euan Kemp <euank@euank.com>
-Eugene Kalinin <e.v.kalinin@gmail.com>
-Evan Hicks <evan.hicks2@gmail.com>
-Evan Jones <ej@evanjones.ca>
-Evan Phoenix <evan@phx.io>
-Evan Shaw <chickencha@gmail.com>
-Evgeniy Polyakov <zbr@ioremap.net>
-Ewan Chou <coocood@gmail.com>
-Ewan Valentine <ewan.valentine89@gmail.com>
-Eyal Posener <posener@gmail.com>
-Fabian Wickborn <fabian@wickborn.net>
-Fabian Zaremba <fabian@youremail.eu>
-Fabrizio Milo <mistobaan@gmail.com>
-Facebook, Inc.
-Faiyaz Ahmed <ahmedf@vmware.com>
-Fan Hongjian <fan.howard@gmail.com>
-Fastly, Inc.
-Fatih Arslan <fatih@arslan.io>
-Fazlul Shahriar <fshahriar@gmail.com>
-Fedor Indutny <fedor@indutny.com>
-Felipe Oliveira <felipeweb.programador@gmail.com>
-Felix Geisendörfer <haimuiba@gmail.com>
-Felix Kollmann <fk@konsorten.de>
-Filip Gruszczyński <gruszczy@gmail.com>
-Filip Haglund <drathier@users.noreply.github.com>
-Filippo Valsorda <hi@filippo.io>
-Firmansyah Adiputra <frm.adiputra@gmail.com>
-Florian Uekermann <florian@uekermann-online.de>
-Florian Weimer <fw@deneb.enyo.de>
-Florin Patan <florinpatan@gmail.com>
-Ford Hurley <ford.hurley@gmail.com>
-Francesc Campoy <francesc@campoy.cat>
-Francisco Claude <fclaude@recoded.cl>
-Francisco Rojas <francisco.rojas.gallegos@gmail.com>
-Francisco Souza <franciscossouza@gmail.com>
-Frank Schroeder <frank.schroeder@gmail.com>
-Frank Somers <fsomers@arista.com>
-Frederic Guillot <frederic.guillot@gmail.com>
-Frederick Kelly Mayle III <frederickmayle@gmail.com>
-Frederik Ring <frederik.ring@gmail.com>
-Fredrik Enestad <fredrik.enestad@soundtrackyourbrand.com>
-Fredrik Forsmo <fredrik.forsmo@gmail.com>
-Fredrik Wallgren <fredrik.wallgren@gmail.com>
-Frithjof Schulze <schulze@math.uni-hannover.de> <sfrithjof@gmail.com>
-Frits van Bommel <fvbommel@gmail.com>
-Gabríel Arthúr Pétursson <gabriel@system.is>
-Gabriel Aszalos <gabriel.aszalos@gmail.com>
-Gabriel Nicolas Avellaneda <avellaneda.gabriel@gmail.com>
-Gabriel Russell <gabriel.russell@gmail.com>
-Gareth Paul Jones <gpj@foursquare.com>
-Gary Burd <gary@beagledreams.com>
-Gaurish Sharma <contact@gaurishsharma.com>
-Gautham Thambidorai <gautham.dorai@gmail.com>
-Gauthier Jolly <gauthier.jolly@gmail.com>
-Geert-Johan Riemer <gjr19912@gmail.com>
-Gengliang Wang <ltnwgl@gmail.com>
-Geoffroy Lorieux <lorieux.g@gmail.com>
-Geon Kim <geon0250@gmail.com>
-Georg Reinke <guelfey@gmail.com>
-George Gkirtsou <ggirtsou@gmail.com>
-George Shammas <george@shamm.as> <georgyo@gmail.com>
-Gerasimos Dimitriadis <gedimitr@gmail.com>
-Getulio Sánchez <valentin2507@gmail.com>
-Gideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com>
-Giles Lean <giles.lean@pobox.com>
-Giulio Iotti <dullgiulio@gmail.com>
-Gleb Stepanov <glebstepanov1992@gmail.com>
-Google Inc.
-Gordon Klaus <gordon.klaus@gmail.com>
-Graham King <graham4king@gmail.com>
-Graham Miller <graham.miller@gmail.com>
-Grant Griffiths <ggp493@gmail.com>
-Greg Poirier <greg.istehbest@gmail.com>
-Greg Ward <greg@gerg.ca>
-Grégoire Delattre <gregoire.delattre@gmail.com>
-Gregory Man <man.gregory@gmail.com>
-Guilherme Garnier <guilherme.garnier@gmail.com>
-Guilherme Goncalves <guilhermeaugustosg@gmail.com>
-Guilherme Rezende <guilhermebr@gmail.com>
-Guillaume J. Charmes <guillaume@charmes.net>
-Guobiao Mei <meiguobiao@gmail.com>
-Gustav Paul <gustav.paul@gmail.com>
-Gustav Westling <gustav@westling.xyz>
-Gustavo Niemeyer <gustavo@niemeyer.net>
-Gwenael Treguier <gwenn.kahz@gmail.com>
-Gyu-Ho Lee <gyuhox@gmail.com>
-H. İbrahim Güngör <igungor@gmail.com>
-Hajime Hoshi <hajimehoshi@gmail.com>
-HAMANO Tsukasa <hamano@osstech.co.jp>
-Hang Qian <hangqian90@gmail.com>
-Hanjun Kim <hallazzang@gmail.com>
-Harald Nordgren <haraldnordgren@gmail.com>
-Hari haran <hariharan.uno@gmail.com>
-Hariharan Srinath <srinathh@gmail.com>
-Harley Laue <losinggeneration@gmail.com>
-Harry Moreno <morenoh149@gmail.com>
-Harshavardhana <hrshvardhana@gmail.com>
-Hauke Löffler <hloeffler@users.noreply.github.com>
-Håvard Haugen <havard.haugen@gmail.com>
-Hector Chu <hectorchu@gmail.com>
-Hector Martin Cantero <hector@marcansoft.com>
-Henning Schmiedehausen <henning@schmiedehausen.org>
-Henrik Edwards <henrik.edwards@gmail.com>
-Henrik Hodne <henrik@hodne.io>
-Henry Adi Sumarto <henry.adisumarto@gmail.com>
-Henry Bubert <google@mindeco.de>
-Henry Chang <mr.changyuheng@gmail.com>
-Henry Clifford <h.a.clifford@gmail.com>
-Herbert Georg Fischer <herbert.fischer@gmail.com>
-Hilko Bengen <bengen@hilluzination.de>
-Hiroaki Nakamura <hnakamur@gmail.com>
-Hironao OTSUBO <motemen@gmail.com>
-Hiroshi Ioka <hirochachacha@gmail.com>
-Hitoshi Mitake <mitake.hitoshi@gmail.com>
-Holden Huang <ttyh061@gmail.com>
-Hong Ruiqi <hongruiqi@gmail.com>
-Hongfei Tan <feilengcui008@gmail.com>
-Hootsuite Inc.
-Hsin-Ho Yeh <yhh92u@gmail.com>
-Hu Keping <hukeping@huawei.com>
-Hugues Bruant <hugues.bruant@gmail.com>
-HyperConnect Inc.
-Ian Gudger <ian@loosescre.ws>
-Ian Kent <iankent85@gmail.com>
-IBM
-Ibrahim AshShohail <ibra.sho@gmail.com>
-Icarus Sparry <golang@icarus.freeuk.com>
-Iccha Sethi <icchasethi@gmail.com>
-Idora Shinatose <idora.shinatose@gmail.com>
-Igneous Systems, Inc.
-Igor Dolzhikov <bluesriverz@gmail.com>
-Igor Vashyst <ivashyst@gmail.com>
-INADA Naoki <songofacandy@gmail.com>
-Inanc Gumus <m@inanc.io>
-Infobaleen AB
-Ingo Gottwald <in.gottwald@gmail.com>
-Ingo Krabbe <ikrabbe.ask@gmail.com>
-Ingo Oeser <nightlyone@googlemail.com>
-Intel Corporation
-Ioannis Georgoulas <geototti21@hotmail.com>
-Irfan Sharif <irfanmahmoudsharif@gmail.com>
-Irieda Noboru <irieda@gmail.com>
-Isaac Ardis <isaac.ardis@gmail.com>
-Isaac Wagner <ibw@isaacwagner.me>
-Ivan Babrou <ivan@cloudflare.com>
-Ivan Bertona <ivan.bertona@gmail.com>
-Ivan Markin <sw@nogoegst.net>
-Ivan Moscoso <moscoso@gmail.com>
-Ivan Ukhov <ivan.ukhov@gmail.com>
-Jack Britton <jackxbritton@gmail.com>
-Jacob H. Haven <jacob@jhaven.me>
-Jacob Hoffman-Andrews <github@hoffman-andrews.com>
-Jae Kwon <jae@tendermint.com>
-Jakob Borg <jakob@nym.se>
-Jakob Weisblat <jakobw@mit.edu>
-Jakub Ryszard Czarnowicz <j.czarnowicz@gmail.com>
-James Bardin <j.bardin@gmail.com>
-James Clarke <jrtc27@jrtc27.com>
-James Cowgill <James.Cowgill@imgtec.com>
-James David Chalfant <james.chalfant@gmail.com>
-James Fysh <james.fysh@gmail.com>
-James Gray <james@james4k.com>
-James Hartig <fastest963@gmail.com>
-James Lawrence <jljatone@gmail.com>
-James Meneghello <rawrz0r@gmail.com>
-James Myers <jfmyers9@gmail.com>
-James Neve <jamesoneve@gmail.com>
-James P. Cooper <jamespcooper@gmail.com>
-James Schofield <james@shoeboxapp.com>
-James Smith <jrs1995@icloud.com>
-James Sweet <james.sweet88@googlemail.com>
-James Toy <nil@opensesame.st>
-James Treanor <jtreanor3@gmail.com>
-James Whitehead <jnwhiteh@gmail.com>
-Jamie Beverly <jamie.r.beverly@gmail.com>
-Jamie Kerr <jkerr113@googlemail.com>
-Jamie Stackhouse <contin673@gmail.com>
-Jamil Djadala <djadala@gmail.com>
-Jan Berktold <jan@berktold.co>
-Jan H. Hosang <jan.hosang@gmail.com>
-Jan Lehnardt <jan@apache.org>
-Jan Mercl <0xjnml@gmail.com> <befelemepeseveze@gmail.com>
-Jan Newmarch <jan.newmarch@gmail.com>
-Jan Pilzer <jan.pilzer@gmx.de>
-Jan Ziak <0xe2.0x9a.0x9b@gmail.com>
-Jani Monoses <jani.monoses@ubuntu.com>
-Jared Culp <jculp14@gmail.com>
-Jaroslavas Počepko <jp@webmaster.ms>
-Jason A. Donenfeld <Jason@zx2c4.com>
-Jason Barnett <jason.w.barnett@gmail.com>
-Jason Chu <jasonchujc@gmail.com>
-Jason Del Ponte <delpontej@gmail.com>
-Jason Smale <jsmale@zendesk.com>
-Jason Travis <infomaniac7@gmail.com>
-Jason Wangsadinata <jwangsadinata@gmail.com>
-Javier Segura <javism@gmail.com>
-Jay Weisskopf <jay@jayschwa.net>
-Jean-André Santoni <jean.andre.santoni@gmail.com>
-Jean-Francois Cantin <jfcantin@gmail.com>
-Jean-Nicolas Moal <jn.moal@gmail.com>
-Jeet Parekh <jeetparekh96@gmail.com>
-Jeevanandam M <jeeva@myjeeva.com>
-Jeff Dupont <jeff.dupont@gmail.com>
-Jeff Hodges <jeff@somethingsimilar.com>
-Jeff R. Allen <jra@nella.org>
-Jeff Sickel <jas@corpus-callosum.com>
-Jeff Wendling <jeff@spacemonkey.com>
-Jeffrey H <jeffreyh192@gmail.com>
-Jelte Fennema <github-tech@jeltef.nl>
-Jens Frederich <jfrederich@gmail.com>
-Jeremy Jackins <jeremyjackins@gmail.com>
-Jeroen Bobbeldijk <jerbob92@gmail.com>
-Jerrin Shaji George <jerrinsg@gmail.com>
-Jess Frazelle <me@jessfraz.com>
-Jesse Szwedko <jesse.szwedko@gmail.com>
-Jesús Espino <jespinog@gmail.com>
-Jihyun Yu <yjh0502@gmail.com>
-Jim McGrath <jimmc2@gmail.com>
-Jimmy Frasche <soapboxcicero@gmail.com>
-Jimmy Zelinskie <jimmyzelinskie@gmail.com>
-Jin-wook Jeong <jeweljar@hanmail.net>
-Jingcheng Zhang <diogin@gmail.com>
-Jingguo Yao <yaojingguo@gmail.com>
-Jinzhu Zhang <wosmvp@gmail.com>
-Jiong Du <londevil@gmail.com>
-Jirka Daněk <dnk@mail.muni.cz>
-Jiulong Wang <jiulongw@gmail.com>
-Joakim Sernbrant <serbaut@gmail.com>
-Joe Cortopassi <joe@joecortopassi.com>
-Joe Farrell <joe2farrell@gmail.com>
-Joe Harrison <joehazzers@gmail.com>
-Joe Henke <joed.henke@gmail.com>
-Joe Kyo <xunianzu@gmail.com>
-Joe Poirier <jdpoirier@gmail.com>
-Joe Shaw <joe@joeshaw.org>
-Joe Sylve <joe.sylve@gmail.com>
-Joe Tsai <joetsai@digital-static.net>
-Joel Sing <joel@sing.id.au>
-Joel Stemmer <stemmertech@gmail.com>
-Joey Geiger <jgeiger@users.noreply.github.com>
-Johan Brandhorst <johan.brandhorst@gmail.com>
-Johan Sageryd <j@1616.se>
-John Asmuth <jasmuth@gmail.com>
-John C Barstow <jbowtie@amathaine.com>
-John Gibb <johngibb@gmail.com>
-John Graham-Cumming <jgc@jgc.org> <jgrahamc@gmail.com>
-John Howard Palevich <jack.palevich@gmail.com>
-John Jeffery <jjeffery@sp.com.au>
-John Jenkins <twodopeshaggy@gmail.com>
-John Leidegren <john.leidegren@gmail.com>
-John Potocny <johnp@vividcortex.com>
-John R. Lenton <jlenton@gmail.com>
-John Schnake <schnake.john@gmail.com>
-John Shahid <jvshahid@gmail.com>
-John Tuley <john@tuley.org>
-Johnny Luo <johnnyluo1980@gmail.com>
-Jonas Bernoulli <jonas@bernoul.li>
-Jonathan Boulle <jonathanboulle@gmail.com>
-Jonathan Chen <dijonkitchen@users.noreply.github.com>
-Jonathan Gold <jgold.bg@gmail.com>
-Jonathan Mark <jhmark@xenops.com>
-Jonathan Pentecost <pentecostjonathan@gmail.com>
-Jonathan Rudenberg <jonathan@titanous.com>
-Jonathan Stacks <jonstacks13@gmail.com>
-Jonathan Wills <runningwild@gmail.com>
-Jongmin Kim <atomaths@gmail.com>
-Joonas Kuorilehto <joneskoo@derbian.fi>
-Joop Kiefte <ikojba@gmail.com> <joop@kiefte.net>
-Jordan Krage <jmank88@gmail.com>
-Jordan Lewis <jordanthelewis@gmail.com>
-Jose Luis Vázquez González <josvazg@gmail.com>
-Joseph Holsten <joseph@josephholsten.com>
-Josh Bleecher Snyder <josharian@gmail.com>
-Josh Chorlton <jchorlton@gmail.com>
-Josh Deprez <josh.deprez@gmail.com>
-Josh Goebel <dreamer3@gmail.com>
-Josh Holland <jrh@joshh.co.uk>
-Josh Roppo <joshroppo@gmail.com>
-Josh Varga <josh.varga@gmail.com>
-Joshua Chase <jcjoshuachase@gmail.com>
-Joshua Rubin <joshua@rubixconsulting.com>
-Josselin Costanzi <josselin@costanzi.fr>
-Jostein Stuhaug <js@solidsystem.no>
-Joyent, Inc.
-JT Olds <jtolds@xnet5.com>
-Juan Carlos <juanjcsr@gmail.com>
-Jude Pereira <judebpereira@gmail.com>
-Jukka-Pekka Kekkonen <karatepekka@gmail.com>
-Julian Kornberger <jk+github@digineo.de>
-Julian Phillips <julian@quantumfyre.co.uk>
-Julien Salleyron <julien.salleyron@gmail.com>
-Julien Schmidt <google@julienschmidt.com>
-Junda Liu <junda@celer.network>
-Junya Hayashi <ledmonster@gmail.com>
-Justin Gracenin <jgracenin@gmail.com>
-Justin Nuß <nuss.justin@gmail.com>
-Justyn Temme <justyntemme@gmail.com>
-Kai Backman <kaib@golang.org>
-Kai Trukenmüller <ktye78@gmail.com>
-Kale Blankenship <kale@lemnisys.com>
-Kaleb Elwert <kelwert@atlassian.com>
-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>
-Karel Pazdera <pazderak@gmail.com>
-Karoly Negyesi <chx1975@gmail.com>
-Karsten Köhler <karsten.koehler95@gmail.com>
-Kashav Madan <kshvmdn@gmail.com>
-Kate Manson <kate.manson@izettle.com>
-Kato Kazuyoshi <kato.kazuyoshi@gmail.com>
-Katrina Owen <katrina.owen@gmail.com>
-Kaviraj Kanagaraj <kavirajkanagaraj@gmail.com>
-Keegan Carruthers-Smith <keegan.csmith@gmail.com>
-Kei Son <hey.calmdown@gmail.com>
-Keiji Yoshida <keijiyoshida.mail@gmail.com>
-Keith Ball <inflatablewoman@gmail.com>
-Keith Rarick <kr@xph.us>
-Kelsey Hightower <kelsey.hightower@gmail.com>
-Kelvin Foo Chuan Lyi <vmirage@gmail.com>
-Ken Friedenbach <kenliz@cruzio.com>
-Ken Rockot <ken@oz.gs>
-Ken Sedgwick <ken@bonsai.com>
-Kenji Kaneda <kenji.kaneda@gmail.com>
-Kenji Yano <kenji.yano@gmail.com>
-Kenneth Shaw <kenshaw@gmail.com>
-Kenny Grant <kennygrant@gmail.com>
-Kevin Ballard <kevin@sb.org>
-Kevin Burke <kev@inburke.com>
-Kevin Kirsche <kev.kirsche@gmail.com>
-Kevin Ruffin <kruffin@gmail.com>
-Kevin Vu <kevin.m.vu@gmail.com>
-Kieran Colford <kieran@kcolford.com>
-Kim Yongbin <kybinz@gmail.com>
-Kir Kolyshkin <kolyshkin@gmail.com>
-Kirk Han <kirk91.han@gmail.com>
-Klaus Post <klauspost@gmail.com>
-Kodie Goodwin <kodiegoodwin@gmail.com>
-Koichi Shiraishi <zchee.io@gmail.com>
-Koki Ide <niconegoto@yahoo.co.jp>
-Konstantin <konstantin8105@gmail.com>
-Konstantin Shaposhnikov <k.shaposhnikov@gmail.com>
-KPCompass, Inc.
-Kris Nova <kris@nivenly.com>
-Kristopher Watts <traetox@gmail.com>
-Kun Li <likunarmstrong@gmail.com>
-Kunpei Sakai <namusyaka@gmail.com>
-Kuntal Majumder <hellozee@disroot.org>
-Kyle Consalus <consalus@gmail.com>
-Kyle Isom <kyle@gokyle.net>
-Kyle Jones <kyle@kyledj.com>
-Kyle Lemons <kyle@kylelemons.net>
-Kyle Shannon <kyle@pobox.com>
-Kyohei Kadota <lufia@lufia.org>
-Kyrylo Silin <silin@kyrylo.org>
-L Campbell <unpantsu@gmail.com>
-Lai Jiangshan <eag0628@gmail.com>
-Lakshay Garg <lakshay.garg.1996@gmail.com>
-Lanre Adelowo <yo@lanre.wtf>
-Larry Hosken <lahosken@gmail.com>
-Lars Jeppesen <jeppesen.lars@gmail.com>
-Lars Lehtonen <lars.lehtonen@gmail.com>
-Lars Wiegman <lars@namsral.com>
-Larz Conwell <larzconwell@gmail.com>
-Laurent Voisin <lpvoisin@gmail.com>
-Laurie Clark-Michalek <laurie@qubit.com>
-LE Manh Cuong <cuong.manhle.vn@gmail.com>
-Lee Hinman <hinman@gmail.com>
-Lee Packham <lpackham@gmail.com>
-Lehner Florian <dev@der-flo.net>
-Leigh McCulloch <leighmcc@gmail.com>
-Leo Antunes <leo@costela.net>
-Leon Klingele <git@leonklingele.de>
-Leonard Wang <wangdeyu0907@gmail.com> <wangdeyu@golangcn.org>
-Leonel Quinteros <leonel.quinteros@gmail.com>
-Lev Shamardin <shamardin@gmail.com>
-Lewin Bormann <lewin.bormann@gmail.com>
-Liberty Fund Inc
-Linaro Limited
-Lion Yang <lion@aosc.xyz>
-Lloyd Dewolf <foolswisdom@gmail.com>
-Loongson Technology Corporation Limited
-Lorenzo Masini <rugginoso@develer.com>
-Lorenzo Stoakes <lstoakes@gmail.com>
-Luan Santos <cfcluan@gmail.com>
-Lubomir I. Ivanov <neolit123@gmail.com>
-Luca Greco <luca.greco@alcacoop.it>
-Lucas Bremgartner <lucas.bremgartner@gmail.com>
-Lucien Stuker <lucien.stuker@gmail.com>
-Lucio De Re <lucio.dere@gmail.com>
-Ludi Rehak <ludi317@gmail.com>
-Luigi Riefolo <luigi.riefolo@gmail.com>
-Luit van Drongelen <luitvd@gmail.com>
-Luka Zakrajšek <tr00.g33k@gmail.com>
-Luke Curley <qpingu@gmail.com>
-Luke Granger-Brown <git@lukegb.com>
-Lyle Franklin <lylejfranklin@gmail.com>
-Ma Peiqi <mapeiqi2017@gmail.com>
-Maicon Costa <maiconscosta@gmail.com>
-Maksym Trykur <maksym.trykur@gmail.com>
-Mal Curtis <mal@mal.co.nz>
-Manfred Touron <m@42.am>
-Manigandan Dharmalingam <manigandan.jeff@gmail.com>
-Manish Goregaokar <manishsmail@gmail.com>
-Mansour Rahimi <rahimi.mnr@gmail.com>
-Manu S Ajith <neo@codingarena.in>
-Manuel Mendez <mmendez534@gmail.com>
-Marc Weistroff <marc@weistroff.net>
-Marcel Edmund Franke <marcel.edmund.franke@gmail.com>
-Marcelo Cantos <marcelo.cantos@gmail.com>
-Marcelo E. Magallon <marcelo.magallon@gmail.com>
-Marco Hennings <marco.hennings@freiheit.com>
-Marin Bašić <marin.basic02@gmail.com>
-Mario Arranz <marioarranzr@gmail.com>
-Mark Adams <mark@markadams.me>
-Mark Bucciarelli <mkbucc@gmail.com>
-Mark Percival <m@mdp.im>
-Mark Pulford <mark@kyne.com.au>
-Mark Rushakoff <mark.rushakoff@gmail.com>
-Mark Severson <miquella@gmail.com>
-Mark Theunissen <mark.theunissen@gmail.com>
-Mark Wolfe <mark@wolfe.id.au>
-Marko Juhani Silokunnas <marko.silokunnas@gmail.com>
-Marko Mudrinic <mudrinic.mare@gmail.com>
-Marko Tiikkaja <marko@joh.to>
-Markover Inc. DBA Poptip
-Markus Duft <markus.duft@salomon.at>
-Markus Sonderegger <marraison@gmail.com>
-Markus Zimmermann <zimmski@gmail.com>
-Martin Bertschler <mbertschler@gmail.com>
-Martin Garton <garton@gmail.com>
-Martin Hamrle <martin.hamrle@gmail.com>
-Martin Hoefling <martin.hoefling@gmx.de>
-Martin Kunc <martinkunc@users.noreply.github.com>
-Martin Lindhe <martin.j.lindhe@gmail.com>
-Martin Möhrmann <martisch@uos.de>
-Martin Neubauer <m.ne@gmx.net>
-Martin Olsen <github.com@martinolsen.net>
-Martin Olsson <martin@minimum.se>
-Martin Probst <martin@probst.io>
-Martin Sucha <anty.sk+git@gmail.com>
-Martins Sipenko <martins.sipenko@gmail.com>
-Marvin Stenger <marvin.stenger94@gmail.com>
-Marwan Sulaiman <marwan.sulaiman@work.co>
-Maryan Hratson <gmarik@gmail.com>
-Masahiro Furudate <masahiro.furudate@gmail.com>
-Masahiro Wakame <vvakame@gmail.com>
-Masaki Yoshida <yoshida.masaki@gmail.com>
-Mat Byczkowski <mbyczkowski@gmail.com>
-Mat Ryer <thatmatryer@gmail.com>
-Máté Gulyás <mgulyas86@gmail.com>
-Matej Baćo <matejbaco@gmail.com>
-Mateus Amin <mateus.amin@gmail.com>
-Mateusz Czapliński <czapkofan@gmail.com>
-Mathias Beke <git@denbeke.be>
-Mathias Hall-Andersen <mathias@hall-andersen.dk>
-Mathias Leppich <mleppich@muhqu.de>
-Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
-Mats Lidell <mats.lidell@cag.se>
-Matt Aimonetti <mattaimonetti@gmail.com>
-Matt Blair <me@matthewblair.net>
-Matt Bostock <matt@mattbostock.com>
-Matt Dee <mdee@hioscar.com>
-Matt Drollette <matt@drollette.com>
-Matt Harden <matt.harden@gmail.com>
-Matt Jibson <matt.jibson@gmail.com>
-Matt Joiner <anacrolix@gmail.com>
-Matt Juran <thepciet@gmail.com>
-Matt Layher <mdlayher@gmail.com>
-Matt Reiferson <mreiferson@gmail.com>
-Matt Robenolt <matt@ydekproductions.com>
-Matt Strong <mstrong1341@gmail.com>
-Matt T. Proud <matt.proud@gmail.com>
-Matt Williams <gh@mattyw.net>
-Matthew Brennan <matty.brennan@gmail.com>
-Matthew Broberg <matthewbbroberg@gmail.com>
-Matthew Cottingham <mattcottingham@gmail.com>
-Matthew Denton <mdenton@skyportsystems.com>
-Matthew Holt <Matthew.Holt+git@gmail.com>
-Matthew Horsnell <matthew.horsnell@gmail.com>
-Matthieu Hauglustaine <matt.hauglustaine@gmail.com>
-Matthieu Olivier <olivier.matthieu@gmail.com>
-Matthijs Kooijman <matthijs@stdin.nl>
-Max Riveiro <kavu13@gmail.com>
-Max Schmitt <max@schmitt.mx>
-Maxim Khitrov <max@mxcrypt.com>
-Maxime de Roucy <maxime.deroucy@gmail.com>
-Máximo Cuadros Ortiz <mcuadros@gmail.com>
-Maxwell Krohn <themax@gmail.com>
-Maya Rashish <maya@netbsd.org>
-Mayank Kumar <krmayankk@gmail.com>
-MediaMath, Inc
-Meir Fischer <meirfischer@gmail.com>
-Meng Zhuo <mengzhuo1203@gmail.com> <mzh@golangcn.org>
-Meteor Development Group
-Mhd Sulhan <m.shulhan@gmail.com>
-Micah Stetson <micah.stetson@gmail.com>
-Michael Brandenburg <mbrandenburg@bolste.com>
-Michael Chaten <mchaten@gmail.com>
-Michael Dorner <mail@michaeldorner.de>
-Michael Edwards <medwards@walledcity.ca>
-Michael Elkins <michael.elkins@gmail.com>
-Michael Fraenkel <michael.fraenkel@gmail.com>
-Michael Gehring <mg@ebfe.org> <gnirheg.leahcim@gmail.com>
-Michael Hendricks <michael@ndrix.org>
-Michael Hoisie <hoisie@gmail.com>
-Michael Kasch <michael.kasch@gmail.com>
-Michael Käufl <golang@c.michael-kaeufl.de>
-Michael Lewis <mikelikespie@gmail.com>
-Michael MacInnis <Michael.P.MacInnis@gmail.com>
-Michael Marineau <mike@marineau.org>
-Michael McConville <momcconville@gmail.com>
-Michael McLoughlin <mmcloughlin@gmail.com>
-Michael Pearson <mipearson@gmail.com>
-Michael Schaller <michael@5challer.de>
-Michael Schurter <michael.schurter@gmail.com>
-Michael Stapelberg <michael@stapelberg.de>
-Michael Steinert <mike.steinert@gmail.com>
-Michael Teichgräber <mteichgraeber@gmx.de>
-Michael Vetter <g.bluehut@gmail.com>
-Michal Bohuslávek <mbohuslavek@gmail.com>
-Michał Derkacz <ziutek@lnet.pl>
-Michal Franc <lam.michal.franc@gmail.com>
-Michal Pristas <michal.pristas@gmail.com>
-Miek Gieben <miek@miek.nl>
-Miguel Mendez <stxmendez@gmail.com>
-Miguel Molina <hi@mvader.me>
-Mihai Borobocea <MihaiBorobocea@gmail.com>
-Mihail Minaev <minaev.mike@gmail.com>
-Mikael Tillenius <mikti42@gmail.com>
-Mike Andrews <mra@xoba.com>
-Mike Appleby <mike@app.leby.org>
-Mike Houston <mike@kothar.net>
-Mike Kabischev <kabischev@gmail.com>
-Mike Rosset <mike.rosset@gmail.com>
-Mike Tsao <mike@sowbug.com>
-Mikhail Gusarov <dottedmag@dottedmag.net>
-Mikhail Panchenko <m@mihasya.com>
-Miki Tebeka <miki.tebeka@gmail.com>
-Mikio Hara <mikioh.mikioh@gmail.com>
-Mikkel Krautz <mikkel@krautz.dk>
-Milan Knezevic <milan.knezevic@mips.com>
-Milutin Jovanović <jovanovic.milutin@gmail.com>
-MinJae Kwon <mingrammer@gmail.com>
-Miquel Sabaté Solà <mikisabate@gmail.com>
-Miroslav Genov <mgenov@gmail.com>
-Misty De Meo <mistydemeo@gmail.com>
-Mohit Agarwal <mohit@sdf.org>
-Mohit kumar Bajoria <mohitbajo36@gmail.com>
-Momchil Velikov <momchil.velikov@gmail.com>
-Monty Taylor <mordred@inaugust.com>
-Moov Corporation
-Moriyoshi Koizumi <mozo@mozo.jp>
-Morten Siebuhr <sbhr@sbhr.dk>
-Môshe van der Sterre <moshevds@gmail.com>
-Mostyn Bramley-Moore <mostyn@antipode.se>
-Muhammad Falak R Wani <falakreyaz@gmail.com>
-Muhammed Uluyol <uluyol0@gmail.com>
-Mura Li <mura_li@castech.com.tw>
-Nan Deng <monnand@gmail.com>
-Naoki Kanatani <k12naoki@gmail.com>
-Nate Wilkinson <nathanwilk7@gmail.com>
-Nathan Cantelmo <n.cantelmo@gmail.com>
-Nathan Caza <mastercactapus@gmail.com>
-Nathan Humphreys <nkhumphreys@gmail.com>
-Nathan John Youngman <nj@nathany.com>
-Nathan Otterness <otternes@cs.unc.edu>
-Nathan P Finch <nate.finch@gmail.com>
-Nathan VanBenschoten <nvanbenschoten@gmail.com>
-Nathan Youngman <git@nathany.com>
-Nathaniel Cook <nvcook42@gmail.com>
-Naveen Kumar Sangi <naveenkumarsangi@protonmail.com>
-Neelesh Chandola <neelesh.c98@gmail.com>
-Neil Alexander <neilalexander@neilalexander.dev>
-Neil Lyons <nwjlyons@googlemail.com>
-Netflix, Inc.
-Neuman Vong <neuman.vong@gmail.com>
-Neven Sajko <nsajko@gmail.com>
-Nevins Bartolomeo <nevins.bartolomeo@gmail.com>
-Nexedi
-ngmoco, LLC
-Niall Sheridan <nsheridan@gmail.com>
-Nic Day <nic.day@me.com>
-Nicholas Katsaros <nick@nickkatsaros.com>
-Nicholas Maniscalco <nicholas@maniscalco.com>
-Nicholas Presta <nick@nickpresta.ca> <nick1presta@gmail.com>
-Nicholas Sullivan <nicholas.sullivan@gmail.com>
-Nicholas Waples <nwaples@gmail.com>
-Nick Craig-Wood <nick@craig-wood.com> <nickcw@gmail.com>
-Nick Leli <nicholasleli@gmail.com>
-Nick Miyake <nmiyake@users.noreply.github.com>
-Nick Patavalis <nick.patavalis@gmail.com>
-Nick Petroni <npetroni@cs.umd.edu>
-Nick Robinson <nrobinson13@gmail.com>
-Nick Smolin <nick27surgut@gmail.com>
-Nicolas BRULEZ <n.brulez@gmail.com>
-Nicolas Kaiser <nikai@nikai.net>
-Nicolas Owens <mischief@offblast.org>
-Nicolas S. Dade <nic.dade@gmail.com>
-Niek Sanders <niek.sanders@gmail.com>
-Niels Widger <niels.widger@gmail.com>
-Nigel Kerr <nigel.kerr@gmail.com>
-Nik Nyby <nnyby@columbia.edu>
-Nikhil Benesch <nikhil.benesch@gmail.com>
-Nikita Gillmann <nikita@n0.is> <ng0@n0.is>
-Niklas Schnelle <niklas.schnelle@gmail.com>
-Niko Dziemba <niko@dziemba.com>
-Nikolay Turpitko <nikolay@turpitko.com>
-Nils Larsgård <nilsmagnus@gmail.com>
-Niranjan Godbole <niranjan8192@gmail.com>
-Nishanth Shanmugham <nishanth.gerrard@gmail.com>
-Noah Campbell <noahcampbell@gmail.com>
-Noble Johnson <noblepoly@gmail.com>
-Noel Georgi <git@frezbo.com>
-Norberto Lopes <nlopes.ml@gmail.com>
-Odin Ugedal <odin@ugedal.com>
-Oleg Bulatov <dmage@yandex-team.ru>
-Oleg Vakheta <helginet@gmail.com>
-Oleku Konko <oleku.konko@gmail.com>
-Oling Cat <olingcat@gmail.com>
-Oliver Hookins <ohookins@gmail.com>
-Oliver Tonnhofer <olt@bogosoft.com>
-Olivier Antoine <olivier.antoine@gmail.com>
-Olivier Duperray <duperray.olivier@gmail.com>
-Olivier Poitrey <rs@dailymotion.com>
-Olivier Saingre <osaingre@gmail.com>
-Oracle
-Orange
-Orijtech, Inc.
-Özgür Kesim <oec-go@kesim.org>
-Pablo Lalloni <plalloni@gmail.com>
-Pablo Rozas Larraondo <pablo.larraondo@anu.edu.au>
-Pablo Santiago Blum de Aguiar <scorphus@gmail.com>
-Padraig Kitterick <padraigkitterick@gmail.com>
-Pallat Anchaleechamaikorn <yod.pallat@gmail.com>
-Palm Stone Games
-Paolo Giarrusso <p.giarrusso@gmail.com>
-Paolo Martini <mrtnpaolo@gmail.com>
-Parker Moore <parkrmoore@gmail.com>
-Pascal S. de Kloe <pascal@quies.net>
-Pat Moroney <pat@pat.email>
-Patrick Crosby <patrick@stathat.com>
-Patrick Gavlin <pgavlin@gmail.com>
-Patrick Higgins <patrick.allen.higgins@gmail.com>
-Patrick Lee <pattyshack101@gmail.com>
-Patrick Mézard <patrick@mezard.eu>
-Patrick Mylund Nielsen <patrick@patrickmn.com>
-Patrick Pelletier <pp.pelletier@gmail.com>
-Patrick Smith <pat42smith@gmail.com>
-Paul A Querna <paul.querna@gmail.com>
-Paul Boyd <boyd.paul2@gmail.com>
-Paul Hammond <paul@paulhammond.org>
-Paul Jolly <paul@myitcv.org.uk>
-Paul Lalonde <paul.a.lalonde@gmail.com>
-Paul Meyer <paul.meyer@microsoft.com>
-Paul PISCUC <paul.piscuc@gmail.com>
-Paul Querna <pquerna@apache.org>
-Paul Rosania <paul.rosania@gmail.com>
-Paul Ruest <pruest@gmail.com>
-Paul Sbarra <Sbarra.Paul@gmail.com>
-Paul Smith <paulsmith@pobox.com> <paulsmith@gmail.com>
-Paul Tyng <paul@paultyng.net>
-Paul van Brouwershaven <paul@vanbrouwershaven.com>
-Paulo Casaretto <pcasaretto@gmail.com>
-Pavel Paulau <pavel.paulau@gmail.com>
-Pavel Zinovkin <pavel.zinovkin@gmail.com>
-Pavlo Sumkin <ymkins@gmail.com>
-Pawel Knap <pawelknap88@gmail.com>
-Percy Wegmann <ox.to.a.cart@gmail.com>
-Perry Abbott <perry.j.abbott@gmail.com>
-Petar Maymounkov <petarm@gmail.com>
-Peter Armitage <peter.armitage@gmail.com>
-Peter Bourgon <peter@bourgon.org>
-Peter Conerly <pconerly@gmail.com>
-Peter Froehlich <peter.hans.froehlich@gmail.com>
-Peter Kleiweg <pkleiweg@xs4all.nl>
-Peter Moody <pmoody@uber.com>
-Peter Morjan <pmorjan@gmail.com>
-Peter Mundy <go.peter.90@gmail.com>
-Peter Nguyen <peter@mictis.com>
-Péter Surányi <speter.go1@gmail.com>
-Péter Szilágyi <peterke@gmail.com>
-Peter Teichman <pteichman@fastly.com>
-Peter Waldschmidt <peter@waldschmidt.com>
-Peter Waller <peter.waller@gmail.com>
-Peter Williams <pwil3058@gmail.com>
-Peter Zhang <i@ddatsh.com>
-Petrica Voicu <pvoicu@paypal.com>
-Phil Pearl <philip.j.r.pearl@gmail.com>
-Philip Børgesen <philip.borgesen@gmail.com>
-Philip Brown <phil@bolthole.com>
-Philip Hofer <phofer@umich.edu>
-Philip K. Warren <pkwarren@gmail.com>
-Philip Nelson <me@pnelson.ca>
-Pierre Durand <pierredurand@gmail.com>
-Pierre Prinetti <pierreprinetti@gmail.com>
-Pierre Roullon <pierre.roullon@gmail.com>
-Piers <google@hellopiers.pro>
-Pieter Droogendijk <pieter@binky.org.uk>
-Pietro Gagliardi <pietro10@mac.com>
-Piyush Mishra <piyush@codeitout.com>
-PlanetScale, Inc.
-Platform.sh
-Pontus Leitzler <leitzler@gmail.com>
-Prasanga Siripala <pj@pjebs.com.au>
-Prashant Varanasi <prashant@prashantv.com>
-Pravendra Singh <hackpravj@gmail.com>
-Preetam Jinka <pj@preet.am>
-Qais Patankar <qaisjp@gmail.com>
-Qiuxuan Zhu <ilsh1022@gmail.com>
-Qualcomm Data Center, Inc.
-Quan Tran <qeed.quan@gmail.com>
-Quan Yong Zhai <qyzhai@gmail.com>
-Quentin Perez <qperez@ocs.online.net>
-Quentin Renard <contact@asticode.com>
-Quoc-Viet Nguyen <afelion@gmail.com>
-RackTop Systems Inc.
-Radek Sohlich <sohlich@gmail.com>
-Radu Berinde <radu@cockroachlabs.com>
-Rafal Jeczalik <rjeczalik@gmail.com>
-Raif S. Naffah <go@naffah-raif.name>
-RainTank
-Rajat Goel <rajat.goel2010@gmail.com>
-Rajath Agasthya <rajathagasthya@gmail.com>
-Rajender Reddy Kompally <rajenderreddykompally@gmail.com>
-Ralph Corderoy <ralph@inputplus.co.uk>
-Ramazan AYYILDIZ <rayyildiz@gmail.com>
-Raphael Geronimi <raphael.geronimi@gmail.com>
-Ravil Bikbulatov <weeellz12@gmail.com>
-RaviTeja Pothana <ravi.tezu@gmail.com>
-Ray Tung <rtung@thoughtworks.com>
-Raymond Kazlauskas <raima220@gmail.com>
-Red Hat, Inc.
-Reilly Watson <reillywatson@gmail.com>
-Reinaldo de Souza Jr <juniorz@gmail.com>
-Remi Gillig <remigillig@gmail.com>
-Rémy Oudompheng <oudomphe@phare.normalesup.org>
-Rens Rikkerink <Ikkerens@users.noreply.github.com>
-Ricardo Padilha <ricardospadilha@gmail.com>
-Richard Barnes <rlb@ipv.sx>
-Richard Crowley <r@rcrowley.org>
-Richard Dingwall <rdingwall@gmail.com>
-Richard Eric Gavaletz <gavaletz@gmail.com>
-Richard Gibson <richard.gibson@gmail.com>
-Richard Miller <miller.research@gmail.com>
-Richard Musiol <mail@richard-musiol.de>
-Rick Arnold <rickarnoldjr@gmail.com>
-Rick Sayre <whorfin@gmail.com>
-Risto Jaakko Saarelma <rsaarelm@gmail.com>
-Rob Norman <rob.norman@infinitycloud.com>
-Rob Phoenix <rob@robphoenix.com>
-Robert Daniel Kortschak <dan.kortschak@adelaide.edu.au> <dan@kortschak.io>
-Robert Dinu <r@varp.se>
-Robert Figueiredo <robfig@gmail.com>
-Robert Hencke <robert.hencke@gmail.com>
-Robert Obryk <robryk@gmail.com>
-Robert Stepanek <robert.stepanek@gmail.com>
-Robert-André Mauchin <zebob.m@gmail.com>
-Roberto Clapis <robclap8@gmail.com>
-Robin Eklind <r.eklind.87@gmail.com>
-Rodolfo Carvalho <rhcarvalho@gmail.com>
-Rodrigo Moraes de Oliveira <rodrigo.moraes@gmail.com>
-Rodrigo Rafael Monti Kochenburger <divoxx@gmail.com>
-Roger Pau Monné <royger@gmail.com>
-Roger Peppe <rogpeppe@gmail.com>
-Roland Shoemaker <rolandshoemaker@gmail.com>
-Roman Budnikov <romanyx90@yandex.ru>
-Ron Hashimoto <mail@h2so5.net>
-Ron Minnich <rminnich@gmail.com>
-Ross Chater <rdchater@gmail.com>
-Ross Light <rlight2@gmail.com>
-Rowan Marshall <rowanajmarshall@gmail.com>
-Rowan Worth <sqweek@gmail.com>
-Rudi Kramer <rudi.kramer@gmail.com>
-Russell Haering <russellhaering@gmail.com>
-Ryan Bagwell <ryanbagwell@outlook.com>
-Ryan Boehning <ryan.boehning@apcera.com>
-Ryan Canty <jrcanty@gmail.com>
-Ryan Hitchman <hitchmanr@gmail.com>
-Ryan Lower <rpjlower@gmail.com>
-Ryan Roden-Corrent <ryan@rcorre.net>
-Ryan Seys <ryan@ryanseys.com>
-Ryan Slade <ryanslade@gmail.com>
-Ryan Zhang <ryan.zhang@docker.com>
-Ryoichi KATO <ryo1kato@gmail.com>
-Ryuji Iwata <qt.luigi@gmail.com>
-Ryuma Yoshida <ryuma.y1117@gmail.com>
-Ryuzo Yamamoto <ryuzo.yamamoto@gmail.com>
-S.Çağlar Onur <caglar@10ur.org>
-Sabin Mihai Rapan <sabin.rapan@gmail.com>
-Sakeven Jiang <jc5930@sina.cn>
-Salmān Aljammāz <s@0x65.net>
-Sam Boyer <tech@samboyer.org>
-Sam Hug <samuel.b.hug@gmail.com>
-Sam Whited <sam@samwhited.com>
-Sami Pönkänen <sami.ponkanen@gmail.com>
-Samuele Pedroni <pedronis@lucediurna.net>
-Sanjay Menakuru <balasanjay@gmail.com>
-Sascha Brawer <sascha@brawer.ch>
-Sasha Sobol <sasha@scaledinference.com>
-Scott Barron <scott.barron@github.com>
-Scott Bell <scott@sctsm.com>
-Scott Crunkleton <crunk1@gmail.com>
-Scott Ferguson <scottwferg@gmail.com>
-Scott Lawrence <bytbox@gmail.com>
-Sean Rees <sean@erifax.org>
-Sebastien Binet <seb.binet@gmail.com>
-Sébastien Paolacci <sebastien.paolacci@gmail.com>
-Seiji Takahashi <timaki.st@gmail.com>
-Sergei Skorobogatov <skorobo@rambler.ru>
-Sergey 'SnakE' Gromov <snake.scaly@gmail.com>
-Sergey Lukjanov <me@slukjanov.name>
-Sergey Mishin <sergeymishine@gmail.com>
-Sergey Mudrik <sergey.mudrik@gmail.com>
-Sergey Semin <gray12511@gmail.com>
-Sergio Luis O. B. Correia <sergio@correia.cc>
-Sergiusz Bazanski <bazanski@gmail.com>
-Seth Hoenig <seth.a.hoenig@gmail.com>
-Seth Vargo <sethvargo@gmail.com>
-Shahar Kohanim <skohanim@gmail.com>
-Shamil Garatuev <garatuev@gmail.com>
-Shane Hansen <shanemhansen@gmail.com>
-Shaozhen Ding <dsz0111@gmail.com>
-Shaun Dunning <shaun.dunning@uservoice.com>
-Shawn Smith <shawn.p.smith@gmail.com>
-Shenghou Ma <minux.ma@gmail.com>
-Shengyu Zhang <shengyu.zhang@chaitin.com>
-Shi Han Ng <shihanng@gmail.com>
-Shinji Tanaka <shinji.tanaka@gmail.com>
-Shintaro Kaneko <kaneshin0120@gmail.com>
-Shivakumar GN <shivakumar.gn@gmail.com>
-Shuai Tan <hopehook.com@gmail.com> <hopehook@qq.com>
-Silvan Jegen <s.jegen@gmail.com>
-Simon Jefford <simon.jefford@gmail.com>
-Simon Rawet <simon@rawet.se>
-Simon Thulbourn <simon+github@thulbourn.com>
-Simon Whitehead <chemnova@gmail.com>
-Sina Siadat <siadat@gmail.com>
-Sokolov Yura <funny.falcon@gmail.com>
-Song Gao <song@gao.io>
-Sourcegraph Inc
-Spencer Nelson <s@spenczar.com>
-Spring Mc <heresy.mc@gmail.com>
-Square, Inc.
-Sridhar Venkatakrishnan <sridhar@laddoo.net>
-StalkR <stalkr@stalkr.net>
-Stan Schwertly <stan@schwertly.com>
-Stanislav Afanasev <php.progger@gmail.com>
-Steeve Morin <steeve.morin@gmail.com>
-Stefan Nilsson <snilsson@nada.kth.se> <trolleriprofessorn@gmail.com>
-Stéphane Travostino <stephane.travostino@gmail.com>
-Stephen Lewis <stephen@sock.org.uk>
-Stephen McQuay <stephen@mcquay.me>
-Stephen Searles <stephens2424@gmail.com>
-Stephen Weinberg <stephen@q5comm.com>
-Steve Gilbert <stevegilbert23@gmail.com>
-Steve McCoy <mccoyst@gmail.com>
-Steve Phillips <elimisteve@gmail.com>
-Steve Streeting <steve@stevestreeting.com>
-Steven Elliot Harris <seharris@gmail.com>
-Steven Erenst <stevenerenst@gmail.com>
-Steven Hartland <steven.hartland@multiplay.co.uk>
-Steven Wilkin <stevenwilkin@gmail.com>
-Stripe, Inc.
-Sukrit Handa <sukrit.handa@utoronto.ca>
-Sunny <me@darkowlzz.space>
-Suriyaa Sundararuban <suriyaasundararuban@gmail.com>
-Suyash <dextrous93@gmail.com>
-Sven Almgren <sven@tras.se>
-Sylvain Zimmer <sylvain@sylvainzimmer.com>
-Syohei YOSHIDA <syohex@gmail.com>
-Szabolcs Nagy <nsz@port70.net>
-Taavi Kivisik <taavi.kivisik@gmail.com>
-Tad Fisher <tadfisher@gmail.com>
-Tad Glines <tad.glines@gmail.com>
-Tailscale Inc.
-Taj Khattra <taj.khattra@gmail.com>
-Takayoshi Nishida <takayoshi.nishida@gmail.com>
-Takeshi YAMANASHI <9.nashi@gmail.com>
-Takuya Ueda <uedatakuya@gmail.com>
-Tal Shprecher <tshprecher@gmail.com>
-Tamir Duberstein <tamird@gmail.com>
-Tao Wang <twang2218@gmail.com>
-Tarmigan Casebolt <tarmigan@gmail.com>
-Taro Aoki <aizu.s1230022@gmail.com>
-Taru Karttunen <taruti@taruti.net>
-Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-Teague Cole <tnc1443@gmail.com>
-Ted Kornish <golang@tedkornish.com>
-Tejasvi Nareddy <tejunareddy@gmail.com>
-Teleport Inc.
-Terin Stock <terinjokes@gmail.com>
-Terrel Shumway <gopher@shumway.us>
-Tetsuo Kiso <tetsuokiso9@gmail.com>
-Thanabodee Charoenpiriyakij <wingyminus@gmail.com>
-Thanatat Tamtan <acoshift@gmail.com>
-Thiago Avelino <t@avelino.xxx>
-Thiago Fransosi Farina <thiago.farina@gmail.com>
-Thomas Alan Copeland <talan.copeland@gmail.com>
-Thomas Bonfort <thomas.bonfort@gmail.com>
-Thomas Bruyelle <thomas.bruyelle@gmail.com>
-Thomas de Zeeuw <thomasdezeeuw@gmail.com>
-Thomas Desrosiers <thomasdesr@gmail.com>
-Thomas Kappler <tkappler@gmail.com>
-Thomas Meson <zllak@hycik.org>
-Thomas Wanielista <tomwans@gmail.com>
-Thorben Krueger <thorben.krueger@gmail.com>
-Thordur Bjornsson <thorduri@secnorth.net>
-Tiago Queiroz <contato@tiago.eti.br>
-Tilman Dilo <tilman.dilo@gmail.com>
-Tim Cooijmans <timcooijmans@gmail.com>
-Tim Cooper <tim.cooper@layeh.com>
-Tim Ebringer <tim.ebringer@gmail.com>
-Tim Heckman <t@heckman.io>
-Tim Henderson <tim.tadh@gmail.com>
-Tim Wright <tenortim@gmail.com>
-Timo Savola <timo.savola@gmail.com>
-Timo Truyts <alkaloid.btx@gmail.com>
-Timothy Studd <tim@timstudd.com>
-Tobias Assarsson <tobias.assarsson@gmail.com>
-Tobias Columbus <tobias.columbus@gmail.com>
-Tobias Klauser <tklauser@distanz.ch>
-Todd Neal <todd@tneal.org>
-Tom Heng <zhm20070928@gmail.com>
-Tom Levy <tomlevy93@gmail.com>
-Tom Limoncelli <tal@whatexit.org>
-Tom Linford <tomlinford@gmail.com>
-Tom Payne <twpayne@gmail.com>
-Tom Thorogood <me+google@tomthorogood.co.uk>
-Tommy Schaefer <tommy.schaefer@teecom.com>
-Tomoya Ishizaki <zaq1tomo@gmail.com>
-Tonis Tiigi <tonistiigi@gmail.com>
-Tony Walker <walkert.uk@gmail.com>
-Tor Andersson <tor.andersson@gmail.com>
-Tormod Erevik Lea <tormodlea@gmail.com>
-Toshiki Shima <hayabusa1419@gmail.com>
-Totoro W <tw19881113@gmail.com>
-Travis Bischel <travis.bischel@gmail.com>
-Travis Cline <travis.cline@gmail.com>
-Trey Lawrence <lawrence.trey@gmail.com>
-Trey Roessig <trey.roessig@gmail.com>
-Trey Tacon <ttacon@gmail.com>
-Tristan Colgate <tcolgate@gmail.com>
-Tristan Ooohry <ooohry@gmail.com>
-Tristan Rice <rice@fn.lc>
-Troels Thomsen <troels@thomsen.io>
-Trung Nguyen <trung.n.k@gmail.com>
-Tudor Golubenco <tudor.g@gmail.com>
-Tugdual Saunier <tugdual.saunier@gmail.com>
-Tuo Shan <sturbo89@gmail.com>
-Tyler Bunnell <tylerbunnell@gmail.com>
-Tyler Treat <ttreat31@gmail.com>
-Uber Technologies
-Ugorji Nwoke <ugorji@gmail.com>
-Ulf Holm Nielsen <doktor@dyregod.dk>
-Ulrich Kunitz <uli.kunitz@gmail.com>
-Upthere, Inc.
-Uriel Mangado <uriel@berlinblue.org>
-Vadim Grek <vadimprog@gmail.com>
-Vadim Vygonets <unixdj@gmail.com>
-Vee Zhang <veezhang@126.com> <vveezhang@gmail.com>
-Vendasta
-Veselkov Konstantin <kostozyb@gmail.com>
-Victor Vrantchan <vrancean+github@gmail.com>
-Vignesh Ramachandra <vickyramachandra@gmail.com>
-Vincent Ambo <tazjin@googlemail.com>
-Vincent Batts <vbatts@hashbangbash.com> <vbatts@gmail.com>
-Vincent Vanackere <vincent.vanackere@gmail.com>
-Vinu Rajashekhar <vinutheraj@gmail.com>
-Vishvananda Ishaya <vishvananda@gmail.com>
-Vitor De Mario <vitordemario@gmail.com>
-Vladimir Mihailenco <vladimir.webdev@gmail.com>
-Vladimir Nikishenko <vova616@gmail.com>
-Vladimir Stefanovic <vladimir.stefanovic@imgtec.com>
-Vladimir Varankin <nek.narqo@gmail.com>
-VMware, Inc.
-Volker Dobler <dr.volker.dobler@gmail.com>
-W. Trevor King <wking@tremily.us>
-Wade Simmons <wade@wades.im>
-Wander Lairson Costa <wcosta@mozilla.com>
-Wayne Ashley Berry <wayneashleyberry@gmail.com>
-Wayne Zuo <wdvxdr1123@gmail.com> <wdvxdr@golangcn.org>
-Weaveworks
-Wèi Cōngruì <crvv.mail@gmail.com>
-Wei Fu <fhfuwei@163.com>
-Wei Guangjing <vcc.163@gmail.com>
-Weichao Tang <tevic.tt@gmail.com>
-Weixie Cui <cuiweixie@gmail.com> <523516579@qq.com>
-Wembley G. Leach, Jr <wembley.gl@gmail.com>
-Wen Yang <yangwen.yw@gmail.com>
-Will Faught <will.faught@gmail.com>
-Will Storey <will@summercat.com>
-Willem van der Schyff <willemvds@gmail.com>
-William Chang <mr.williamchang@gmail.com>
-William Josephson <wjosephson@gmail.com>
-William Orr <will@worrbase.com> <ay1244@gmail.com>
-Wisdom Omuya <deafgoat@gmail.com>
-Wu Yunzhou <yunzhouwu@gmail.com>
-Xi Ruoyao <xry23333@gmail.com>
-Xia Bin <snyh@snyh.org>
-Xing Xing <mikespook@gmail.com>
-Xu Fei <badgangkiller@gmail.com>
-Xudong Zhang <felixmelon@gmail.com>
-Xudong Zheng <7pkvm5aw@slicealias.com>
-Xuyang Kang <xuyangkang@gmail.com>
-Yahoo Inc.
-Yamagishi Kazutoshi <ykzts@desire.sh>
-Yann Kerhervé <yann.kerherve@gmail.com>
-Yann Salaün <yannsalaun1@gmail.com>
-Yao Zhang <lunaria21@gmail.com>
-Yasha Bubnov <girokompass@gmail.com>
-Yasuharu Goto <matope.ono@gmail.com>
-Yasuhiro Matsumoto <mattn.jp@gmail.com>
-Yasuyuki Oka <yasuyk@gmail.com>
-Yazen Shunnar <yazen.shunnar@gmail.com>
-Yestin Sun <ylh@pdx.edu>
-Yissakhar Z. Beck <yissakhar.beck@gmail.com>
-Yo-An Lin <yoanlin93@gmail.com>
-Yongjian Xu <i3dmaster@gmail.com>
-Yorman Arias <cixtords@gmail.com>
-Yoshiyuki Kanno <nekotaroh@gmail.com> <yoshiyuki.kanno@stoic.co.jp>
-Yoshiyuki Mineo <yoshiyuki.mineo@gmail.com>
-Yosuke Akatsuka <yosuke.akatsuka@gmail.com>
-Yuji Yaginuma <yuuji.yaginuma@gmail.com>
-Yukihiro Nishinaka <6elpinal@gmail.com>
-YunHao Zhang <zhangyunhao116@gmail.com> <zhangyunhao@bytedance.com>
-Yury Smolsky <yury@smolsky.by>
-Yusuke Kagiwada <block.rxckin.beats@gmail.com>
-Yuusei Kuwana <kuwana@kumama.org>
-Yuval Pavel Zholkover <paulzhol@gmail.com>
-Zac Bergquist <zbergquist99@gmail.com>
-Zach Bintliff <zbintliff@gmail.com>
-Zach Gershman <zachgersh@gmail.com>
-Zachary Gershman <zgershman@pivotal.io>
-Zak <zrjknill@gmail.com>
-Zakatell Kanda <hi@zkanda.io>
-Zellyn Hunter <zellyn@gmail.com>
-Zemanta d.o.o.
-Zev Goldstein <zev.goldstein@gmail.com>
-Zheng Dayu <davidzheng23@gmail.com>
-Zhongtao Chen <chenzhongtao@126.com>
-Zhou Guangyuan <zhouguangyuan.xian@gmail.com>
-Zhou Peng <p@ctriple.cn>
-Ziad Hatahet <hatahet@gmail.com>
-Zizhao Zhang <btw515wolf2@gmail.com>
-Zorion Arrizabalaga <zorionk@gmail.com>
-Максим Федосеев <max.faceless.frei@gmail.com>
-Роман Хавроненко <hagen1778@gmail.com>
-Тарас Буник <tbunyk@gmail.com>
-Фахриддин Балтаев <faxriddinjon@gmail.com>
-张嵩 <zs349596@gmail.com>
-申习之 <bronze1man@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
deleted file mode 100644
index b0314a0ffb..0000000000
--- a/CONTRIBUTORS
+++ /dev/null
@@ -1,2865 +0,0 @@
-# This is the official list of people who can contribute
-# (and typically have contributed) code to the Go repository.
-# The AUTHORS file lists the copyright holders; this file
-# lists people. For example, Google employees are listed here
-# but not in AUTHORS, because Google holds the copyright.
-#
-# Names should be added to this file only after verifying that
-# the individual or the individual's organization has agreed to
-# the appropriate Contributor License Agreement, found here:
-#
-# http://code.google.com/legal/individual-cla-v1.0.html
-# http://code.google.com/legal/corporate-cla-v1.0.html
-#
-# The agreement for individuals can be filled out on the web.
-
-# Names should be added to this file like so:
-# Individual's name <submission email address>
-# Individual's name <submission email address> <email2> <emailN>
-#
-# An entry with multiple email addresses specifies that the
-# first address should be used in the submit logs and
-# that the other addresses should be recognized as the
-# same person when interacting with Gerrit.
-
-# Please keep the list sorted.
-
-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>
-Aaron Jensen <jensen.aaro@gmail.com>
-Aaron Kemp <kemp.aaron@gmail.com>
-Aaron Patterson <tenderlove@ruby-lang.org>
-Aaron Sheah <aaronsheah@gmail.com>
-Aaron Stein <aaronstein12@gmail.com>
-Aaron Torres <tcboox@gmail.com>
-Aaron Zinman <aaron@azinman.com>
-Aarti Parikh <aarti.parikh@gmail.com>
-Abdullah Al Maruf <mymail.maruf@gmail.com>
-Abe Haskins <abeisgreat@abeisgreat.com>
-Abhinav Gupta <abhinav.g90@gmail.com>
-Adam Azarchs <adam.azarchs@10xgenomics.com>
-Adam Bender <abender@google.com>
-Adam Eijdenberg <adam@continusec.com>
-Adam Harvey <aharvey@php.net>
-Adam Kisala <adam.kisala@gmail.com>
-Adam Langley <agl@golang.org>
-Adam Medzinski <adam.medzinski@gmail.com>
-Adam Mitha <adam.mitha@gmail.com>
-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>
-Adel Rodríguez <adel.rodriguez@leftfieldlabs.com>
-Adin Scannell <ascannell@google.com>
-Aditya Harindar <aditya.harindar@gmail.com>
-Aditya Mukerjee <dev@chimeracoder.net>
-Adrian Hesketh <adrianhesketh@hushmail.com>
-Adrian Nos <nos.adrian@gmail.com>
-Adrian O'Grady <elpollouk@gmail.com>
-Adrien Bustany <adrien-xx-google@bustany.org>
-Adrien Delorme <adrien.delorme@icloud.com>
-Adrien Petel <peteladrien@gmail.com>
-Aécio Júnior <aeciodantasjunior@gmail.com>
-Aeneas Rekkas (arekkas) <aeneas@ory.am>
-Afanasev Stanislav <phpprogger@gmail.com>
-Agis Anastasopoulos <agis.anast@gmail.com>
-Agniva De Sarker <agnivade@yahoo.co.in>
-Ahmed W. Mones <oneofone@gmail.com>
-Ahmet Aktürk <aakturk000@gmail.com>
-Ahmet Alp Balkan <ahmetb@google.com>
-Ahmet Soormally <ahmet@mangomm.co.uk>
-Ahmy Yulrizka <yulrizka@gmail.com>
-Ahsun Ahmed <ahmed.ahsun@gmail.com>
-Aidan Coyle <packrat386@gmail.com>
-Aiden Scandella <ai@uber.com>
-Ainar Garipov <gugl.zadolbal@gmail.com>
-Aishraj Dahal <aishraj@users.noreply.github.com>
-Ajanthan Balachandran <balaajanthan@gmail.com>
-Akhil Indurti <aindurti@gmail.com>
-Akihiro Suda <suda.kyoto@gmail.com>
-Akshat Kumar <seed@mail.nanosouffle.net>
-Al Cutter <al@google.com>
-Alan Braithwaite <alan@ipaddr.org>
-Alan Donovan <adonovan@google.com>
-Alan Shreve <alan@inconshreveable.com>
-Albert Nigmatzianov <albertnigma@gmail.com>
-Albert Strasheim <fullung@gmail.com>
-Albert Teoh <albert.teoh@gmail.com>
-Albert Yu <yukinying@gmail.com>
-Alberto Bertogli <albertito@blitiri.com.ar>
-Alberto Donizetti <alb.donizetti@gmail.com>
-Alberto García Hierro <alberto@garciahierro.com> <alberto.garcia.hierro@gmail.com>
-Alec Benzer <alec.benzer@gmail.com>
-Alejandro García Montoro <alejandro.garciamontoro@gmail.com>
-Aleksa Sarai <cyphar@cyphar.com>
-Aleksandar Dezelin <dezelin@gmail.com>
-Aleksandr Lukinykh <a.lukinykh@xsolla.com>
-Aleksandr Razumov <ar@cydev.ru>
-Alekseev Artem <a.artem060@gmail.com>
-Aleksei Tirman <aleksei.tirman@jetbrains.com>
-Alessandro Arzilli <alessandro.arzilli@gmail.com>
-Alessandro Baffa <alessandro.baffa@gmail.com>
-Alex A Skinner <alex@lx.lc>
-Alex Brainman <alex.brainman@gmail.com>
-Alex Bramley <abramley@google.com>
-Alex Browne <stephenalexbrowne@gmail.com>
-Alex Buchanan <buchanae@gmail.com>
-Alex Carol <alex.carol.c@gmail.com>
-Alex Gaynor <alex@alloy.us>
-Alex Harford <alex.harford@saucelabs.com>
-Alex Hays <alex.hays@leftfieldlabs.com>
-Alex Jin <toalexjin@gmail.com>
-Alex Kohler <alexjohnkohler@gmail.com>
-Alex Myasoedov <msoedov@gmail.com>
-Alex Opie <amtopie@gmail.com>
-Alex Plugaru <alex@plugaru.org> <alexandru.plugaru@gmail.com>
-Alex Schade <39062967+aschade92@users.noreply.github.com>
-Alex Schroeder <alex@gnu.org>
-Alex Sergeyev <abc@alexsergeyev.com>
-Alex Tokarev <aleksator@gmail.com>
-Alex Vaghin <crhyme@google.com>
-Alex Zhirov <azhirov@google.com>
-Alexander Demakin <alexander.demakin@gmail.com>
-Alexander Döring <email@alexd.ch>
-Alexander F Rødseth <alexander.rodseth@appeartv.com>
-Alexander Greim <alexxx@iltempo.de>
-Alexander Guz <kalimatas@gmail.com>
-Alexander Kauer <alexander@affine.space>
-Alexander Klauer <Alexander.Klauer@googlemail.com>
-Alexander Kucherenko <alxkchr@gmail.com>
-Alexander Larsson <alexander.larsson@gmail.com>
-Alexander Lourier <aml@rulezz.ru>
-Alexander Melentyev <alexander@melentyev.org>
-Alexander Menzhinsky <amenzhinsky@gmail.com>
-Alexander Morozov <lk4d4math@gmail.com>
-Alexander Neumann <alexander@bumpern.de>
-Alexander Nohe <alex.nohe427@gmail.com>
-Alexander Orlov <alexander.orlov@loxal.net>
-Alexander Pantyukhin <apantykhin@gmail.com>
-Alexander Polcyn <apolcyn@google.com>
-Alexander Rakoczy <alex@golang.org>
-Alexander Reece <awreece@gmail.com>
-Alexander Surma <surma@surmair.de>
-Alexander Yastrebov <yastrebov.alex@gmail.com>
-Alexander Zhavnerchik <alex.vizor@gmail.com>
-Alexander Zillion <alex@alexzillion.com>
-Alexander Zolotov <goldifit@gmail.com>
-Alexandr Mayorskiy <a.mayorskiy@corp.mail.ru>
-Alexandre Cesaro <alexandre.cesaro@gmail.com>
-Alexandre Fiori <fiorix@gmail.com>
-Alexandre Maari <draeron@gmail.com>
-Alexandre Normand <alexandre.normand@gmail.com>
-Alexandre Parentea <aubonbeurre@gmail.com>
-Alexandre Viau <alexandre@alexandreviau.net>
-Alexandru Moșoi <brtzsnr@gmail.com>
-Alexei Sholik <alcosholik@gmail.com>
-Alexey Alexandrov <aalexand@google.com>
-Alexey Borzenkov <snaury@gmail.com>
-Alexey Naidonov <alexey.naidyonov@gmail.com>
-Alexey Neganov <neganovalexey@gmail.com>
-Alexey Palazhchenko <alexey.palazhchenko@gmail.com>
-Alexey Semenyuk <alexsemenyuk88@gmail.com>
-Alexey Vilenskiy <bynovhack@gmail.com>
-Alexis Hildebrandt <surryhill@gmail.com>
-Alexis Hunt <lexer@google.com>
-Alexis Imperial-Legrand <ail@google.com>
-Ali Farooq <ali.farooq0@pm.me>
-Ali Rizvi-Santiago <arizvisa@gmail.com>
-Aliaksandr Valialkin <valyala@gmail.com>
-Alice Merrick <amerrick@google.com>
-Alif Rachmawadi <subosito@gmail.com>
-Allan Guwatudde <guwats10@gmail.com>
-Allan Simon <allan.simon@supinfo.com>
-Allen Li <ayatane@google.com>
-Alok Menghrajani <alok.menghrajani@gmail.com>
-Alwin Doss <alwindoss84@gmail.com>
-Aman Gupta <aman@tmm1.net>
-Amarjeet Anand <amarjeetanandsingh@gmail.com>
-Amelia Downs <adowns@vmware.com>
-Amir Mohammad Saied <amir@gluegadget.com>
-Amit Kumar <mittalmailbox@gmail.com>
-Amr Mohammed <merodiro@gmail.com>
-Amrut Joshi <amrut.joshi@gmail.com>
-An Long <aisk1988@gmail.com>
-An Xiao <hac@zju.edu.cn>
-Anand K. Mistry <anand@mistry.ninja>
-Ananya Saxena <ananyasaxena1@gmail.com>
-Anatol Pomozov <anatol.pomozov@gmail.com>
-Anders Pearson <anders@columbia.edu>
-Anderson Queiroz <contato@andersonq.eti.br>
-André Carvalho <asantostc@gmail.com>
-Andre Marianiello <andremarianiello@users.noreply.github.com>
-André Martins <aanm90@gmail.com>
-Andre Nathan <andrenth@gmail.com>
-Andrea Nodari <andrea.nodari91@gmail.com>
-Andrea Simonini <andrea.simonini@gmail.com>
-Andrea Spadaccini <spadaccio@google.com>
-Andreas Auernhammer <aead@mail.de>
-Andreas Jellinghaus <andreas@ionisiert.de> <anj@google.com>
-Andreas Litt <andreas.litt@gmail.com>
-Andrei Enshin <b1os@bk.ru>
-Andrei Gherzan <andrei@resin.io>
-Andrei Korzhevskii <a.korzhevskiy@gmail.com>
-Andrei Matei <andrei@cockroachlabs.com>
-Andrei Tudor Călin <mail@acln.ro>
-Andrei Vagin <avagin@google.com>
-Andrei Vieru <euvieru@gmail.com>
-Andres Erbsen <andreser@google.com>
-Andres Lowrie <andres.lowrie@gmail.com>
-Andrew Austin <andrewaclt@gmail.com>
-Andrew Balholm <andybalholm@gmail.com>
-Andrew Benton <andrewmbenton@gmail.com>
-Andrew Bonventre <andybons@chromium.org>
-Andrew Braunstein <awbraunstein@gmail.com>
-Andrew Bursavich <abursavich@gmail.com>
-Andrew Ekstedt <andrew.ekstedt@gmail.com>
-Andrew Etter <andrew.etter@gmail.com>
-Andrew G. Morgan <agm@google.com>
-Andrew Gerrand <adg@golang.org>
-Andrew Harding <andrew@spacemonkey.com>
-Andrew Jackura <ajackura@google.com>
-Andrew Kemm <andrewkemm@gmail.com>
-Andrew LeFevre <capnspacehook@gmail.com>
-Andrew Louis <alouis@digitalocean.com>
-Andrew Lutomirski <andy@luto.us>
-Andrew Medvedev <andrew.y.medvedev@gmail.com>
-Andrew Pilloud <andrewpilloud@igneoussystems.com>
-Andrew Pogrebnoy <absourd.noise@gmail.com>
-Andrew Poydence <apoydence@pivotal.io>
-Andrew Pritchard <awpritchard@gmail.com>
-Andrew Radev <andrey.radev@gmail.com>
-Andrew Skiba <skibaa@gmail.com>
-Andrew Stormont <astormont@racktopsystems.com>
-Andrew Stribblehill <ads@wompom.org>
-Andrew Szeto <andrew@jabagawee.com>
-Andrew Todd <andrew.todd@wework.com>
-Andrew Wansink <wansink@uber.com>
-Andrew Werner <andrew@upthere.com> <awerner32@gmail.com>
-Andrew Wilkins <axwalk@gmail.com>
-Andrew Williams <williams.andrew@gmail.com>
-Andrew Z Allen <me@andrewzallen.com>
-Andrey Bokhanko <andreybokhanko@gmail.com>
-Andrey Mirtchovski <mirtchovski@gmail.com>
-Andrey Petrov <andrey.petrov@shazow.net>
-Andrii Soldatenko <andrii.soldatenko@gmail.com>
-Andrii Soluk <isoluchok@gmail.com>
-Andriy Lytvynov <lytvynov.a.v@gmail.com>
-Andrzej Żeżel <andrii.zhezhel@gmail.com>
-Andy Balholm <andy@balholm.com>
-Andy Davis <andy@bigandian.com>
-Andy Finkenstadt <afinkenstadt@zynga.com>
-Andy Lindeman <andy@lindeman.io>
-Andy Maloney <asmaloney@gmail.com>
-Andy Pan <panjf2000@gmail.com> <panjf2000@golangcn.org> <i@andypan.me>
-Andy Walker <walkeraj@gmail.com>
-Andy Wang <cbeuw.andy@gmail.com>
-Andy Williams <andy@andy.xyz>
-Andy Zhao <andyzhao@google.com>
-Andzej Maciusovic <andzej.maciusovic@gmail.com>
-Anfernee Yongkun Gui <anfernee.gui@gmail.com>
-Angelo Bulfone <mbulfone@gmail.com>
-Anh Hai Trinh <anh.hai.trinh@gmail.com>
-Anit Gandhi <anitgandhi@gmail.com>
-Ankit Goyal <ankit3goyal@gmail.com>
-Anmol Sethi <anmol@aubble.com>
-Annirudh Prasad <annirudh@wandb.com>
-Anschel Schaffer-Cohen <anschelsc@gmail.com>
-Anthony Alves <cvballa3g0@gmail.com>
-Anthony Canino <anthony.canino1@gmail.com>
-Anthony Eufemio <anthony.eufemio@gmail.com>
-Anthony Fok <foka@debian.org>
-Anthony Martin <ality@pbrane.org>
-Anthony Sottile <asottile@umich.edu>
-Anthony Starks <ajstarks@gmail.com>
-Anthony Voutas <voutasaurus@gmail.com>
-Anthony Woods <awoods@raintank.io>
-Antoine GIRARD <sapk@sapk.fr>
-Antoine Martin <antoine97.martin@gmail.com>
-Anton Gyllenberg <anton@iki.fi>
-Anton Kuklin <anton.a.kuklin@gmail.com>
-Antonin Amand <antonin.amand@gmail.com>
-Antonio Antelo <aantelov87@gmail.com>
-Antonio Bibiano <antbbn@gmail.com>
-Antonio Garcia <garcia.olais@gmail.com>
-Antonio Huete Jimenez <tuxillo@quantumachine.net>
-Antonio Murdaca <runcom@redhat.com>
-Antonio Ojea <antonio.ojea.garcia@gmail.com>
-Antonio Troina <thoeni@gmail.com>
-Anze Kolar <me@akolar.com>
-Aofei Sheng <aofei@aofeisheng.com>
-Apisak Darakananda <pongad@gmail.com>
-Aram Hăvărneanu <aram@mgk.ro>
-Araragi Hokuto <kanseihonbucho@protonmail.com>
-Arash Bina <arash@arash.io>
-Archana Ravindar <aravind5@in.ibm.com>
-Arda Güçlü <ardaguclu@gmail.com>
-Areski Belaid <areski@gmail.com>
-Ariel Mashraki <ariel@mashraki.co.il>
-Arkadi Pyuro <arkadi@google.com>
-Arlo Breault <arlolra@gmail.com>
-Arnaud Ysmal <arnaud.ysmal@gmail.com>
-Arne Hormann <arnehormann@gmail.com>
-Arnout Engelen <arnout@bzzt.net>
-Aron Nopanen <aron.nopanen@gmail.com>
-Arran Walker <arran.walker@fiveturns.org>
-Artem Alekseev <artem.alekseev@intel.com>
-Artem Khvastunov <artem.khvastunov@jetbrains.com>
-Artem Kolin <artemkaxboy@gmail.com>
-Arthur Fabre <arthur@arthurfabre.com>
-Arthur Khashaev <arthur@khashaev.ru>
-Artur M. Wolff <artur.m.wolff@gmail.com>
-Artyom Pervukhin <artyom.pervukhin@gmail.com>
-Arvindh Rajesh Tamilmani <art@a-30.net>
-Ashish Bhate <ab.listsubs@gmail.com>
-Ashish Gandhi <ag@ashishgandhi.org>
-Asim Shankar <asimshankar@gmail.com>
-Assel Meher <asselmeher@gmail.com>
-Atin Malaviya <amalaviy@akamai.com>
-Ato Araki <ato.araki@gmail.com>
-Atsushi Toyama <atsushi.tohyama.160.333@gmail.com>
-Audrey Lim <audreylh@gmail.com>
-Audrius Butkevicius <audrius.butkevicius@gmail.com>
-Augusto Roman <aroman@gmail.com>
-Aulus Egnatius Varialus <varialus@gmail.com>
-Aurélien Rainone <aurelien.rainone@gmail.com>
-Aurélio A. Heckert <aurium@gmail.com>
-Austin Clements <austin@google.com> <aclements@csail.mit.edu>
-Avi Flax <avi@timehop.com>
-Aviv Klasquin Komissar <avivklas@gmail.com>
-awaw fumin <awawfumin@gmail.com>
-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>
-Ayzat Sadykov <ayzat.ziko.93@gmail.com>
-Azat Kaumov <kaumov.a.r@gmail.com>
-Baiju Muthukadan <baiju.m.mail@gmail.com>
-Balaram Makam <bmakam.qdt@qualcommdatacenter.com>
-Balazs Lecz <leczb@google.com>
-Baokun Lee <nototon@gmail.com> <bk@golangcn.org>
-Barnaby Keene <accounts@southcla.ws>
-Bartłomiej Klimczak <bartlomiej.klimczak88@gmail.com>
-Bartosz Grzybowski <melkorm@gmail.com>
-Bartosz Oler <brtsz@google.com>
-Bassam Ojeil <bojeil@google.com>
-Bastian Ike <bastian.ike@gmail.com>
-Ben Burkert <ben@benburkert.com>
-Ben Cartwright-Cox <Ben@Benjojo.co.uk>
-Ben Eitzen <eitzenb@golang.org>
-Ben Fried <ben.fried@gmail.com>
-Ben Haines <bhainesva@gmail.com>
-Ben Hoyt <benhoyt@gmail.com>
-Ben Hutchings <ben.hutchings@essensium.com>
-Ben Kraft <benkraft@khanacademy.org>
-Ben Laurie <ben@links.org> <benl@google.com>
-Ben Lubar <ben.lubar@gmail.com>
-Ben Lynn <benlynn@gmail.com>
-Ben Olive <sionide21@gmail.com>
-Ben Schwartz <bemasc@google.com>
-Ben Shi <powerman1st@163.com> <ben.shi@streamcomputing.com>
-Ben Toews <mastahyeti@gmail.com>
-Benjamin Barenblat <bbaren@google.com>
-Benjamin Black <b@b3k.us>
-Benjamin Cable <cable.benjamin@gmail.com>
-Benjamin Hsieh <tanookiben@users.noreply.github.com>
-Benjamin Peterson <benjamin@python.org>
-Benjamin Prosnitz <bprosnitz@google.com>
-Benjamin Wester <bwester@squareup.com>
-Benjamin Wuethrich <benjamin.wuethrich@gmail.com>
-Benny Siegert <bsiegert@gmail.com>
-Benoit Sigoure <tsunanet@gmail.com>
-Berengar Lehr <Berengar.Lehr@gmx.de>
-Berkant Ipek <41230766+0xbkt@users.noreply.github.com>
-Beth Brown <ecbrown@google.com>
-Bharath Kumar Uppala <uppala.bharath@gmail.com>
-Bharath Thiruveedula <tbharath91@gmail.com>
-Bhavin Gandhi <bhavin7392@gmail.com>
-Bill Neubauer <wcn@golang.org> <wcn@google.com> <bill.neubauer@gmail.com>
-Bill O'Farrell <billo@ca.ibm.com>
-Bill Prin <waprin@google.com>
-Bill Thiede <couchmoney@gmail.com>
-Bill Zissimopoulos <billziss@navimatics.com>
-Billie Harold Cleek <bhcleek@gmail.com>
-Billy Lynch <wlynch@google.com>
-Billy Zaelani Malik <m.billyzaelani@gmail.com>
-Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
-Bjorn Tillenius <bjorn@tillenius.me>
-Bjorn Tipling <bjorn.tipling@gmail.com>
-Blain Smith <rebelgeek@blainsmith.com>
-Blake Gentry <blakesgentry@gmail.com>
-Blake Mesdag <blakemesdag@gmail.com>
-Blake Mizerany <blake.mizerany@gmail.com>
-Blixt <me@blixt.nyc>
-Bob Briski <rbriski@gmail.com>
-Bob McNaughton <bobmcn@gmail.com>
-Bob Potter <bobby.potter@gmail.com>
-Bobby DeSimone <bobbydesimone@gmail.com>
-Bobby Powers <bobbypowers@gmail.com>
-Boqin Qin <bobbqqin@gmail.com>
-Boris Nagaev <nagaev@google.com>
-Borja Clemente <borja.clemente@gmail.com>
-Boshi Lian <bolian@microsoft.com>
-Brad Burch <brad.burch@gmail.com>
-Brad Erickson <bderickson@gmail.com>
-Brad Fitzpatrick <bradfitz@golang.org> <bradfitz@gmail.com>
-Brad Garcia <bgarcia@golang.org>
-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>
-Branden J. Brown <zephyrtronium@gmail.com>
-Brandon Bennett <bbennett@fb.com>
-Brandon Gilmore <varz@google.com>
-Brandon Philips <brandon@ifup.org>
-Brandon Ryan <bjryan19@gmail.com>
-Brave Cow <rsr715@gmail.com>
-Brayden Cloud <bcloud@google.com>
-Brendan Daniel Tracey <tracey.brendan@gmail.com>
-Brendan O'Dea <bod@golang.org>
-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>
-Brian Kessler <brian.m.kessler@gmail.com>
-Brian Ketelsen <bketelsen@gmail.com>
-Brian Slesinsky <skybrian@google.com>
-Brian Smith <ohohvi@gmail.com>
-Brian Starke <brian.starke@gmail.com>
-Bruce Huang <helbingxxx@gmail.com>
-Bryan Alexander <Kozical@msn.com>
-Bryan Boreham <bjboreham@gmail.com>
-Bryan C. Mills <bcmills@google.com>
-Bryan Chan <bryan.chan@ca.ibm.com>
-Bryan Ford <brynosaurus@gmail.com>
-Bryan Heden <b.heden@gmail.com>
-Bulat Gaifullin <gaifullinbf@gmail.com>
-Burak Guven <bguven@gmail.com>
-Byoungchan Lee <daniel.l@hpcnt.com>
-Caine Tighe <arctanofyourface@gmail.com>
-Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
-Caleb Martinez <accounts@calebmartinez.com>
-Caleb Spare <cespare@gmail.com>
-Carl Chatfield <carlchatfield@gmail.com>
-Carl Henrik Lunde <chlunde@ifi.uio.no>
-Carl Jackson <carl@stripe.com>
-Carl Johnson <me@carlmjohnson.net>
-Carl Mastrangelo <notcarl@google.com>
-Carl Menezes <carleeto@gmail.com>
-Carl Shapiro <cshapiro@google.com> <cshapiro@golang.org>
-Carlisia Campos <carlisia@grokkingtech.io>
-Carlo Alberto Ferraris <cafxx@strayorange.com>
-Carlos Alexandro Becker <caarlos0@gmail.com>
-Carlos Amedee <carlos@golang.org>
-Carlos Castillo <cookieo9@gmail.com>
-Carlos Cirello <uldericofilho@gmail.com>
-Carlos Eduardo <me@carlosedp.com>
-Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
-Carlos Iriarte <ciriarte@gmail.com>
-Carlos Souza <carloshrsouza@gmail.com>
-Carolyn Van Slyck <me@carolynvanslyck.com>
-Carrie Bynon <cbynon@gmail.com>
-Carson Hoffman <c@rsonhoffman.com>
-Cary Hull <chull@google.com>
-Case Nelson <case.nelson@gmail.com>
-Casey Callendrello <squeed@gmail.com>
-Casey Marshall <casey.marshall@gmail.com>
-Catalin Nicutar <cnicutar@google.com>
-Catalin Patulea <catalinp@google.com>
-Cathal O'Callaghan <cathalsocallaghan@gmail.com>
-Cedric Staub <cs@squareup.com>
-Cezar Sá Espinola <cezarsa@gmail.com>
-Chad Rosier <mrosier.qdt@qualcommdatacenter.com>
-ChaiShushan <chaishushan@gmail.com>
-Changkun Ou <hi@changkun.de> <hi@changkun.us>
-Channing Kimble-Brown <channing@golang.org>
-Chao Xu <xuchao@google.com>
-Chaoqun Han <hanssccv@gmail.com>
-Charles Fenwick Elliott <Charles@FenwickElliott.io>
-Charles Kenney <charlesc.kenney@gmail.com>
-Charles L. Dorian <cldorian@gmail.com>
-Charles Lee <zombie.fml@gmail.com>
-Charles Weill <weill@google.com>
-Charlie Getzen <charlie@bolt.com>
-Charlie Moog <moogcharlie@gmail.com>
-Charlotte Brandhorst-Satzkorn <catzkorn@gmail.com>
-Chauncy Cullitan <chauncyc@google.com>
-Chen Zhidong <njutczd@gmail.com>
-Chen Zhihan <energiehund@gmail.com>
-Cheng Wang <wangchengiscool@gmail.com>
-Cherry Mui <cherryyz@google.com>
-Chew Choon Keat <choonkeat@gmail.com>
-Chia-Chi Hsu <wuchi5457@gmail.com>
-Chiawen Chen <golopot@gmail.com>
-Chirag Sukhala <cchirag77@gmail.com>
-Cholerae Hu <choleraehyq@gmail.com>
-Chotepud Teo <AlexRouSg@users.noreply.github.com>
-Chressie Himpel <chressie@google.com>
-Chris Ball <chris@printf.net>
-Chris Biscardi <chris@christopherbiscardi.com>
-Chris Broadfoot <cbro@golang.org>
-Chris Dollin <ehog.hedge@gmail.com>
-Chris Farmiloe <chrisfarms@gmail.com>
-Chris Hines <chris.cs.guy@gmail.com>
-Chris Howey <howeyc@gmail.com>
-Chris Hundt <hundt@google.com>
-Chris Jones <chris@cjones.org> <chris.jones.yar@gmail.com>
-Chris Kastorff <encryptio@gmail.com>
-Chris Le Roy <brompwnie@users.noreply.github.com>
-Chris Lennert <calennert@gmail.com>
-Chris Liles <caveryliles@gmail.com>
-Chris Manghane <cmang@golang.org>
-Chris Marchesi <chrism@vancluevertech.com>
-Chris McGee <sirnewton_01@yahoo.ca> <newton688@gmail.com>
-Chris Raynor <raynor@google.com>
-Chris Roche <rodaine@gmail.com>
-Chris Smith <chrsmith@users.noreply.github.com>
-Chris Stockton <chrisstocktonaz@gmail.com>
-Chris Taylor <taylorza@gmail.com>
-Chris Waldon <christopher.waldon.dev@gmail.com>
-Chris Zou <chriszou@ca.ibm.com>
-Christian Alexander <christian@linux.com>
-Christian Couder <chriscool@tuxfamily.org>
-Christian Himpel <chressie@googlemail.com> <chressie@gmail.com>
-Christian Muehlhaeuser <muesli@gmail.com>
-Christian Pellegrin <chri@evolware.org>
-Christian R. Petrin <christianpetrin@gmail.com>
-Christian Svensson <blue@cmd.nu>
-Christine Hansmann <chhansmann@gmail.com>
-Christoffer Buchholz <christoffer.buchholz@gmail.com>
-Christoph Blecker <admin@toph.ca>
-Christoph Hack <christoph@tux21b.org>
-Christopher Cahoon <chris.cahoon@gmail.com>
-Christopher Guiney <chris@guiney.net>
-Christopher Henderson <chris@chenderson.org>
-Christopher Hlubek <christopher.hlubek@networkteam.com>
-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>
-Christopher Swenson <cswenson@google.com>
-Christopher Thomas <53317512+chrisssthomas@users.noreply.github.com>
-Christopher Wedgwood <cw@f00f.org>
-Christos Zoulas <christos@zoulas.com> <zoulasc@gmail.com>
-Christy Perez <christy@linux.vnet.ibm.com>
-CL Sung <clsung@gmail.com> <cl_sung@htc.com>
-Clément Chigot <clement.chigot@atos.net>
-Clement Skau <clementskau@gmail.com>
-Clint J. Edwards <clint.j.edwards@gmail.com>
-Cody Oss <the.cody.oss@gmail.com>
-Colby Ranger <cranger@google.com>
-Colin Arnott <colin@urandom.co.uk>
-Colin Cross <ccross@android.com>
-Colin Edwards <colin@recursivepenguin.com>
-Colin Kennedy <moshen.colin@gmail.com>
-Colin Nelson <colnnelson@google.com>
-Colin Rice <clr@google.com>
-Conrad Irwin <conrad.irwin@gmail.com>
-Conrad Meyer <cemeyer@cs.washington.edu>
-Conrado Gouvea <conradoplg@gmail.com>
-Constantin Konstantinidis <constantinkonstantinidis@gmail.com>
-Corey Thomasson <cthom.lists@gmail.com>
-Corne van der Plas <vdplas@gmail.com>
-Cosmos Nicolaou <cnicolaou@google.com>
-Costin Chirvasuta <ctin@google.com>
-Craig Citro <craigcitro@google.com>
-Cristian Staretu <unclejacksons@gmail.com>
-Cristo García <cgg.code@gmail.com>
-cui fliter <imcusg@gmail.com>
-Cuihtlauac ALVARADO <cuihtlauac.alvarado@orange.com>
-Cuong Manh Le <cuong@orijtech.com>
-Curtis La Graff <curtis@lagraff.me>
-Cyrill Schumacher <cyrill@schumacher.fm>
-Dai Jie <gzdaijie@gmail.com>
-Dai Wentao <dwt136@gmail.com>
-Daisuke Fujita <dtanshi45@gmail.com>
-Daisuke Suzuki <daisuzu@gmail.com>
-Daker Fernandes Pinheiro <daker.fernandes.pinheiro@intel.com>
-Damian Gryski <dgryski@gmail.com>
-Damien Lespiau <damien.lespiau@gmail.com> <damien.lespiau@intel.com>
-Damien Mathieu <42@dmathieu.com>
-Damien Neil <dneil@google.com>
-Damien Tournoud <damien@platform.sh>
-Dan Ballard <dan@mindstab.net>
-Dan Caddigan <goldcaddy77@gmail.com>
-Dan Callahan <dan.callahan@gmail.com>
-Dan Harrington <harringtond@google.com>
-Dan Jacques <dnj@google.com>
-Dan Johnson <computerdruid@google.com>
-Dan McArdle <dmcardle@google.com>
-Dan Peterson <dpiddy@gmail.com>
-Dan Pupius <dan@medium.com>
-Dan Scales <danscales@google.com>
-Dan Sinclair <dan.sinclair@gmail.com>
-Daniel Cohen <dcohen@gatech.edu>
-Daniel Cormier <danielc@knowbe4.com>
-Daniël de Kok <me@danieldk.eu>
-Daniel Fleischman <danielfleischman@gmail.com>
-Daniel Ingram <ingramds@appstate.edu>
-Daniel Johansson <dajo2002@gmail.com>
-Daniel Kerwin <d.kerwin@gini.net>
-Daniel Kessler <dkess@google.com>
-Daniel Krech <eikeon@eikeon.com>
-Daniel Kumor <rdkumor@gmail.com>
-Daniel Langner <s8572327@gmail.com>
-Daniel Lidén <daniel.liden.87@gmail.com>
-Daniel Lublin <daniel@lublin.se>
-Daniel Mangum <georgedanielmangum@gmail.com>
-Daniel Marshall <daniel.marshall2@ibm.com>
-Daniel Martí <mvdan@mvdan.cc>
-Daniel McCarney <cpu@letsencrypt.org>
-Daniel Morsing <daniel.morsing@gmail.com>
-Daniel Nadasi <dnadasi@google.com>
-Daniel Nephin <dnephin@gmail.com>
-Daniel Ortiz Pereira da Silva <daniel.particular@gmail.com>
-Daniel S. Fava <danielsfava@gmail.com>
-Daniel Skinner <daniel@dasa.cc>
-Daniel Speichert <daniel@speichert.pl>
-Daniel Theophanes <kardianos@gmail.com>
-Daniel Upton <daniel@floppy.co>
-Daniela Petruzalek <daniela.petruzalek@gmail.com>
-Danish Dua <danishdua@google.com>
-Danish Prakash <grafitykoncept@gmail.com>
-Danny Rosseau <daniel.rosseau@gmail.com>
-Daria Kolistratova <daria.kolistratova@intel.com>
-Darien Raymond <admin@v2ray.com>
-Darren Elwood <darren@textnode.com>
-Darren Grant <darren.e.grant@gmail.com>
-Darren McCleary <darren.rmc@gmail.com>
-Darshan Parajuli <parajulidarshan@gmail.com>
-Datong Sun <dndx@idndx.com>
-Dave Borowitz <dborowitz@google.com>
-Dave Bort <dbort@golang.org>
-Dave Cheney <dave@cheney.net>
-Dave Day <djd@golang.org>
-Dave Grijalva <dgrijalva@ngmoco.com>
-Dave MacFarlane <driusan@gmail.com>
-Dave Pifke <dave@pifke.org>
-Dave Russell <forfuncsake@gmail.com>
-David Anderson <danderson@google.com>
-David Barnett <dbarnett@google.com>
-David Benjamin <davidben@google.com>
-David Black <dblack@atlassian.com>
-David Bond <davidsbond93@gmail.com>
-David Brophy <dave@brophy.uk>
-David Bürgin <676c7473@gmail.com>
-David Calavera <david.calavera@gmail.com>
-David Carlier <devnexen@gmail.com>
-David Carter <fresco.raja@gmail.com>
-David Chase <drchase@google.com>
-David Covert <davidhcovert@gmail.com>
-David Crawshaw <david.crawshaw@zentus.com> <crawshaw@google.com> <crawshaw@golang.org>
-David du Colombier <0intro@gmail.com>
-David Finkel <david.finkel@gmail.com>
-David Forsythe <dforsythe@gmail.com>
-David G. Andersen <dave.andersen@gmail.com>
-David Glasser <glasser@meteor.com>
-David Golden <david@autopragmatic.com>
-David Heuschmann <heuschmann.d@gmail.com>
-David Howden <dhowden@gmail.com>
-David Hubbard <dsp@google.com>
-David Jakob Fritz <david.jakob.fritz@gmail.com>
-David Jones <dxjones@gmail.com>
-David Lazar <lazard@golang.org>
-David Leon Gil <coruus@gmail.com>
-David McLeish <davemc@google.com>
-David Ndungu <dnjuguna@gmail.com>
-David NewHamlet <david@newhamlet.com>
-David Presotto <presotto@gmail.com>
-David Qu <davidqu12345@gmail.com>
-David R. Jenni <david.r.jenni@gmail.com>
-David Sansome <me@davidsansome.com>
-David Stainton <dstainton415@gmail.com>
-David Symonds <dsymonds@golang.org>
-David Thomas <davidthomas426@gmail.com>
-David Timm <dtimm@pivotal.io>
-David Titarenco <david.titarenco@gmail.com>
-David Tolpin <david.tolpin@gmail.com>
-David Url <david@urld.io>
-David Volquartz Lebech <david@lebech.info>
-David Wimmer <davidlwimmer@gmail.com>
-Davies Liu <davies.liu@gmail.com>
-Davor Kapsa <davor.kapsa@gmail.com>
-Dean Eigenmann <7621705+decanus@users.noreply.github.com>
-Dean Prichard <dean.prichard@gmail.com>
-Deepak Jois <deepak.jois@gmail.com>
-Deepak S <deepakspavoodath@gmail.com>
-Denis Bernard <db047h@gmail.com>
-Denis Brandolini <denis.brandolini@gmail.com>
-Denis Isaev <idenx@yandex.com>
-Denis Nagorny <denis.nagorny@intel.com>
-Dennis Kuhnert <mail.kuhnert@gmail.com>
-Denys Honsiorovskyi <honsiorovskyi@gmail.com>
-Denys Smirnov <denis.smirnov.91@gmail.com>
-Derek Buitenhuis <derek.buitenhuis@gmail.com>
-Derek Che <drc@yahoo-inc.com>
-Derek McGowan <derek@mcgstyle.net>
-Derek Parker <parkerderek86@gmail.com>
-Derek Phan <derekphan94@gmail.com>
-Derek Shockey <derek.shockey@gmail.com>
-Dev Ojha <dojha12@gmail.com>
-Dev Zhoujun <dev.zhoujun@gmail.com>
-Devon H. O'Dell <devon.odell@gmail.com>
-Dhaivat Pandit <dhaivatpandit@gmail.com>
-Dhananjay Nakrani <dhananjayn@google.com>
-Dhiru Kholia <dhiru.kholia@gmail.com>
-Dhruvdutt Jadhav <dhruvdutt.jadhav@gmail.com>
-Di Xiao <dixiao@google.com>
-Didier Spezia <didier.06@gmail.com>
-Diego Medina <fmpwizard@gmail.com>
-Diego Siqueira <diego9889@gmail.com>
-Dieter Plaetinck <dieter@raintank.io>
-Dilyn Corner <dilyn.corner@gmail.com>
-Dimitri Sokolyuk <sokolyuk@gmail.com>
-Dimitri Tcaciuc <dtcaciuc@gmail.com>
-Dina Garmash <dgrmsh@gmail.com>
-Diogo Pinela <diogoid7400@gmail.com>
-Dirk Gadsden <dirk@esherido.com>
-Diwaker Gupta <diwakergupta@gmail.com>
-Dmitri Goutnik <dgoutnik@gmail.com>
-Dmitri Popov <operator@cv.dp-net.com>
-Dmitri Shuralyov <dmitshur@golang.org> <dmitri@shuralyov.com>
-Dmitrii Okunev <xaionaro@gmail.com>
-Dmitriy Cherchenko <dcherchenko@gmail.com>
-Dmitriy Dudkin <dudkin.dmitriy@gmail.com>
-Dmitriy Shelenin <deemok@googlemail.com> <deemok@gmail.com>
-Dmitriy Vyukov <dvyukov@google.com>
-Dmitry Chestnykh <dchest@gmail.com>
-Dmitry Doroginin <doroginin@gmail.com>
-Dmitry Mottl <dmitry.mottl@gmail.com>
-Dmitry Neverov <dmitry.neverov@gmail.com>
-Dmitry Savintsev <dsavints@gmail.com>
-Dmitry Yakunin <nonamezeil@gmail.com>
-Dmytro Shynkevych <dm.shynk@gmail.com>
-Doga Fincan <doga@icloud.com>
-Domas Tamašauskas <puerdomus@gmail.com>
-Domen Ipavec <domen@ipavec.net>
-Dominic Della Valle <ddvpublic@Gmail.com>
-Dominic Green <dominicgreen1@gmail.com>
-Dominik Honnef <dominik.honnef@gmail.com>
-Dominik Vogt <vogt@linux.vnet.ibm.com>
-Don Byington <don@dbyington.com>
-Donald Huang <don.hcd@gmail.com>
-Dong-hee Na <donghee.na92@gmail.com>
-Donovan Hide <donovanhide@gmail.com>
-Doug Anderson <douga@google.com>
-Doug Fawley <dfawley@google.com>
-Douglas Danger Manley <doug.manley@gmail.com>
-Drew Flower <drewvanstone@gmail.com>
-Drew Hintz <adhintz@google.com>
-Drew Richardson <drewrichardson@gmail.com>
-Duco van Amstel <duco.vanamstel@gmail.com>
-Duncan Holm <mail@frou.org>
-Dustin Carlino <dcarlino@google.com>
-Dustin Herbison <djherbis@gmail.com>
-Dustin Long <dustmop@gmail.com>
-Dustin Sallings <dsallings@gmail.com>
-Dustin Shields-Cloues <dcloues@gmail.com>
-Dustin Spicuzza <dustin.spicuzza@gmail.com>
-Dvir Volk <dvir@everything.me> <dvirsky@gmail.com>
-Dylan Waits <dylan@waits.io>
-Ed Schouten <ed@nuxi.nl>
-Edan Bedrik <3d4nb3@gmail.com>
-Eddie Scholtz <escholtz@google.com>
-Eden Li <eden.li@gmail.com>
-Eduard Urbach <e.urbach@gmail.com>
-Eduardo Ramalho <eduardo.ramalho@gmail.com>
-Eduardo Villaseñor <evillasrmx@gmail.com>
-Edward Muller <edwardam@interlix.com>
-Egon Elbre <egonelbre@gmail.com>
-Ehren Kret <ehren.kret@gmail.com>
-Eitan Adler <lists@eitanadler.com>
-Eivind Uggedal <eivind@uggedal.com>
-El Mostafa Idrassi <el.mostafa.idrassi@gmail.com>
-Elbert Fliek <efliek@gmail.com>
-Eldar Rakhimberdin <ibeono@gmail.com>
-Elena Grahovac <elena@grahovac.me>
-Eli Bendersky <eliben@google.com>
-Elias Naur <mail@eliasnaur.com> <elias.naur@gmail.com>
-Elliot Morrison-Reed <elliotmr@gmail.com>
-Ellison Leão <ellisonleao@gmail.com>
-Elvina Yakubova <elvinayakubova@gmail.com>
-Emerson Lin <linyintor@gmail.com>
-Emil Bektimirov <lefelys@gmail.com>
-Emil Hessman <emil@hessman.se>
-Emil Mursalimov <mursalimovemeel@gmail.com>
-Emilien Kenler <hello@emilienkenler.com>
-Emmanuel Odeke <emm.odeke@gmail.com> <odeke@ualberta.ca>
-Emrecan Bati <emrecanbati@gmail.com>
-Eno Compton <enocom@google.com>
-Eoghan Sherry <ejsherry@gmail.com>
-Eric Biggers <ebiggers@google.com>
-Eric Brown <browne@vmware.com>
-Eric Chiang <eric.chiang.m@gmail.com>
-Eric Clark <zerohp@gmail.com>
-Eric Daniels <eric@erdaniels.com>
-Eric Engestrom <eric@engestrom.ch>
-Eric Garrido <ekg@google.com>
-Eric Koleda <ekoleda+devrel@google.com>
-Eric Lagergren <ericscottlagergren@gmail.com>
-Eric Milliken <emilliken@gmail.com>
-Eric Pauley <eric@pauley.me>
-Eric Ponce <tricokun@gmail.com>
-Eric Rescorla <ekr@rtfm.com>
-Eric Roshan-Eisner <eric.d.eisner@gmail.com>
-Eric Rutherford <erutherford@gmail.com>
-Eric Rykwalder <e.rykwalder@gmail.com>
-Eric Wang <wangchaogo1990@gmail.com>
-Erick Tryzelaar <etryzelaar@google.com>
-Erik Aigner <aigner.erik@gmail.com>
-Erik Dubbelboer <erik@dubbelboer.com>
-Erik St. Martin <alakriti@gmail.com>
-Erik Staab <estaab@google.com>
-Erik Westrup <erik.westrup@gmail.com>
-Erin Masatsugu <erin.masatsugu@gmail.com>
-Ernest Chiang <ernest_chiang@htc.com>
-Erwin Oegema <blablaechthema@hotmail.com>
-Esko Luontola <esko.luontola@gmail.com>
-Ethan Anderson <eanderson@atlassian.com>
-Ethan Burns <eaburns@google.com>
-Ethan Hur <ethan0311@gmail.com>
-Ethan Miller <eamiller@us.ibm.com>
-Ethan Reesor <ethan.reesor@gmail.com>
-Euan Kemp <euank@euank.com>
-Eugene Formanenko <mo4islona@gmail.com>
-Eugene Kalinin <e.v.kalinin@gmail.com>
-Evan Broder <evan@stripe.com>
-Evan Brown <evanbrown@google.com>
-Evan Digby <evandigby@gmail.com>
-Evan Hicks <evan.hicks2@gmail.com>
-Evan Jones <ej@evanjones.ca>
-Evan Klitzke <evan@eklitzke.org>
-Evan Kroske <evankroske@google.com>
-Evan Martin <evan.martin@gmail.com>
-Evan Phoenix <evan@phx.io>
-Evan Shaw <chickencha@gmail.com>
-Evgeniy Kulikov <tuxuls@gmail.com>
-Evgeniy Polyakov <zbr@ioremap.net>
-Ewan Chou <coocood@gmail.com>
-Ewan Valentine <ewan.valentine89@gmail.com>
-Eyal Posener <posener@gmail.com>
-F. Talha Altınel <talhaaltinel@hotmail.com>
-Fabian Wickborn <fabian@wickborn.net>
-Fabian Zaremba <fabian@youremail.eu>
-Fabio Falzoi <fabio.falzoi84@gmail.com>
-Fabrizio Milo <mistobaan@gmail.com>
-Faiyaz Ahmed <ahmedf@vmware.com>
-Fan Hongjian <fan.howard@gmail.com>
-Fangming Fang <fangming.fang@arm.com>
-Fannie Zhang <fannie.zhang@arm.com>
-Fatih Arslan <fatih@arslan.io>
-Fazal Majid <majid@apsalar.com>
-Fazlul Shahriar <fshahriar@gmail.com>
-Federico Bond <federicobond@gmail.com>
-Federico Guerinoni <guerinoni.federico@gmail.com>
-Federico Simoncelli <fsimonce@redhat.com>
-Fedor Indutny <fedor@indutny.com>
-Fedor Korotkiy <dartslon@gmail.com>
-Felipe Oliveira <felipeweb.programador@gmail.com>
-Felix Bünemann <Felix.Buenemann@gmail.com>
-Felix Cornelius <9767036+fcornelius@users.noreply.github.com>
-Felix Geisendörfer <haimuiba@gmail.com>
-Felix Kollmann <fk@konsorten.de>
-Ferenc Szabo <frncmx@gmail.com>
-Fernandez Ludovic <lfernandez.dev@gmail.com>
-Filip Gruszczyński <gruszczy@gmail.com>
-Filip Haglund <drathier@users.noreply.github.com>
-Filip Stanis <fstanis@google.com>
-Filippo Valsorda <filippo@golang.org> <filippo@cloudflare.com> <hi@filippo.io>
-Firmansyah Adiputra <frm.adiputra@gmail.com>
-Florian Forster <octo@google.com>
-Florian Uekermann <florian@uekermann-online.de> <f1@uekermann-online.de>
-Florian Weimer <fw@deneb.enyo.de>
-Florin Papa <fpapa@google.com>
-Florin Patan <florinpatan@gmail.com>
-Folke Behrens <folke@google.com>
-Ford Hurley <ford.hurley@gmail.com>
-Forest Johnson <forest.n.johnson@gmail.com>
-Francesc Campoy <campoy@golang.org>
-Francesco Guardiani <francescoguard@gmail.com>
-Francesco Renzi <rentziass@gmail.com>
-Francisco Claude <fclaude@recoded.cl>
-Francisco Rojas <francisco.rojas.gallegos@gmail.com>
-Francisco Souza <franciscossouza@gmail.com>
-Frank Chiarulli Jr <frank@frankchiarulli.com>
-Frank Schroeder <frank.schroeder@gmail.com>
-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>
-Frediano Ziglio <freddy77@gmail.com>
-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>
-Gabríel Arthúr Pétursson <gabriel@system.is>
-Gabriel Aszalos <gabriel.aszalos@gmail.com>
-Gabriel Guzman <gabe.guzman@gmail.com>
-Gabriel Nelle <tehsphinx@web.de>
-Gabriel Nicolas Avellaneda <avellaneda.gabriel@gmail.com>
-Gabriel Rosenhouse <rosenhouse@gmail.com>
-Gabriel Russell <gabriel.russell@gmail.com>
-Gabriel Vasile <gabriel.vasile0793@gmail.com>
-Gareth Paul Jones <gpj@foursquare.com>
-Garret Kelly <gdk@google.com>
-Garrick Evans <garrick@google.com>
-Garry McNulty <garrmcnu@gmail.com>
-Gary Burd <gary@beagledreams.com> <gary.burd@gmail.com>
-Gary Elliott <garyelliott@google.com>
-Gaurav Singh <gaurav1086@gmail.com>
-Gaurish Sharma <contact@gaurishsharma.com>
-Gautham Thambidorai <gautham.dorai@gmail.com>
-Gauthier Jolly <gauthier.jolly@gmail.com>
-Gawen Arab <gawen.arab@c.zen.ly>
-Geert-Johan Riemer <gjr19912@gmail.com>
-Genevieve Luyt <genevieve.luyt@gmail.com>
-Gengliang Wang <ltnwgl@gmail.com>
-Geoff Berry <gberry.qdt@qualcommdatacenter.com>
-Geoffroy Lorieux <lorieux.g@gmail.com>
-Geon Kim <geon0250@gmail.com>
-Georg Reinke <guelfey@gmail.com>
-George Gkirtsou <ggirtsou@gmail.com>
-George Hartzell <hartzell@alerce.com>
-George Looshch <looshch@loosh.ch>
-George Shammas <george@shamm.as> <georgyo@gmail.com>
-George Tsilias <tsiliasg@gmail.com>
-Gerasimos (Makis) Maropoulos <kataras2006@hotmail.com>
-Gerasimos Dimitriadis <gedimitr@gmail.com>
-Gergely Brautigam <skarlso777@gmail.com>
-Gernot Vormayr <gvormayr@gmail.com>
-Gert Cuykens <gert.cuykens@gmail.com>
-Getulio Sánchez <valentin2507@gmail.com>
-Ghazni Nattarshah <ghazni.nattarshah@gmail.com>
-Gianguido Sora` <g.sora4@gmail.com>
-Gideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com>
-Giles Lean <giles.lean@pobox.com>
-Giovanni Bajo <rasky@develer.com>
-GitHub User @180909 (70465953) <734461790@qq.com>
-GitHub User @6543 (24977596) <6543@obermui.de>
-GitHub User @aca (50316549) <acadx0@gmail.com>
-GitHub User @ajnirp (1688456) <ajnirp@users.noreply.github.com>
-GitHub User @ajz01 (4744634) <ajzdenek@gmail.com>
-GitHub User @alkesh26 (1019076) <alkesh26@gmail.com>
-GitHub User @andig (184815) <cpuidle@gmx.de>
-GitHub User @andrius4669 (4699695) <andrius4669@gmail.com>
-GitHub User @as (8127015) <as.utf8@gmail.com>
-GitHub User @bakape (7851952) <bakape@gmail.com>
-GitHub User @bgadrian (830001) <aditza8@gmail.com>
-GitHub User @bontequero (2674999) <bontequero@gmail.com>
-GitHub User @cch123 (384546) <buaa.cch@gmail.com>
-GitHub User @chainhelen (7046329) <chainhelen@gmail.com>
-GitHub User @chanxuehong (3416908) <chanxuehong@gmail.com>
-GitHub User @Cluas (10056928) <Cluas@live.cn>
-GitHub User @cncal (23520240) <flycalvin@qq.com>
-GitHub User @DQNEO (188741) <dqneoo@gmail.com>
-GitHub User @Dreamacro (8615343) <chuainian@gmail.com>
-GitHub User @dupoxy (1143957) <dupoxy@users.noreply.github.com>
-GitHub User @EndlessCheng (7086966) <loli.con@qq.com>
-GitHub User @erifan (31343225) <eric.fang@arm.com>
-GitHub User @esell (9735165) <eujon.sellers@gmail.com>
-GitHub User @fatedier (7346661) <fatedier@gmail.com>
-GitHub User @frennkie (6499251) <mail@rhab.de>
-GitHub User @geedchin (11672310) <geedchin@gmail.com>
-GitHub User @GrigoriyMikhalkin (3637857) <grigoriymikhalkin@gmail.com>
-GitHub User @Gusted (25481501) <williamzijl7@hotmail.com>
-GitHub User @hengwu0 (41297446) <41297446+hengwu0@users.noreply.github.com>
-GitHub User @hitzhangjie (3725760) <hit.zhangjie@gmail.com>
-GitHub User @hkhere (33268704) <33268704+hkhere@users.noreply.github.com>
-GitHub User @hqpko (13887251) <whaibin01@hotmail.com>
-GitHub User @Illirgway (5428603) <illirgway@gmail.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 @komisan19 (18901496) <komiyama6219@gmail.com>
-GitHub User @korzhao (64203902) <korzhao95@gmail.com>
-GitHub User @Kropekk (13366453) <kamilkropiewnicki@gmail.com>
-GitHub User @lgbgbl (65756378) <lgbgbl@qq.com>
-GitHub User @lhl2617 (33488131) <l.h.lee2617@gmail.com>
-GitHub User @linguohua (3434367) <lghchinaidea@gmail.com>
-GitHub User @lloydchang (1329685) <lloydchang@gmail.com>
-GitHub User @LotusFenn (13775899) <fenn.lotus@gmail.com>
-GitHub User @luochuanhang (96416201) <chuanhangluo@gmail.com>
-GitHub User @ly303550688 (11519839) <yang.liu636@gmail.com>
-GitHub User @madiganz (18340029) <zacharywmadigan@gmail.com>
-GitHub User @maltalex (10195391) <code@bit48.net>
-GitHub User @markruler (38225900) <csu0414@gmail.com>
-GitHub User @Matts966 (28551465) <Matts966@users.noreply.github.com>
-GitHub User @micnncim (21333876) <micnncim@gmail.com>
-GitHub User @mkishere (224617) <224617+mkishere@users.noreply.github.com>
-GitHub User @nu50218 (40682920) <nu_ll@icloud.com>
-GitHub User @OlgaVlPetrova (44112727) <OVPpetrova@gmail.com>
-GitHub User @pierwill (19642016) <pierwill@users.noreply.github.com>
-GitHub User @pityonline (438222) <pityonline@gmail.com>
-GitHub User @po3rin (29445112) <abctail30@gmail.com>
-GitHub User @pokutuna (57545) <popopopopokutuna@gmail.com>
-GitHub User @povsister (11040951) <pov@mahou-shoujo.moe>
-GitHub User @pytimer (17105586) <lixin20101023@gmail.com>
-GitHub User @qcrao (7698088) <qcrao91@gmail.com>
-GitHub User @ramenjuniti (32011829) <ramenjuniti@gmail.com>
-GitHub User @renthraysk (30576707) <renthraysk@gmail.com>
-GitHub User @roudkerk (52280478) <roudkerk@google.com>
-GitHub User @saitarunreddy (21041941) <saitarunreddypalla@gmail.com>
-GitHub User @SataQiu (9354727) <shidaqiu2018@gmail.com>
-GitHub User @seifchen (23326132) <chenxuefeng1207@gmail.com>
-GitHub User @shogo-ma (9860598) <Choroma194@gmail.com>
-GitHub User @sivchari (55221074) <shibuuuu5@gmail.com>
-GitHub User @skanehira (7888591) <sho19921005@gmail.com>
-GitHub User @soolaugust (10558124) <soolaugust@gmail.com>
-GitHub User @surechen (7249331) <surechen17@gmail.com>
-GitHub User @syumai (6882878) <syumai@gmail.com>
-GitHub User @tangxi666 (48145175) <tx1275044634@gmail.com>
-GitHub User @tatsumack (4510569) <tatsu.mack@gmail.com>
-GitHub User @tell-k (26263) <ffk2005@gmail.com>
-GitHub User @tennashi (10219626) <tennashio@gmail.com>
-GitHub User @uhei (2116845) <uhei@users.noreply.github.com>
-GitHub User @uji (49834542) <ujiprog@gmail.com>
-GitHub User @unbyte (5772358) <i@shangyes.net>
-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 @wmdngngng (22067700) <wangmingdong@gmail.com>
-GitHub User @wolf1996 (5901874) <ksgiv37@gmail.com>
-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>
-Giulio Iotti <dullgiulio@gmail.com>
-Giulio Micheloni <giulio.micheloni@gmail.com>
-Giuseppe Valente <gvalente@arista.com>
-Gleb Stepanov <glebstepanov1992@gmail.com>
-Glenn Brown <glennb@google.com>
-Glenn Lewis <gmlewis@google.com>
-Gordon Klaus <gordon.klaus@gmail.com>
-Gordon Tyler <gordon@doxxx.net>
-Grace Han <hgrace503@gmail.com>
-Graham King <graham4king@gmail.com>
-Graham Miller <graham.miller@gmail.com>
-Grant Griffiths <ggp493@gmail.com>
-Green Lightning <GreenLightning.git@googlemail.com>
-Greg Poirier <greg.istehbest@gmail.com>
-Greg Steuck <gnezdo+github@google.com>
-Greg Thelen <gthelen@google.com>
-Greg Ward <greg@gerg.ca>
-Grégoire Delattre <gregoire.delattre@gmail.com>
-Gregory Man <man.gregory@gmail.com>
-Gregory Petrosyan <gregory.petrosyan@gmail.com>
-Guilherme Caruso <gui.martinscaruso@gmail.com>
-Guilherme Garnier <guilherme.garnier@gmail.com>
-Guilherme Goncalves <guilhermeaugustosg@gmail.com>
-Guilherme Rezende <guilhermebr@gmail.com>
-Guilherme Souza <32180229+gqgs@users.noreply.github.com>
-Guillaume Blaquiere <guillaume.blaquiere@gmail.com>
-Guillaume J. Charmes <guillaume@charmes.net>
-Guillaume Sottas <guillaumesottas@gmail.com>
-Günther Noack <gnoack@google.com>
-Guobiao Mei <meiguobiao@gmail.com>
-Guodong Li <guodongli@google.com>
-Guoliang Wang <iamwgliang@gmail.com>
-Guoqi Chen <chenguoqi@loongson.cn>
-Gustav Paul <gustav.paul@gmail.com>
-Gustav Westling <gustav@westling.xyz>
-Gustavo Franco <gustavorfranco@gmail.com>
-Gustavo Niemeyer <gustavo@niemeyer.net> <n13m3y3r@gmail.com>
-Gwenael Treguier <gwenn.kahz@gmail.com>
-Gyu-Ho Lee <gyuhox@gmail.com>
-H. İbrahim Güngör <igungor@gmail.com>
-Hajime Hoshi <hajimehoshi@gmail.com>
-Hallgrimur Gunnarsson <halg@google.com>
-HAMANO Tsukasa <hamano@osstech.co.jp>
-Han-Wen Nienhuys <hanwen@google.com>
-Hang Qian <hangqian90@gmail.com>
-Hanjun Kim <hallazzang@gmail.com>
-Hanlin He <hanling.he@gmail.com>
-Hanlin Shi <shihanlin9@gmail.com>
-Hans Nielsen <hans@stackallocated.com>
-Hao Mou <mouhao.mu@gmail.com>
-Haoran Luo <haoran.luo@chaitin.com>
-Haosdent Huang <haosdent@gmail.com>
-Harald Nordgren <haraldnordgren@gmail.com>
-Hari haran <hariharan.uno@gmail.com>
-Hariharan Srinath <srinathh@gmail.com>
-Harley Laue <losinggeneration@gmail.com>
-Harry Moreno <morenoh149@gmail.com>
-Harshavardhana <hrshvardhana@gmail.com>
-Hasan Ozgan <hasan@ozgan.net>
-Hasit Bhatt <hasit.p.bhatt@gmail.com>
-Hauke Löffler <hloeffler@users.noreply.github.com>
-Håvard Haugen <havard.haugen@gmail.com>
-He Liu <liulonnie@gmail.com>
-Hector Chu <hectorchu@gmail.com>
-Hector Martin Cantero <hector@marcansoft.com>
-Hein Khant Zaw <heinkhantzaw1@gmail.com>
-Henning Schmiedehausen <henning@schmiedehausen.org>
-Henrik Edwards <henrik.edwards@gmail.com>
-Henrik Hodne <henrik@hodne.io>
-Henrique Vicente <henriquevicente@gmail.com>
-Henry Adi Sumarto <henry.adisumarto@gmail.com>
-Henry Bubert <google@mindeco.de>
-Henry Chang <mr.changyuheng@gmail.com>
-Henry Clifford <h.a.clifford@gmail.com>
-Henry Wong <liushuai.wang@elastic.co>
-Herbert Georg Fischer <herbert.fischer@gmail.com>
-Herbie Ong <herbie@google.com>
-Heschi Kreinick <heschi@google.com>
-Hidetatsu Yaginuma <ygnmhdtt@gmail.com>
-Hilko Bengen <bengen@hilluzination.de>
-Himanshu Kishna Srivastava <28himanshu@gmail.com>
-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>
-Holden Huang <ttyh061@gmail.com>
-Hong Ruiqi <hongruiqi@gmail.com>
-Hongfei Tan <feilengcui008@gmail.com>
-Horacio Duran <horacio.duran@gmail.com>
-Horst Rutter <hhrutter@gmail.com>
-Hossein Sheikh Attar <hattar@google.com>
-Hossein Zolfi <hossein.zolfi@gmail.com>
-Howard Zhang <howard.zhang@arm.com>
-Hsin Tsao <tsao@google.com>
-Hsin-Ho Yeh <yhh92u@gmail.com>
-Hu Keping <hukeping@huawei.com>
-Huan Du <i@huandu.me>
-Hugues Bruant <hugues.bruant@gmail.com>
-Huy Le <huy.dinh.le.89@gmail.com>
-Hyang-Ah Hana Kim <hakim@google.com> <hyangah@gmail.com>
-Hyoyoung Chang <hyoyoung@gmail.com>
-Ian Cottrell <iancottrell@google.com>
-Ian Davis <nospam@iandavis.com>
-Ian Gudger <ian@loosescre.ws>
-Ian Haken <ihaken@netflix.com>
-Ian Kent <iankent85@gmail.com>
-Ian Lance Taylor <iant@golang.org>
-Ian Leue <ian@appboy.com>
-Ian Mckay <iann0036@gmail.com>
-Ian Tay <iantay@google.com>
-Ian Zapolsky <ianzapolsky@gmail.com>
-Ibrahim AshShohail <ibra.sho@gmail.com>
-Icarus Sparry <golang@icarus.freeuk.com>
-Iccha Sethi <icchasethi@gmail.com>
-Ichinose Shogo <shogo82148@gmail.com>
-Idora Shinatose <idora.shinatose@gmail.com>
-Ignacio Hagopian <jsign.uy@gmail.com>
-Igor Bernstein <igorbernstein@google.com>
-Igor Bolotnikov <igor.v.bolotnikov@gmail.com>
-Igor Dolzhikov <bluesriverz@gmail.com>
-Igor Vashyst <ivashyst@gmail.com>
-Igor Zhilianin <igor.zhilianin@gmail.com>
-Ikko Ashimine <eltociear@gmail.com>
-Illya Yalovyy <yalovoy@gmail.com>
-Ilya Chukov <56119080+Elias506@users.noreply.github.com>
-Ilya Mateyko <me@astrophena.name>
-Ilya Sinelnikov <sidhmangh@gmail.com>
-Ilya Tocar <ilya.tocar@intel.com>
-INADA Naoki <songofacandy@gmail.com>
-Inanc Gumus <m@inanc.io>
-Ingo Gottwald <in.gottwald@gmail.com>
-Ingo Krabbe <ikrabbe.ask@gmail.com>
-Ingo Oeser <nightlyone@googlemail.com> <nightlyone@gmail.com>
-Ioannis Georgoulas <geototti21@hotmail.com>
-Irbe Krumina <irbekrm@gmail.com>
-Irfan Sharif <irfanmahmoudsharif@gmail.com>
-Irieda Noboru <irieda@gmail.com>
-Isaac Ardis <isaac.ardis@gmail.com>
-Isaac Wagner <ibw@isaacwagner.me>
-Isfan Azhabil <isfanazhabil@gmail.com>
-Iskander Sharipov <iskander.sharipov@intel.com> <quasilyte@gmail.com>
-Issac Trotts <issactrotts@google.com>
-Ivan Babrou <ivan@cloudflare.com>
-Ivan Bertona <ivan.bertona@gmail.com>
-Ivan Krasin <krasin@golang.org>
-Ivan Kutuzov <arbrix@gmail.com>
-Ivan Markin <sw@nogoegst.net>
-Ivan Moscoso <moscoso@gmail.com>
-Ivan Osadchiy <ivan.osadchii@gmail.com>
-Ivan Sharavuev <shpiwan@gmail.com>
-Ivan Trubach <mr.trubach@icloud.com>
-Ivan Ukhov <ivan.ukhov@gmail.com>
-Ivy Evans <ivy@ivyevans.net>
-Jaana Burcu Dogan <jbd@google.com> <jbd@golang.org> <burcujdogan@gmail.com>
-Jaap Aarts <jaap.aarts1@gmail.com>
-Jack Britton <jackxbritton@gmail.com>
-Jack Lindamood <jlindamo@justin.tv>
-Jack You <jamesyou@google.com>
-Jacob Baskin <jbaskin@google.com>
-Jacob Blain Christen <dweomer5@gmail.com>
-Jacob H. Haven <jacob@cloudflare.com>
-Jacob Hoffman-Andrews <github@hoffman-andrews.com>
-Jacob Walker <jacobwalker0814@gmail.com>
-Jaden Teng <long.asyn@gmail.com>
-Jae Kwon <jae@tendermint.com>
-Jake B <doogie1012@gmail.com>
-Jake Ciolek <jakub@ciolek.dev>
-Jakob Borg <jakob@nym.se>
-Jakob Weisblat <jakobw@mit.edu>
-Jakub Čajka <jcajka@redhat.com>
-Jakub Kaczmarzyk <jakubk@mit.edu>
-Jakub Ryszard Czarnowicz <j.czarnowicz@gmail.com>
-Jakub Warczarek <jakub.warczarek@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>
-James Clarke <jrtc27@jrtc27.com>
-James Cowgill <James.Cowgill@imgtec.com>
-James Craig Burley <james-github@burleyarch.com>
-James David Chalfant <james.chalfant@gmail.com>
-James Eady <jmeady@google.com>
-James Fennell <jpfennell@google.com>
-James Fysh <james.fysh@gmail.com>
-James Gray <james@james4k.com>
-James Harris <mailjamesharris@gmail.com>
-James Hartig <fastest963@gmail.com>
-James Kasten <jdkasten@google.com>
-James Lawrence <jljatone@gmail.com>
-James Meneghello <rawrz0r@gmail.com>
-James Myers <jfmyers9@gmail.com>
-James Naftel <james.naftel@gmail.com>
-James Neve <jamesoneve@gmail.com>
-James Nugent <james@jen20.com>
-James P. Cooper <jamespcooper@gmail.com>
-James Robinson <jamesr@google.com> <jamesr.gatech@gmail.com>
-James Schofield <james@shoeboxapp.com>
-James Smith <jrs1995@icloud.com>
-James Sweet <james.sweet88@googlemail.com>
-James Toy <nil@opensesame.st>
-James Treanor <jtreanor3@gmail.com>
-James Tucker <raggi@google.com>
-James Whitehead <jnwhiteh@gmail.com>
-Jamie Beverly <jamie.r.beverly@gmail.com>
-Jamie Gennis <jgennis@google.com> <jgennis@gmail.com>
-Jamie Kerr <jkerr113@googlemail.com>
-Jamie Liu <jamieliu@google.com>
-Jamie Stackhouse <contin673@gmail.com>
-Jamie Turner <jamwt@dropbox.com>
-Jamie Wilkinson <jaq@spacepants.org>
-Jamil Djadala <djadala@gmail.com>
-Jan Berktold <jan@berktold.co>
-Jan H. Hosang <jan.hosang@gmail.com>
-Jan Kratochvil <jan.kratochvil@redhat.com>
-Jan Lehnardt <jan@apache.org>
-Jan Mercl <0xjnml@gmail.com> <befelemepeseveze@gmail.com>
-Jan Newmarch <jan.newmarch@gmail.com>
-Jan Pilzer <jan.pilzer@gmx.de>
-Jan Steinke <jan.steinke@gmail.com>
-Jan Ziak <0xe2.0x9a.0x9b@gmail.com>
-Jani Monoses <jani.monoses@ubuntu.com> <jani.monoses@gmail.com>
-Jannis Andrija Schnitzer <jannis@schnitzer.im>
-Jared Allard <jaredallard@users.noreply.github.com>
-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>
-Jason Del Ponte <delpontej@gmail.com>
-Jason Hall <jasonhall@google.com>
-Jason Keene <jasonkeene@gmail.com>
-Jason LeBrun <jblebrun@gmail.com>
-Jason Smale <jsmale@zendesk.com>
-Jason Travis <infomaniac7@gmail.com>
-Jason Wangsadinata <jwangsadinata@gmail.com>
-Javier Kohen <jkohen@google.com>
-Javier Revillas <jrevillas@massivedynamic.io>
-Javier Segura <javism@gmail.com>
-Jay Chen <chenjie@chenjie.info>
-Jay Conrod <jayconrod@google.com>
-Jay Lee <BusyJayLee@gmail.com>
-Jay Taylor <outtatime@gmail.com>
-Jay Weisskopf <jay@jayschwa.net>
-Jean de Klerk <deklerk@google.com>
-Jean-André Santoni <jean.andre.santoni@gmail.com>
-Jean-François Bustarret <jf@bustarret.com>
-Jean-Francois Cantin <jfcantin@gmail.com>
-Jean-Hadrien Chabran <jh@chabran.fr>
-Jean-Marc Eurin <jmeurin@google.com>
-Jean-Nicolas Moal <jn.moal@gmail.com>
-Jed Denlea <jed@fastly.com>
-Jędrzej Szczepaniak <jbszczepaniak@gmail.com>
-Jeet Parekh <jeetparekh96@gmail.com>
-Jeevanandam M <jeeva@myjeeva.com>
-Jeff (Zhefu) Jiang <jeffjiang@google.com>
-Jeff Craig <jeffcraig@google.com>
-Jeff Dupont <jeff.dupont@gmail.com>
-Jeff Hodges <jeff@somethingsimilar.com>
-Jeff Johnson <jrjohnson@google.com>
-Jeff R. Allen <jra@nella.org> <jeff.allen@gmail.com>
-Jeff Sickel <jas@corpus-callosum.com>
-Jeff Wendling <jeff@spacemonkey.com>
-Jeff Wentworth <j.wentworth@gmail.com>
-Jeff Widman <jeff@jeffwidman.com>
-Jeffrey H <jeffreyh192@gmail.com>
-Jelte Fennema <github-tech@jeltef.nl>
-Jens Frederich <jfrederich@gmail.com>
-Jeremiah Harmsen <jeremiah@google.com>
-Jeremy Banks <_@jeremy.ca>
-Jeremy Canady <jcanady@gmail.com>
-Jeremy Faller <jeremy@golang.org>
-Jeremy Jackins <jeremyjackins@gmail.com>
-Jeremy Jay <jeremy@pbnjay.com>
-Jeremy Schlatter <jeremy.schlatter@gmail.com>
-Jero Bado <tokidokitalkyou@gmail.com>
-Jeroen Bobbeldijk <jerbob92@gmail.com>
-Jeroen Simonetti <jeroen@simonetti.nl>
-Jérôme Doucet <jerdct@gmail.com>
-Jerrin Shaji George <jerrinsg@gmail.com>
-Jess Frazelle <me@jessfraz.com>
-Jesse Szwedko <jesse.szwedko@gmail.com>
-Jesús Espino <jespinog@gmail.com>
-Jia Zhan <jzhan@uber.com>
-Jiacai Liu <jiacai2050@gmail.com>
-Jiahao Lu <lujjjh@gmail.com>
-Jiahua Wang <wjh180909@gmail.com>
-Jianing Yu <jnyu@google.com>
-Jianqiao Li <jianqiaoli@google.com>
-Jiayu Yi <yijiayu@gmail.com>
-Jie Ma <jienius@outlook.com>
-Jihyun Yu <yjh0502@gmail.com>
-Jim Cote <jfcote87@gmail.com>
-Jim Kingdon <jim@bolt.me>
-Jim McGrath <jimmc2@gmail.com>
-Jim Minter <jminter@redhat.com>
-Jimmy Frasche <soapboxcicero@gmail.com>
-Jimmy Zelinskie <jimmyzelinskie@gmail.com>
-Jin-wook Jeong <jeweljar@hanmail.net>
-Jingcheng Zhang <diogin@gmail.com>
-Jingguo Yao <yaojingguo@gmail.com>
-Jinzhu Zhang <wosmvp@gmail.com>
-Jingnan Si <jingnan.si@gmail.com>
-Jinkun Zhang <franksnolf@gmail.com>
-Jinwen Wo <wojinwen@huawei.com>
-Jiong Du <londevil@gmail.com>
-Jirka Daněk <dnk@mail.muni.cz>
-Jiulong Wang <jiulongw@gmail.com>
-Joakim Sernbrant <serbaut@gmail.com>
-Jochen Weber <jochen.weber80@gmail.com>
-Joe Bowbeer <joe.bowbeer@gmail.com>
-Joe Cortopassi <joe@joecortopassi.com>
-Joe Farrell <joe2farrell@gmail.com>
-Joe Harrison <joehazzers@gmail.com>
-Joe Henke <joed.henke@gmail.com>
-Joe Kyo <xunianzu@gmail.com>
-Joe Poirier <jdpoirier@gmail.com>
-Joe Richey <joerichey@google.com>
-Joe Shaw <joe@joeshaw.org>
-Joe Sylve <joe.sylve@gmail.com>
-Joe Tsai <joetsai@digital-static.net>
-Joel Courtney <euphemize@gmail.com>
-Joel Ferrier <joelferrier@google.com>
-Joel Sing <joel@sing.id.au> <jsing@google.com>
-Joël Stemmer <jstemmer@google.com>
-Joel Stemmer <stemmertech@gmail.com>
-Joey Geiger <jgeiger@users.noreply.github.com>
-Johan Brandhorst <johan.brandhorst@gmail.com>
-Johan Euphrosine <proppy@google.com>
-Johan Jansson <johan.jansson@iki.fi>
-Johan Knutzen <johan@senri.se>
-Johan Sageryd <j@1616.se>
-Johannes Altmanninger <aclopte@gmail.com>
-Johannes Huning <johannes.huning@gmail.com>
-John Asmuth <jasmuth@gmail.com>
-John Bampton <jbampton@gmail.com>
-John Beisley <huin@google.com>
-John C Barstow <jbowtie@amathaine.com>
-John DeNero <denero@google.com>
-John Dethridge <jcd@golang.org>
-John Gibb <johngibb@gmail.com>
-John Gilik <john@jgilik.com>
-John Graham-Cumming <jgc@jgc.org> <jgrahamc@gmail.com>
-John Howard Palevich <jack.palevich@gmail.com>
-John Jago <johnjago@protonmail.com>
-John Jeffery <jjeffery@sp.com.au>
-John Jenkins <twodopeshaggy@gmail.com>
-John Kelly <jkelly@squarespace.com>
-John Leidegren <john.leidegren@gmail.com>
-John McCabe <john@johnmccabe.net>
-John Moore <johnkenneth.moore@gmail.com>
-John Newlin <jnewlin@google.com>
-John Olheiser <john.olheiser@gmail.com>
-John Papandriopoulos <jpap.code@gmail.com>
-John Potocny <johnp@vividcortex.com>
-John R. Lenton <jlenton@gmail.com>
-John Schnake <schnake.john@gmail.com>
-John Shahid <jvshahid@gmail.com>
-John Tuley <john@tuley.org>
-John Weldon <johnweldon4@gmail.com>
-Johnny Luo <johnnyluo1980@gmail.com>
-Jon Chen <jchen@justin.tv>
-Jon Johnson <jonjohnson@google.com>
-Jonas Bernoulli <jonas@bernoul.li>
-Jonathan Albrecht <jonathan.albrecht@ibm.com>
-Jonathan Allie <jonallie@google.com>
-Jonathan Amsterdam <jba@google.com>
-Jonathan Boulle <jonathanboulle@gmail.com>
-Jonathan Chen <dijonkitchen@users.noreply.github.com>
-Jonathan Feinberg <feinberg@google.com>
-Jonathan Gold <jgold.bg@gmail.com>
-Jonathan Hseu <jhseu@google.com>
-Jonathan Mark <jhmark@xenops.com> <jhmark000@gmail.com>
-Jonathan Nieder <jrn@google.com>
-Jonathan Pentecost <pentecostjonathan@gmail.com>
-Jonathan Pittman <jmpittman@google.com> <jonathan.mark.pittman@gmail.com>
-Jonathan Rudenberg <jonathan@titanous.com>
-Jonathan Stacks <jonstacks13@gmail.com>
-Jonathan Swinney <jswinney@amazon.com>
-Jonathan Wills <runningwild@gmail.com>
-Jonathon Lacher <jonathon.lacher@gmail.com>
-Jongmin Kim <atomaths@gmail.com>
-Joonas Kuorilehto <joneskoo@derbian.fi>
-Joop Kiefte <ikojba@gmail.com> <joop@kiefte.net>
-Jordan Christiansen <xordspar0@gmail.com>
-Jordan Krage <jmank88@gmail.com>
-Jordan Lewis <jordanthelewis@gmail.com>
-Jordan Liggitt <liggitt@google.com>
-Jordan Rhee <jordanrh@microsoft.com>
-Jordan Rupprecht <rupprecht@google.com>
-Jordi Martin <jordimartin@gmail.com>
-Jorge Araya <jorgejavieran@yahoo.com.mx>
-Jorge L. Fatta <jorge.fatta@auth0.com>
-Jorge Troncoso <jatron@google.com>
-Jos Visser <josv@google.com>
-Josa Gesell <josa@gesell.me>
-Jose Luis Vázquez González <josvazg@gmail.com>
-Joseph Bonneau <jcb@google.com>
-Joseph Holsten <joseph@josephholsten.com>
-Joseph Morag <sefim96@gmail.com>
-Josh Baum <joshbaum@google.com>
-Josh Bleecher Snyder <josharian@gmail.com>
-Josh Chorlton <jchorlton@gmail.com>
-Josh Deprez <josh.deprez@gmail.com>
-Josh Goebel <dreamer3@gmail.com>
-Josh Hoak <jhoak@google.com>
-Josh Holland <jrh@joshh.co.uk>
-Josh Rickmar <jrick@companyzero.com>
-Josh Roppo <joshroppo@gmail.com>
-Josh Varga <josh.varga@gmail.com>
-Joshua Bezaleel Abednego <joshua.bezaleel@gmail.com>
-Joshua Boelter <joshua.boelter@intel.com>
-Joshua Chase <jcjoshuachase@gmail.com>
-Joshua Crowgey <jcrowgey@uw.edu>
-Joshua Harshman <joshgreyhat@gmail.com>
-Joshua M. Clulow <josh.clulow@joyent.com>
-Joshua Rubin <joshua@rubixconsulting.com>
-Josselin Costanzi <josselin@costanzi.fr>
-Jostein Stuhaug <js@solidsystem.no>
-JP Sugarbroad <jpsugar@google.com>
-JT Olds <jtolds@xnet5.com>
-JT Olio <hello@jtolio.com>
-Juan Carlos <juanjcsr@gmail.com>
-Juan Pablo Civile <elementohb@gmail.com>
-Jude Pereira <judebpereira@gmail.com>
-Jukka-Pekka Kekkonen <karatepekka@gmail.com>
-Julia Hansbrough <flowerhack@google.com>
-Julian Kornberger <jk+github@digineo.de>
-Julian Pastarmov <pastarmovj@google.com>
-Julian Phillips <julian@quantumfyre.co.uk>
-Julian Tibble <julian.tibble@gmail.com>
-Julie Qiu <julie@golang.org>
-Julien Kauffmann <julien.kauffmann@freelan.org>
-Julien Salleyron <julien.salleyron@gmail.com>
-Julien Schmidt <google@julienschmidt.com>
-Julien Tant <julien@craftyx.fr>
-Julio Montes <julio.montes@intel.com>
-Jun Zhang <jim.zoumo@gmail.com>
-Junchen Li <junchen.li@arm.com>
-Junda Liu <junda@celer.network>
-Jungho Ahn <jhahn@google.com>
-Junya Hayashi <ledmonster@gmail.com>
-Juraj Sukop <sukop@users.noreply.github.com>
-Jure Ham <jure.ham@zemanta.com>
-Justin Gracenin <jgracenin@gmail.com>
-Justin Li <git@justinli.net>
-Justin Nuß <nuss.justin@gmail.com>
-Justyn Temme <justyntemme@gmail.com>
-Kai Backman <kaib@golang.org>
-Kai Dong <dokia2357@gmail.com>
-Kai Lüke <kai@kinvolk.io>
-Kai Trukenmüller <ktye78@gmail.com>
-Kale Blankenship <kale@lemnisys.com>
-Kaleb Elwert <kelwert@atlassian.com>
-Kalman Bekesi <kalmanb@google.com>
-Kamal Aboul-Hosn <aboulhosn@google.com>
-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>
-Karsten Köhler <karsten.koehler95@gmail.com>
-Karthik Nayak <karthik.188@gmail.com>
-Kashav Madan <kshvmdn@gmail.com>
-Kate Manson <kate.manson@izettle.com>
-Katharine Berry <ktbry@google.com>
-Katie Hockman <katie@golang.org>
-Kato Kazuyoshi <kato.kazuyoshi@gmail.com>
-Katrina Owen <katrina.owen@gmail.com>
-Kaviraj Kanagaraj <kavirajkanagaraj@gmail.com>
-Kay Zhu <kayzhu@google.com>
-Kazuhiro Sera <seratch@gmail.com>
-KB Sriram <kbsriram@google.com>
-Keegan Carruthers-Smith <keegan.csmith@gmail.com>
-Kei Son <hey.calmdown@gmail.com>
-Keiichi Hirobe <chalenge.akane@gmail.com>
-Keiji Yoshida <keijiyoshida.mail@gmail.com>
-Keisuke Kishimoto <keisuke.kishimoto@gmail.com>
-Keith Ball <inflatablewoman@gmail.com>
-Keith Randall <khr@golang.org>
-Keith Rarick <kr@xph.us>
-Kelly Heller <pestophagous@gmail.com>
-Kelsey Hightower <kelsey.hightower@gmail.com>
-Kelvin Foo Chuan Lyi <vmirage@gmail.com>
-Kemal Elmizan <kemalelmizan@gmail.com>
-Ken Friedenbach <kenliz@cruzio.com>
-Ken Rockot <ken@oz.gs> <ken.rockot@gmail.com>
-Ken Sedgwick <ken@bonsai.com>
-Ken Thompson <ken@golang.org>
-Kenichi Tsunokawa <kenichi.tsunokawa@gmail.com>
-Kenji Kaneda <kenji.kaneda@gmail.com>
-Kenji Yano <kenji.yano@gmail.com>
-Kenneth Shaw <kenshaw@gmail.com>
-Kenny Grant <kennygrant@gmail.com>
-Kensei Nakada <handbomusic@gmail.com>
-Kenta Mori <zoncoen@gmail.com>
-Kerollos Magdy <kerolloz@yahoo.com>
-Ketan Parmar <ketanbparmar@gmail.com>
-Kevan Swanberg <kevswanberg@gmail.com>
-Kevin Albertson <kevin.albertson@mongodb.com>
-Kevin Ballard <kevin@sb.org>
-Kevin Burke <kev@inburke.com>
-Kévin Dunglas <dunglas@gmail.com>
-Kevin Gillette <extemporalgenome@gmail.com>
-Kevin Herro <kevin109104@gmail.com>
-Kevin Kirsche <kev.kirsche@gmail.com>
-Kevin Klues <klueska@gmail.com> <klueska@google.com>
-Kevin Malachowski <chowski@google.com>
-Kevin Parsons <kevpar@microsoft.com>
-Kevin Ruffin <kruffin@gmail.com>
-Kevin Vu <kevin.m.vu@gmail.com>
-Kevin Zita <bleedgreenandgold@gmail.com>
-Keyan Pishdadian <kpishdadian@gmail.com>
-Keyuan Li <keyuanli123@gmail.com>
-Kezhu Wang <kezhuw@gmail.com>
-Khosrow Moossavi <khos2ow@gmail.com>
-Kieran Colford <kieran@kcolford.com>
-Kieran Gorman <kieran.j.gorman@gmail.com>
-Kim Shrier <kshrier@racktopsystems.com>
-Kim Yongbin <kybinz@gmail.com>
-Kir Kolyshkin <kolyshkin@gmail.com>
-Kirill Korotaev <kirillx@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>
-KJ Tsanaktsidis <ktsanaktsidis@zendesk.com>
-Klaus Post <klauspost@gmail.com>
-Kodie Goodwin <kodiegoodwin@gmail.com>
-Koichi Shiraishi <zchee.io@gmail.com>
-Koki Ide <niconegoto@yahoo.co.jp>
-Koki Tomoshige <tomocy.dev@gmail.com>
-Komu Wairagu <komuw05@gmail.com>
-Konstantin <konstantin8105@gmail.com>
-Konstantin Shaposhnikov <k.shaposhnikov@gmail.com>
-Koya IWAMURA <kiwamura0314@gmail.com>
-Kris Kwiatkowski <kris@cloudflare.com>
-Kris Nova <kris@nivenly.com>
-Kris Rousey <krousey@google.com>
-Krishna Birla <krishnabirla16@gmail.com>
-Kristopher Watts <traetox@gmail.com>
-Krzysztof Dąbrowski <krzysdabro@live.com>
-Kshitij Saraogi <kshitijsaraogi@gmail.com>
-Kun Li <likunarmstrong@gmail.com>
-Kunpei Sakai <namusyaka@gmail.com>
-Kuntal Majumder <hellozee@disroot.org>
-Kush Patel <kush.patel@hootsuite.com>
-Kyle Consalus <consalus@gmail.com>
-Kyle Isom <kyle@gokyle.net>
-Kyle Jones <kyle@kyledj.com>
-Kyle Lemons <kyle@kylelemons.net> <kevlar@google.com>
-Kyle Nusbaum <kyle@datadog.com>
-Kyle Shannon <kyle@pobox.com>
-Kyle Spiers <eiais@google.com>
-Kyle Wood <kyle@kylewood.cc>
-Kyohei Kadota <lufia@lufia.org>
-Kyrylo Silin <silin@kyrylo.org>
-L Campbell <unpantsu@gmail.com>
-Lai Jiangshan <eag0628@gmail.com>
-Lajos Papp <lalyos@yahoo.com>
-Lakshay Garg <lakshay.garg.1996@gmail.com>
-Lann Martin <lannm@google.com>
-Lanre Adelowo <yo@lanre.wtf>
-Lapo Luchini <lapo@lapo.it>
-Larry Clapp <larry@theclapp.org>
-Larry Hosken <lahosken@golang.org>
-Lars Jeppesen <jeppesen.lars@gmail.com>
-Lars Lehtonen <lars.lehtonen@gmail.com>
-Lars Wiegman <lars@namsral.com>
-Larz Conwell <larzconwell@gmail.com>
-Laurent Voisin <lpvoisin@gmail.com>
-Laurie Clark-Michalek <laurie@qubit.com>
-LE Manh Cuong <cuong.manhle.vn@gmail.com>
-Lee Hinman <hinman@gmail.com>
-Lee Packham <lpackham@gmail.com>
-Lehner Florian <dev@der-flo.net>
-Leigh McCulloch <leighmcc@gmail.com>
-Leo Antunes <leo@costela.net>
-Leo Rudberg <ljr@google.com>
-Leon Klingele <git@leonklingele.de>
-Leonard Wang <wangdeyu0907@gmail.com> <wangdeyu@golangcn.org>
-Leonardo Comelli <leonardo.comelli@gmail.com>
-Leonel Quinteros <leonel.quinteros@gmail.com>
-Lev Shamardin <shamardin@gmail.com>
-Lewin Bormann <lewin.bormann@gmail.com>
-Lewis Waddicor <nemesismk2@gmail.com>
-Li-Yu Yu <aaronyu@google.com>
-Liam Haworth <liam@haworth.id.au>
-Lily Chung <lilithkchung@gmail.com>
-Lingchao Xin <douglarek@gmail.com>
-Lion Yang <lion@aosc.xyz>
-Liz Rice <liz@lizrice.com>
-Lize Cai <lizzzcai1@gmail.com>
-Lloyd Dewolf <foolswisdom@gmail.com>
-Lluís Batlle i Rossell <viric@viric.name>
-Lorenz Bauer <lmb@cloudflare.com>
-Lorenz Brun <lorenz@brun.one>
-Lorenz Nickel <mail@lorenznickel.de>
-Lorenzo Masini <rugginoso@develer.com>
-Lorenzo Stoakes <lstoakes@gmail.com>
-Louis Kruger <louisk@google.com>
-Luan Santos <cfcluan@gmail.com>
-Lubomir I. Ivanov <neolit123@gmail.com>
-Luca Bruno <luca.bruno@coreos.com>
-Luca Greco <luca.greco@alcacoop.it>
-Luca Spiller <luca@stackednotion.com>
-Lucas Bremgartner <lucas.bremgartner@gmail.com>
-Lucas Clemente <lclemente@google.com>
-Lucien Stuker <lucien.stuker@gmail.com>
-Lucio De Re <lucio.dere@gmail.com>
-Ludi Rehak <ludi317@gmail.com>
-Luigi Riefolo <luigi.riefolo@gmail.com>
-Luit van Drongelen <luitvd@gmail.com>
-Luka Zakrajšek <tr00.g33k@gmail.com>
-Luka Zitnik <luka.zitnik@gmail.com>
-Lukasz Milewski <lmmilewski@gmail.com>
-Luke Champine <luke.champine@gmail.com>
-Luke Curley <qpingu@gmail.com>
-Luke Granger-Brown <git@lukegb.com>
-Luke Shumaker <lukeshu@datawire.io>
-Luke Young <bored-engineer@users.noreply.github.com>
-Luna Duclos <luna.duclos@palmstonegames.com>
-Luuk van Dijk <lvd@golang.org> <lvd@google.com>
-Lyle Franklin <lylejfranklin@gmail.com>
-Lynn Boger <laboger@linux.vnet.ibm.com>
-Ma Peiqi <mapeiqi2017@gmail.com>
-Maarten Bezemer <maarten.bezemer@gmail.com>
-Maciej Dębski <maciejd@google.com>
-Madhu Rajanna <madhupr007@gmail.com>
-Magnus Hiie <magnus.hiie@gmail.com>
-Mahdi Hosseini Moghaddam <seyed.mahdi.hosseini.moghaddam@ibm.com>
-Maia Lee <maia.lee@leftfieldlabs.com>
-Maicon Costa <maiconscosta@gmail.com>
-Mak Kolybabi <mak@kolybabi.com>
-Maksym Trykur <maksym.trykur@gmail.com>
-Mal Curtis <mal@mal.co.nz>
-Manfred Touron <m@42.am>
-Manigandan Dharmalingam <manigandan.jeff@gmail.com>
-Manish Goregaokar <manishsmail@gmail.com>
-Manlio Perillo <manlio.perillo@gmail.com>
-Manoj Dayaram <platform-dev@moovweb.com> <manoj.dayaram@moovweb.com>
-Mansour Rahimi <rahimi.mnr@gmail.com>
-Manu Garg <manugarg@google.com>
-Manu S Ajith <neo@codingarena.in>
-Manuel Mendez <mmendez534@gmail.com>
-Marat Khabibullin <marat.khabibullin@jetbrains.com>
-Marc Sanmiquel <marcsanmiquel@gmail.com>
-Marc Weistroff <marc@weistroff.net>
-Marc-Antoine Ruel <maruel@chromium.org>
-Marcel Edmund Franke <marcel.edmund.franke@gmail.com>
-Marcel van Lohuizen <mpvl@golang.org>
-Marcelo Cantos <marcelo.cantos@gmail.com>
-Marcelo E. Magallon <marcelo.magallon@gmail.com>
-Marco Gazerro <gazerro@open2b.com>
-Marco Hennings <marco.hennings@freiheit.com>
-Marcus Weiner <marcus.weiner@gmail.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>
-Marius Nuennerich <mnu@google.com>
-Mark Adams <mark@markadams.me>
-Mark Bucciarelli <mkbucc@gmail.com>
-Mark Dain <mark@markdain.net>
-Mark Glines <mark@glines.org>
-Mark Hansen <markhansen@google.com>
-Mark Harrison <marhar@google.com>
-Mark Jeffery <dandare100@gmail.com>
-Mark Percival <m@mdp.im>
-Mark Pulford <mark@kyne.com.au>
-Mark Rushakoff <mark.rushakoff@gmail.com>
-Mark Ryan <mark.d.ryan@intel.com>
-Mark Severson <miquella@gmail.com>
-Mark Theunissen <mark.theunissen@gmail.com>
-Mark Villacampa <m@markvillacampa.com>
-Mark Wolfe <mark@wolfe.id.au>
-Mark Zavislak <zavislak@google.com>
-Marko Juhani Silokunnas <marko.silokunnas@gmail.com>
-Marko Kevac <marko@kevac.org>
-Marko Kungla <marko.kungla@gmail.com>
-Marko Mikulicic <mkm@google.com>
-Marko Mudrinic <mudrinic.mare@gmail.com>
-Marko Tiikkaja <marko@joh.to>
-Markus Duft <markus.duft@salomon.at>
-Markus Sonderegger <marraison@gmail.com>
-Markus Zimmermann <zimmski@gmail.com>
-Marten Seemann <martenseemann@gmail.com>
-Martin Asquino <martin.asquino@gmail.com>
-Martin Bertschler <mbertschler@gmail.com>
-Martin Garton <garton@gmail.com>
-Martin Habbecke <marhab@google.com>
-Martin Hamrle <martin.hamrle@gmail.com>
-Martin Hoefling <martin.hoefling@gmx.de>
-Martin Kreichgauer <martinkr@google.com>
-Martin Kunc <martinkunc@users.noreply.github.com>
-Martin Lindhe <martin.j.lindhe@gmail.com>
-Martin Möhrmann <martin@golang.org> <moehrmann@google.com> <martisch@uos.de>
-Martin Neubauer <m.ne@gmx.net>
-Martin Olsen <github.com@martinolsen.net>
-Martin Olsson <martin@minimum.se>
-Martin Probst <martin@probst.io>
-Martin Sucha <anty.sk+git@gmail.com>
-Martin Tournoij <martin@arp242.net>
-Martins Sipenko <martins.sipenko@gmail.com>
-Martynas Budriūnas <mabu@google.com>
-Marvin Stenger <marvin.stenger94@gmail.com>
-Marwan Sulaiman <marwan.sulaiman@work.co>
-Maryan Hratson <gmarik@gmail.com>
-Masahiro Furudate <masahiro.furudate@gmail.com>
-Masahiro Wakame <vvakame@gmail.com>
-Masaki Yoshida <yoshida.masaki@gmail.com>
-Masaya Watanabe <sfbgwm30@gmail.com>
-Mat Byczkowski <mbyczkowski@gmail.com>
-Mat Ryer <thatmatryer@gmail.com>
-Máté Gulyás <mgulyas86@gmail.com>
-Matej Baćo <matejbaco@gmail.com>
-Mateus Amin <mateus.amin@gmail.com>
-Mateusz Czapliński <czapkofan@gmail.com>
-Matheus Alcantara <matheusssilv97@gmail.com>
-Mathias Beke <git@denbeke.be>
-Mathias Hall-Andersen <mathias@hall-andersen.dk>
-Mathias Leppich <mleppich@muhqu.de>
-Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
-Mats Lidell <mats.lidell@cag.se> <mats.lidell@gmail.com>
-Matt Aimonetti <mattaimonetti@gmail.com>
-Matt Blair <me@matthewblair.net>
-Matt Bostock <matt@mattbostock.com>
-Matt Brown <mdbrown@google.com>
-Matt Dee <mdee@hioscar.com>
-Matt Drollette <matt@drollette.com>
-Matt Harden <matt.harden@gmail.com>
-Matt Jibson <matt.jibson@gmail.com>
-Matt Joiner <anacrolix@gmail.com>
-Matt Jones <mrjones@google.com>
-Matt Juran <thepciet@gmail.com>
-Matt Layher <mdlayher@gmail.com> <mdlayher@planetscale.com>
-Matt Masurka <masurka@google.com>
-Matt Pearring <broskies@google.com>
-Matt Reiferson <mreiferson@gmail.com>
-Matt Robenolt <matt@ydekproductions.com>
-Matt Strong <mstrong1341@gmail.com>
-Matt T. Proud <matt.proud@gmail.com>
-Matt Williams <gh@mattyw.net> <mattyjwilliams@gmail.com>
-Matthew Brennan <matty.brennan@gmail.com>
-Matthew Broberg <matthewbbroberg@gmail.com>
-Matthew Cottingham <mattcottingham@gmail.com>
-Matthew Dempsky <mdempsky@google.com>
-Matthew Denton <mdenton@skyportsystems.com>
-Matthew Holt <Matthew.Holt+git@gmail.com>
-Matthew Horsnell <matthew.horsnell@gmail.com>
-Matthew Waters <mwwaters@gmail.com>
-Matthias Dötsch <matze@mdoetsch.de>
-Matthias Frei <matthias.frei@inf.ethz.ch>
-Matthieu Hauglustaine <matt.hauglustaine@gmail.com>
-Matthieu Olivier <olivier.matthieu@gmail.com>
-Matthijs Kooijman <matthijs@stdin.nl>
-Mattias Appelgren <mattias@ppelgren.se>
-Mauricio Alvarado <mauricio.alvarado@leftfieldlabs.com>
-Max Drosdo.www <g1ran1q@gmail.com>
-Max Riveiro <kavu13@gmail.com>
-Max Schmitt <max@schmitt.mx>
-Max Semenik <maxsem.wiki@gmail.com>
-Max Ushakov <ushmax@gmail.com>
-Maxim Eryomenko <moeryomenko@gmail.com>
-Maxim Khitrov <max@mxcrypt.com>
-Maxim Pimenov <mpimenov@google.com>
-Maxim Pugachev <pugachev.mm@gmail.com>
-Maxim Ushakov <ushakov@google.com>
-Maxime de Roucy <maxime.deroucy@gmail.com>
-Máximo Cuadros Ortiz <mcuadros@gmail.com>
-Maxwell Krohn <themax@gmail.com>
-Maya Rashish <maya@NetBSD.org>
-Mayank Kumar <krmayankk@gmail.com>
-Mehrad Sadeghi <2012.linkinpark@gmail.com>
-Meir Fischer <meirfischer@gmail.com>
-Meng Zhuo <mengzhuo1203@gmail.com> <mzh@golangcn.org>
-Mhd Sulhan <m.shulhan@gmail.com>
-Mia Zhu <CrystalZhu1025getu@gmail.com>
-Micah Stetson <micah.stetson@gmail.com>
-Michael Anthony Knyszek <mknyszek@google.com>
-Michael Brandenburg <mbrandenburg@bolste.com>
-Michael Chaten <mchaten@gmail.com>
-Michael Cook <code@mdcook.net>
-Michael Darakananda <pongad@google.com>
-Michael Dorner <mail@michaeldorner.de>
-Michael Edwards <medwards@walledcity.ca>
-Michael Elkins <michael.elkins@gmail.com>
-Michael Ellis <micellis@justin.tv>
-Michael Fraenkel <michael.fraenkel@gmail.com>
-Michael Fromberger <michael.j.fromberger@gmail.com>
-Michael Gehring <mg@ebfe.org> <gnirheg.leahcim@gmail.com>
-Michael Henderson <mdhender@users.noreply.github.com>
-Michael Hendricks <michael@ndrix.org>
-Michael Hoisie <hoisie@gmail.com>
-Michael Hudson-Doyle <michael.hudson@linaro.org>
-Michael Kasch <michael.kasch@gmail.com>
-Michael Käufl <golang@c.michael-kaeufl.de>
-Michael Kelly <mjk@google.com>
-Michaël Lévesque-Dion <mlevesquedion@google.com>
-Michael Lewis <mikelikespie@gmail.com>
-Michael MacInnis <Michael.P.MacInnis@gmail.com>
-Michael Marineau <michael.marineau@coreos.com>
-Michael Matloob <matloob@google.com>
-Michael McConville <momcconville@gmail.com>
-Michael McGreevy <mcgreevy@golang.org>
-Michael McLoughlin <mmcloughlin@gmail.com>
-Michael Munday <mike.munday@ibm.com>
-Michael Pearson <mipearson@gmail.com>
-Michael Piatek <piatek@google.com>
-Michael Pratt <mpratt@google.com>
-Michael Schaller <michael@5challer.de>
-Michael Schurter <michael.schurter@gmail.com>
-Michael Shields <mshields@google.com>
-Michael Stapelberg <michael@stapelberg.de> <mstplbrg@googlemail.com>
-Michael Steinert <mike.steinert@gmail.com>
-Michael T. Jones <mtj@google.com> <michael.jones@gmail.com>
-Michael Teichgräber <mteichgraeber@gmx.de> <mt4swm@googlemail.com>
-Michael Traver <mtraver@google.com>
-Michael Vetter <g.bluehut@gmail.com>
-Michael Vogt <mvo@ubuntu.com>
-Michail Kargakis <mkargaki@redhat.com>
-Michal Bohuslávek <mbohuslavek@gmail.com>
-Michal Cierniak <cierniak@google.com>
-Michał Derkacz <ziutek@lnet.pl>
-Michal Franc <lam.michal.franc@gmail.com>
-Michal Hruby <michal@axiom.co>
-Michał Łowicki <mlowicki@gmail.com>
-Michal Pristas <michal.pristas@gmail.com>
-Michal Rostecki <mrostecki@suse.de>
-Michal Stokluska <mstoklus@redhat.com>
-Michalis Kargakis <michaliskargakis@gmail.com>
-Michel Lespinasse <walken@google.com>
-Michel Levieux <mlevieux42@gmail.com>
-Michele Di Pede <michele.di.pede@gmail.com>
-Mickael Kerjean <mickael.kerjean@gmail.com>
-Mickey Reiss <mickeyreiss@gmail.com>
-Miek Gieben <miek@miek.nl> <remigius.gieben@gmail.com>
-Miguel Acero <acero@google.com>
-Miguel Mendez <stxmendez@gmail.com>
-Miguel Molina <hi@mvader.me>
-Mihai Borobocea <MihaiBorobocea@gmail.com>
-Mihai Moldovan <ionic@ionic.de>
-Mihai Todor <todormihai@gmail.com>
-Mihail Minaev <minaev.mike@gmail.com>
-Mikael Tillenius <mikti42@gmail.com>
-Mike Andrews <mra@xoba.com>
-Mike Appleby <mike@app.leby.org>
-Mike Danese <mikedanese@google.com>
-Mike Houston <mike@kothar.net>
-Mike Kabischev <kabischev@gmail.com>
-Mike Rosset <mike.rosset@gmail.com>
-Mike Samuel <mikesamuel@gmail.com>
-Mike Solomon <msolo@gmail.com>
-Mike Strosaker <strosake@us.ibm.com>
-Mike Tsao <mike@sowbug.com>
-Mike Wiacek <mjwiacek@google.com>
-Mikhail Faraponov <11322032+moredure@users.noreply.github.com>
-Mikhail Fesenko <proggga@gmail.com>
-Mikhail Gusarov <dottedmag@dottedmag.net>
-Mikhail Panchenko <m@mihasya.com>
-Miki Tebeka <miki.tebeka@gmail.com>
-Mikio Hara <mikioh.mikioh@gmail.com>
-Mikkel Krautz <mikkel@krautz.dk> <krautz@gmail.com>
-Mikołaj Baranowski <mikolajb@gmail.com>
-Milan Knezevic <milan.knezevic@mips.com>
-Milan Patel <bicelot3@gmail.com>
-Milutin Jovanović <jovanovic.milutin@gmail.com>
-MinJae Kwon <mingrammer@gmail.com>
-Miquel Sabaté Solà <mikisabate@gmail.com>
-Mirko Hansen <baaazen@gmail.com>
-Miroslav Genov <mgenov@gmail.com>
-Misty De Meo <mistydemeo@gmail.com>
-Mohamed Attahri <mohamed@attahri.com>
-Mohit Agarwal <mohit@sdf.org>
-Mohit kumar Bajoria <mohitbajo36@gmail.com>
-Mohit Verma <vmohit.93@gmail.com>
-Momchil Velikov <momchil.velikov@gmail.com>
-Monis Khan <mkhan@redhat.com>
-Monty Taylor <mordred@inaugust.com>
-Moritz Fain <moritz@fain.io>
-Moriyoshi Koizumi <mozo@mozo.jp>
-Morten Siebuhr <sbhr@sbhr.dk>
-Môshe van der Sterre <moshevds@gmail.com>
-Mostafa Solati <mostafa.solati@gmail.com>
-Mostyn Bramley-Moore <mostyn@antipode.se>
-Mrunal Patel <mrunalp@gmail.com>
-Muhammad Falak R Wani <falakreyaz@gmail.com>
-Muhammad Hamza Farrukh <hamzafarrukh141@gmail.com>
-Muhammed Uluyol <uluyol0@gmail.com>
-Muir Manders <muir@mnd.rs>
-Mukesh Sharma <sharma.mukesh439@gmail.com>
-Mura Li <mura_li@castech.com.tw>
-Mykhailo Lesyk <mikhail@lesyk.org>
-Nahum Shalman <nahamu@gmail.com>
-Naman Aggarwal <aggarwal.nam@gmail.com>
-Naman Gera <namangera15@gmail.com>
-Nan Deng <monnand@gmail.com>
-Nao Yonashiro <owan.orisano@gmail.com>
-Naoki Kanatani <k12naoki@gmail.com>
-Natanael Copa <ncopa@mirantis.com>
-Nate Wilkinson <nathanwilk7@gmail.com>
-Nathan Cantelmo <n.cantelmo@gmail.com>
-Nathan Caza <mastercactapus@gmail.com>
-Nathan Dias <nathan.dias@orijtech.com>
-Nathan Fiscaletti <nathan.fiscaletti@vrazo.com>
-Nathan Humphreys <nkhumphreys@gmail.com>
-Nathan John Youngman <nj@nathany.com>
-Nathan Otterness <otternes@cs.unc.edu>
-Nathan P Finch <nate.finch@gmail.com>
-Nathan VanBenschoten <nvanbenschoten@gmail.com>
-Nathan Youngman <git@nathany.com>
-Nathan(yinian) Hu <nathanhu@google.com>
-Nathaniel Cook <nvcook42@gmail.com>
-Naveen Kumar Sangi <naveenkumarsangi@protonmail.com>
-Neeilan Selvalingam <neeilan96@gmail.com>
-Neelesh Chandola <neelesh.c98@gmail.com>
-Nehal J Wani <nehaljw.kkd1@gmail.com>
-Neil Alexander <neilalexander@neilalexander.dev>
-Neil Lyons <nwjlyons@googlemail.com>
-Neuman Vong <neuman.vong@gmail.com>
-Neven Sajko <nsajko@gmail.com>
-Nevins Bartolomeo <nevins.bartolomeo@gmail.com>
-Niall Sheridan <nsheridan@gmail.com>
-Nic Day <nic.day@me.com>
-Nicholas Asimov <nicholas@asimov.me>
-Nicholas Katsaros <nick@nickkatsaros.com>
-Nicholas Maniscalco <nicholas@maniscalco.com>
-Nicholas Ng <nickng@nickng.io>
-Nicholas Presta <nick@nickpresta.ca> <nick1presta@gmail.com>
-Nicholas Sullivan <nicholas.sullivan@gmail.com>
-Nicholas Waples <nwaples@gmail.com>
-Nick Anthony <Liberatys@outlook.com>
-Nick Cooper <nmvc@google.com>
-Nick Craig-Wood <nick@craig-wood.com> <nickcw@gmail.com>
-Nick Harper <nharper@google.com>
-Nick Kubala <nkubala@google.com>
-Nick Leli <nicholasleli@gmail.com>
-Nick Miyake <nmiyake@users.noreply.github.com>
-Nick Patavalis <nick.patavalis@gmail.com>
-Nick Petroni <npetroni@cs.umd.edu>
-Nick Robinson <nrobinson13@gmail.com>
-Nick Sherron <nsherron90@gmail.com>
-Nick Smolin <nick27surgut@gmail.com>
-Nicolas BRULEZ <n.brulez@gmail.com>
-Nicolas Kaiser <nikai@nikai.net>
-Nicolas Owens <mischief@offblast.org>
-Nicolas S. Dade <nic.dade@gmail.com>
-Niek Sanders <niek.sanders@gmail.com>
-Niels Widger <niels.widger@gmail.com>
-Nigel Kerr <nigel.kerr@gmail.com>
-Nigel Tao <nigeltao@golang.org>
-Nik Nyby <nnyby@columbia.edu>
-Nikhil Benesch <nikhil.benesch@gmail.com>
-Nikita Gillmann <nikita@n0.is> <ng0@n0.is>
-Nikita Kryuchkov <nkryuchkov10@gmail.com>
-Nikita Melekhin <nimelehin@gmail.com>
-Nikita Vanyasin <nikita.vanyasin@gmail.com>
-Niklas Schnelle <niklas.schnelle@gmail.com>
-Niko Dziemba <niko@dziemba.com>
-Nikolay Turpitko <nikolay@turpitko.com>
-Nikson Kanti Paul <nikson.sust@gmail.com>
-Nils Larsgård <nilsmagnus@gmail.com>
-Nir Soffer <nirsof@gmail.com>
-Niranjan Godbole <niranjan8192@gmail.com>
-Nishanth Shanmugham <nishanth.gerrard@gmail.com>
-Noah Campbell <noahcampbell@gmail.com>
-Noah Goldman <noahg34@gmail.com>
-Noah Santschi-Cooney <noah@santschi-cooney.ch>
-Noble Johnson <noblepoly@gmail.com>
-Nodir Turakulov <nodir@google.com>
-Noel Georgi <git@frezbo.com>
-Nooras Saba <saba@golang.org>
-Norberto Lopes <nlopes.ml@gmail.com>
-Norman B. Lancaster <qbradq@gmail.com>
-Nuno Cruces <ncruces@users.noreply.github.com>
-Obei Sideg <obei.sideg@gmail.com>
-Obeyda Djeffal <djefobey@gmail.com>
-Odin Ugedal <odin@ugedal.com>
-Oleg Bulatov <dmage@yandex-team.ru>
-Oleg Vakheta <helginet@gmail.com>
-Oleku Konko <oleku.konko@gmail.com>
-Oling Cat <olingcat@gmail.com>
-Oliver Hookins <ohookins@gmail.com>
-Oliver Powell <oliverpowell84@gmail.com>
-Oliver Stenbom <ostenbom@pivotal.io>
-Oliver Tan <otan@cockroachlabs.com>
-Oliver Tonnhofer <olt@bogosoft.com>
-Olivier Antoine <olivier.antoine@gmail.com>
-Olivier Duperray <duperray.olivier@gmail.com>
-Olivier Mengué <olivier.mengue@gmail.com>
-Olivier Poitrey <rs@dailymotion.com>
-Olivier Saingre <osaingre@gmail.com>
-Olivier Wulveryck <olivier.wulveryck@gmail.com>
-Omar Jarjur <ojarjur@google.com>
-Onkar Jadhav <omjadhav2610@gmail.com>
-Ori Bernstein <ori@eigenstate.org>
-Ori Rawlings <orirawlings@gmail.com>
-Oryan Moshe <iamoryanmoshe@gmail.com>
-Osamu TONOMORI <osamingo@gmail.com>
-Oscar Söderlund <oscar.soderlund@einride.tech>
-Özgür Kesim <oec-go@kesim.org>
-Pablo Caderno <kaderno@gmail.com>
-Pablo Lalloni <plalloni@gmail.com>
-Pablo Rozas Larraondo <pablo.larraondo@anu.edu.au>
-Pablo Santiago Blum de Aguiar <scorphus@gmail.com>
-Padraig Kitterick <padraigkitterick@gmail.com>
-Pallat Anchaleechamaikorn <yod.pallat@gmail.com>
-Pan Chenglong <1004907659@qq.com>
-Panos Georgiadis <pgeorgiadis@suse.de>
-Pantelis Sampaziotis <psampaz@gmail.com>
-Paolo Giarrusso <p.giarrusso@gmail.com>
-Paolo Martini <mrtnpaolo@gmail.com>
-Parker Moore <parkrmoore@gmail.com>
-Parminder Singh <parmsingh101@gmail.com>
-Pascal Dierich <pascal@pascaldierich.com>
-Pascal S. de Kloe <pascal@quies.net>
-Paschalis Tsilias <paschalis.tsilias@gmail.com>
-Pasi Tähkäpää <pasi.tahkapaa@gmail.com>
-Pat Moroney <pat@pat.email>
-Patrick Barker <barkerp@vmware.com>
-Patrick Crosby <patrick@stathat.com>
-Patrick Gavlin <pgavlin@gmail.com>
-Patrick Gundlach <gundlach@speedata.de>
-Patrick Higgins <patrick.allen.higgins@gmail.com>
-Patrick Jones <ithuriel@google.com>
-Patrick Lee <pattyshack101@gmail.com>
-Patrick Mézard <patrick@mezard.eu>
-Patrick Mylund Nielsen <patrick@patrickmn.com>
-Patrick Pelletier <pp.pelletier@gmail.com>
-Patrick Riley <pfr@google.com>
-Patrick Smith <pat42smith@gmail.com>
-Patrik Lundin <patrik@sigterm.se>
-Patrik Nyblom <pnyb@google.com>
-Paul A Querna <paul.querna@gmail.com>
-Paul Borman <borman@google.com>
-Paul Boyd <boyd.paul2@gmail.com>
-Paul Chang <paulchang@google.com>
-Paul D. Weber <x0bdev@gmail.com>
-Paul Davis <43160081+Pawls@users.noreply.github.com>
-Paul E. Murphy <murp@ibm.com>
-Paul Forgey <paulf@tessier-ashpool.net>
-Paul Hammond <paul@paulhammond.org>
-Paul Hankin <paulhankin@google.com>
-Paul Jolly <paul@myitcv.org.uk>
-Paul Lalonde <paul.a.lalonde@gmail.com>
-Paul M Furley <paul@paulfurley.com>
-Paul Marks <pmarks@google.com>
-Paul Meyer <paul.meyer@microsoft.com>
-Paul Nasrat <pnasrat@google.com>
-Paul PISCUC <paul.piscuc@gmail.com>
-Paul Querna <pquerna@apache.org>
-Paul Rosania <paul.rosania@gmail.com>
-Paul Ruest <pruest@gmail.com>
-Paul Sbarra <Sbarra.Paul@gmail.com>
-Paul Smith <paulsmith@pobox.com> <paulsmith@gmail.com>
-Paul Tyng <paul@paultyng.net>
-Paul van Brouwershaven <paul@vanbrouwershaven.com>
-Paul Wankadia <junyer@google.com>
-Paulo Casaretto <pcasaretto@gmail.com>
-Paulo Flabiano Smorigo <pfsmorigo@linux.vnet.ibm.com>
-Paulo Gomes <paulo.gomes.uk@gmail.com>
-Pavel Kositsyn <kositsyn.pa@phystech.edu>
-Pavel Paulau <pavel.paulau@gmail.com>
-Pavel Watson <watsonpavel@gmail.com>
-Pavel Zinovkin <pavel.zinovkin@gmail.com>
-Pavlo Sumkin <ymkins@gmail.com>
-Pawel Knap <pawelknap88@gmail.com>
-Pawel Szczur <filemon@google.com>
-Paweł Szulik <pawel.szulik@intel.com>
-Pedro Lopez Mareque <pedro.lopez.mareque@gmail.com>
-Pei Xian Chee <luciolas1991@gmail.com>
-Pei-Ming Wu <p408865@gmail.com>
-Pen Tree <appletree2479@outlook.com>
-Peng Gao <peng.gao.dut@gmail.com>
-Percy Wegmann <ox.to.a.cart@gmail.com>
-Perry Abbott <perry.j.abbott@gmail.com>
-Petar Dambovaliev <petar.atanasov.1987@gmail.com>
-Petar Maymounkov <petarm@gmail.com>
-Peter Armitage <peter.armitage@gmail.com>
-Peter Bourgon <peter@bourgon.org>
-Peter Collingbourne <pcc@google.com>
-Peter Conerly <pconerly@gmail.com>
-Peter Dotchev <dotchev@gmail.com>
-Peter Froehlich <peter.hans.froehlich@gmail.com>
-Peter Gonda <pgonda@google.com>
-Peter Hoyes <pahoyes@gmail.com>
-Peter Kleiweg <pkleiweg@xs4all.nl>
-Peter McKenzie <petermck@google.com>
-Peter Moody <pmoody@uber.com>
-Peter Morjan <pmorjan@gmail.com>
-Peter Mundy <go.peter.90@gmail.com>
-Peter Nguyen <peter@mictis.com>
-Péter Surányi <speter.go1@gmail.com>
-Péter Szabó <pts@google.com>
-Péter Szilágyi <peterke@gmail.com>
-Peter Teichman <pteichman@fastly.com>
-Peter Tseng <ptseng@squareup.com>
-Peter Waldschmidt <peter@waldschmidt.com>
-Peter Waller <peter.waller@gmail.com>
-Peter Weinberger <pjw@golang.org>
-Peter Williams <pwil3058@gmail.com>
-Peter Wu <pwu@cloudflare.com>
-Peter Zhang <i@ddatsh.com>
-Petr Jediný <petr.jediny@gmail.com>
-Petrica Voicu <pvoicu@paypal.com>
-Phil Pearl <philip.j.r.pearl@gmail.com>
-Phil Pennock <pdp@golang.org>
-Philip Børgesen <philip.borgesen@gmail.com>
-Philip Brown <phil@bolthole.com>
-Philip Hofer <phofer@umich.edu>
-Philip K. Warren <pkwarren@gmail.com>
-Philip Nelson <me@pnelson.ca>
-Philipp Sauter <sauterp@protonmail.com>
-Philipp Stephani <phst@google.com>
-Phillip Campbell <15082+phillc@users.noreply.github.com>
-Pierre Carru <pierre.carru@eshard.com>
-Pierre Durand <pierredurand@gmail.com>
-Pierre Prinetti <pierreprinetti@gmail.com>
-Pierre Roullon <pierre.roullon@gmail.com>
-Piers <google@hellopiers.pro>
-Pieter Droogendijk <pieter@binky.org.uk>
-Pietro Gagliardi <pietro10@mac.com>
-Piyush Mishra <piyush@codeitout.com>
-Plekhanov Maxim <kishtatix@gmail.com>
-Poh Zi How <poh.zihow@gmail.com>
-Polina Osadcha <polliosa@google.com>
-Pontus Leitzler <leitzler@gmail.com>
-Povilas Versockas <p.versockas@gmail.com>
-Prajwal Koirala <16564273+Prajwal-Koirala@users.noreply.github.com>
-Prasanga Siripala <pj@pjebs.com.au>
-Prasanna Swaminathan <prasanna@mediamath.com>
-Prashant Agrawal <prashant.a.vjti@gmail.com>
-Prashant Varanasi <prashant@prashantv.com>
-Praveen Kumar <praveen+git@kumar.in>
-Pravendra Singh <hackpravj@gmail.com>
-Preetam Jinka <pj@preet.am>
-Pure White <wu.purewhite@gmail.com>
-Qais Patankar <qaisjp@gmail.com>
-Qiuxuan Zhu <ilsh1022@gmail.com>
-Quan Tran <qeed.quan@gmail.com>
-Quan Yong Zhai <qyzhai@gmail.com>
-Quentin Perez <qperez@ocs.online.net>
-Quentin Renard <contact@asticode.com>
-Quentin Smith <quentin@golang.org>
-Quey-Liang Kao <s101062801@m101.nthu.edu.tw>
-Quim Muntal <quimmuntal@gmail.com>
-Quinn Slack <sqs@sourcegraph.com>
-Quinten Yearsley <qyearsley@chromium.org>
-Quoc-Viet Nguyen <afelion@gmail.com>
-Rabin Gaire <rabingaire20@gmail.com>
-Radek Simko <radek.simko@gmail.com>
-Radek Sohlich <sohlich@gmail.com>
-Radu Berinde <radu@cockroachlabs.com>
-Rafal Jeczalik <rjeczalik@gmail.com>
-Raghavendra Nagaraj <jamdagni86@gmail.com>
-Rahul Bajaj <rahulrb0509@gmail.com>
-Rahul Chaudhry <rahulchaudhry@chromium.org>
-Rahul Wadhwani <rahulwadhwani21@gmail.com>
-Raif S. Naffah <go@naffah-raif.name>
-Rajat Goel <rajat.goel2010@gmail.com>
-Rajath Agasthya <rajathagasthya@gmail.com>
-Rajender Reddy Kompally <rajenderreddykompally@gmail.com>
-Ralph Corderoy <ralph@inputplus.co.uk>
-Ramazan AYYILDIZ <rayyildiz@gmail.com>
-Ramesh Dharan <dharan@google.com>
-Randy Reddig <randy@alta.software>
-Raph Levien <raph@google.com>
-Raphael Geronimi <raphael.geronimi@gmail.com>
-Raul Silvera <rsilvera@google.com>
-Ravil Bikbulatov <weeellz12@gmail.com>
-RaviTeja Pothana <ravi.tezu@gmail.com>
-Ray Tung <rtung@thoughtworks.com>
-Ray Wu <ray@liftoff.io>
-Raymond Kazlauskas <raima220@gmail.com>
-Rebecca Stambler <rstambler@golang.org>
-Reilly Watson <reillywatson@gmail.com>
-Reinaldo de Souza Jr <juniorz@gmail.com>
-Remi Gillig <remigillig@gmail.com>
-Rémy Oudompheng <oudomphe@phare.normalesup.org> <remyoudompheng@gmail.com>
-Ren Ogaki <re.yuz77777@gmail.com>
-Rens Rikkerink <Ikkerens@users.noreply.github.com>
-Rhys Hiltner <rhys@justin.tv>
-Ricardo Padilha <ricardospadilha@gmail.com>
-Ricardo Pchevuzinske Katz <ricardo.katz@serpro.gov.br>
-Ricardo Seriani <ricardo.seriani@gmail.com>
-Rich Hong <hong.rich@gmail.com>
-Richard Barnes <rlb@ipv.sx>
-Richard Crowley <r@rcrowley.org>
-Richard Dingwall <rdingwall@gmail.com>
-Richard Eric Gavaletz <gavaletz@gmail.com>
-Richard Gibson <richard.gibson@gmail.com>
-Richard Miller <miller.research@gmail.com>
-Richard Musiol <mail@richard-musiol.de> <neelance@gmail.com>
-Richard Pickering <richard.pickering@hotmail.co.uk>
-Richard Ulmer <codesoap@mailbox.org>
-Richard Wilkes <wilkes@me.com>
-Rick Arnold <rickarnoldjr@gmail.com>
-Rick Hudson <rlh@golang.org>
-Rick Sayre <whorfin@gmail.com>
-Rijnard van Tonder <rvantonder@gmail.com>
-Riku Voipio <riku.voipio@linaro.org>
-Riley Avron <ra.git@posteo.net>
-Risto Jaakko Saarelma <rsaarelm@gmail.com>
-Rob Earhart <earhart@google.com>
-Rob Findley <rfindley@google.com>
-Rob Norman <rob.norman@infinitycloud.com>
-Rob Phoenix <rob@robphoenix.com>
-Rob Pike <r@golang.org>
-Robert Ayrapetyan <robert.ayrapetyan@gmail.com>
-Robert Burke <rebo@google.com>
-Robert Daniel Kortschak <dan.kortschak@adelaide.edu.au> <dan@kortschak.io>
-Robert Dinu <r@varp.se>
-Robert Engels <rengels@ix.netcom.com>
-Robert Figueiredo <robfig@gmail.com>
-Robert Griesemer <gri@golang.org>
-Robert Hencke <robert.hencke@gmail.com>
-Robert Iannucci <iannucci@google.com>
-Robert Kuska <rkuska@gmail.com>
-Robert Obryk <robryk@gmail.com>
-Robert Sesek <rsesek@google.com>
-Robert Snedegar <roberts@google.com>
-Robert Stepanek <robert.stepanek@gmail.com>
-Robert van Gent <rvangent@google.com>
-Robert-André Mauchin <zebob.m@gmail.com>
-Roberto Clapis <robclap8@gmail.com>
-Roberto Selbach <roberto@selbach.ca>
-Robin Eklind <r.eklind.87@gmail.com>
-Robin Zhong <robin@robinzhong.co>
-Rodolfo Carvalho <rhcarvalho@gmail.com>
-Rodolfo Rodriguez <rodolfobgibson@gmail.com>
-Rodrigo Moraes de Oliveira <rodrigo.moraes@gmail.com>
-Rodrigo Rafael Monti Kochenburger <divoxx@gmail.com>
-Roger Pau Monné <royger@gmail.com>
-Roger Peppe <rogpeppe@gmail.com>
-Rohan Challa <rohan@golang.org>
-Rohan Verma <rohanverma2004@gmail.com>
-Rohith Ravi <entombedvirus@gmail.com>
-Roi Martin <jroi.martin@gmail.com>
-Roland Illig <roland.illig@gmx.de>
-Roland Shoemaker <rolandshoemaker@gmail.com>
-Romain Baugue <romain.baugue@elwinar.com>
-Roman Budnikov <romanyx90@yandex.ru>
-Roman Kollár <roman.kollar.0@gmail.com>
-Roman Shchekin <mrqtros@gmail.com>
-Ron Hashimoto <mail@h2so5.net>
-Ron Minnich <rminnich@gmail.com>
-Ronnie Ebrin <ebrin.ronnie@protonmail.com>
-Ross Chater <rdchater@gmail.com>
-Ross Kinsey <rossikinsey@gmail.com>
-Ross Light <light@google.com> <rlight2@gmail.com>
-Ross Smith II <ross@smithii.com>
-Rowan Marshall <rowanajmarshall@gmail.com>
-Rowan Worth <sqweek@gmail.com>
-Rudi Kramer <rudi.kramer@gmail.com>
-Rui Ueyama <ruiu@google.com>
-Ruixin Bao <ruixin.bao@ibm.com>
-Ruslan Andreev <ruslan.andreev@huawei.com>
-Ruslan Nigmatullin <elessar@dropbox.com>
-Russ Cox <rsc@golang.org>
-Russell Haering <russellhaering@gmail.com>
-Ryan Bagwell <ryanbagwell@outlook.com>
-Ryan Barrett <ryanb@google.com>
-Ryan Boehning <ryan.boehning@apcera.com>
-Ryan Brown <ribrdb@google.com>
-Ryan Canty <jrcanty@gmail.com>
-Ryan Dahl <ry@tinyclouds.org>
-Ryan Hitchman <hitchmanr@gmail.com>
-Ryan Kohler <ryankohler@google.com>
-Ryan Leung <rleungx@gmail.com>
-Ryan Lower <rpjlower@gmail.com>
-Ryan Roden-Corrent <ryan@rcorre.net>
-Ryan Seys <ryan@ryanseys.com>
-Ryan Slade <ryanslade@gmail.com>
-Ryan Zhang <ryan.zhang@docker.com>
-Ryoichi KATO <ryo1kato@gmail.com>
-Ryoya Sekino <ryoyasekino1993@gmail.com>
-Ryuji Iwata <qt.luigi@gmail.com>
-Ryuma Yoshida <ryuma.y1117@gmail.com>
-Ryuzo Yamamoto <ryuzo.yamamoto@gmail.com>
-S.Çağlar Onur <caglar@10ur.org>
-Sabin Mihai Rapan <sabin.rapan@gmail.com>
-Sad Pencil <qh06@qq.com>
-Sai Cheemalapati <saicheems@google.com>
-Sai Kiran Dasika <kirandasika30@gmail.com>
-Sakeven Jiang <jc5930@sina.cn>
-Salaheddin M. Mahmud <salah.mahmud@gmail.com>
-Salmān Aljammāz <s@0x65.net>
-Sam Arnold <sarnold64@bloomberg.net>
-Sam Boyer <tech@samboyer.org>
-Sam Chen <chenxsan@gmail.com>
-Sam Cross <samgcdev@gmail.com>
-Sam Ding <samding@ca.ibm.com>
-Sam Hug <samuel.b.hug@gmail.com>
-Sam Thorogood <thorogood@google.com> <sam.thorogood@gmail.com>
-Sam Whited <sam@samwhited.com>
-Sam Xie <xsambundy@gmail.com>
-Sameer Ajmani <sameer@golang.org> <ajmani@gmail.com>
-Sami Commerot <samic@google.com>
-Sami Pönkänen <sami.ponkanen@gmail.com>
-Samuel Kelemen <SCKelemen@users.noreply.github.com>
-Samuel Tan <samueltan@google.com>
-Samuele Pedroni <pedronis@lucediurna.net>
-San Ye <xyesan@gmail.com>
-Sander van Harmelen <sander@vanharmelen.nl>
-Sanjay Menakuru <balasanjay@gmail.com>
-Santhosh Kumar Tekuri <santhosh.tekuri@gmail.com>
-Santiago De la Cruz <51337247+xhit@users.noreply.github.com>
-Sarah Adams <shadams@google.com>
-Sardorbek Pulatov <sardorbek.pulatov@outlook.com>
-Sascha Brawer <sascha@brawer.ch>
-Sasha Lionheart <lionhearts@google.com>
-Sasha Sobol <sasha@scaledinference.com>
-Satoru Kitaguchi <rule.the.fate.myfirststory@gmail.com>
-Scott Barron <scott.barron@github.com>
-Scott Bell <scott@sctsm.com>
-Scott Cotton <scott@mindowl.com>
-Scott Crunkleton <crunk1@gmail.com>
-Scott Ferguson <scottwferg@gmail.com>
-Scott Lawrence <bytbox@gmail.com>
-Scott Mansfield <smansfield@netflix.com>
-Scott Ragan <ragansa@fb.com>
-Scott Schwartz <scotts@golang.org>
-Scott Van Woudenberg <scottvw@google.com>
-Sean Burford <sburford@google.com>
-Sean Chen <oohcode@gmail.com>
-Sean Chittenden <seanc@joyent.com>
-Sean Christopherson <sean.j.christopherson@intel.com>
-Sean Dolphin <Sean.Dolphin@kpcompass.com>
-Sean Harger <sharger@google.com>
-Sean Harrington <sean.harrington@leftfieldlabs.com>
-Sean Hildebrand <seanwhildebrand@gmail.com>
-Sean Liao <seankhliao@gmail.com>
-Sean Rees <sean@erifax.org>
-Sebastiaan van Stijn <github@gone.nl>
-Sebastian Chlopecki <sebsebmc@gmail.com>
-Sebastian Kinne <skinne@google.com>
-Sebastian Schmidt <yath@google.com>
-Sebastien Binet <seb.binet@gmail.com>
-Sébastien Paolacci <sebastien.paolacci@gmail.com>
-Sebastien Williams-Wynn <sebastien@cytora.com>
-Segev Finer <segev208@gmail.com>
-Seiji Takahashi <timaki.st@gmail.com>
-Sergei Lemeshkin <sergeilem@gmail.com>
-Sergei Skorobogatov <skorobo@rambler.ru>
-Sergei Zagurskii <gvozdoder@gmail.com>
-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 Glushchenko <gsserge@gmail.com>
-Sergey Ivanov <ser1325@gmail.com>
-Sergey Kacheev <S.Kacheev@gmail.com>
-Sergey Lukjanov <me@slukjanov.name>
-Sergey Mishin <sergeymishine@gmail.com>
-Sergey Mudrik <sergey.mudrik@gmail.com>
-Sergey Semin <gray12511@gmail.com>
-Sergey Yanykin <syanykin@ozon.ru>
-Sergio Luis O. B. Correia <sergio@correia.cc>
-Sergiusz Bazanski <bazanski@gmail.com>
-Serhat Giydiren <serhatgiydiren@gmail.com>
-Serhii Aheienko <serhii.aheienko@gmail.com>
-Seth Hoenig <seth.a.hoenig@gmail.com>
-Seth Vargo <sethvargo@gmail.com>
-Shaba Abhiram <shabarivas.abhiram@gmail.com>
-Shahar Kohanim <skohanim@gmail.com>
-Shailesh Suryawanshi <ss.shailesh28@gmail.com>
-Shamil Garatuev <garatuev@gmail.com>
-Shamim Akhtar <shamim.rhce@gmail.com>
-Shane Hansen <shanemhansen@gmail.com>
-Shang Jian Ding <sding3@ncsu.edu>
-Shaozhen Ding <dsz0111@gmail.com>
-Shaquille Que <shaquille@golang.org>
-Shaquille Wyan Que <shaqqywyan@gmail.com>
-Shaun Dunning <shaun.dunning@uservoice.com>
-Shawn Elliott <selliott@microsoft.com>
-Shawn Ledbetter <sledbetter@google.com>
-Shawn Smith <shawn.p.smith@gmail.com>
-Shawn Walker-Salas <shawn.walker@oracle.com>
-Shenghou Ma <minux@golang.org> <minux.ma@gmail.com>
-Shengjing Zhu <zsj950618@gmail.com>
-Shengyu Zhang <shengyu.zhang@chaitin.com>
-Shi Han Ng <shihanng@gmail.com>
-ShihCheng Tu <mrtoastcheng@gmail.com>
-Shijie Hao <haormj@gmail.com>
-Shin Fan <shinfan@google.com>
-Shinji Tanaka <shinji.tanaka@gmail.com>
-Shinnosuke Sawada <6warashi9@gmail.com>
-Shintaro Kaneko <kaneshin0120@gmail.com>
-Shivakumar GN <shivakumar.gn@gmail.com>
-Shivani Singhal <shivani.singhal2804@gmail.com>
-Shivansh Rai <shivansh@freebsd.org>
-Shivashis Padhi <shivashispadhi@gmail.com>
-Shoshin Nikita <shoshin_nikita@fastmail.com>
-Shota Sugiura <s.shota.710.3506@gmail.com>
-Shuai Tan <hopehook.com@gmail.com> <hopehook@qq.com>
-Shubham Sharma <shubham.sha12@gmail.com>
-Shuhei Takahashi <nya@chromium.org>
-Shun Fan <sfan@google.com>
-Silvan Jegen <s.jegen@gmail.com>
-Simão Gomes Viana <simaogmv@gmail.com>
-Simarpreet Singh <simar@linux.com>
-Simon Drake <simondrake1990@gmail.com>
-Simon Ferquel <simon.ferquel@docker.com>
-Simon Frei <freisim93@gmail.com>
-Simon Jefford <simon.jefford@gmail.com>
-Simon Law <sfllaw@sfllaw.ca>
-Simon Rawet <simon@rawet.se>
-Simon Rozman <simon@rozman.si>
-Simon Ser <contact@emersion.fr>
-Simon Thulbourn <simon+github@thulbourn.com>
-Simon Whitehead <chemnova@gmail.com>
-Sina Siadat <siadat@gmail.com>
-Sjoerd Siebinga <sjoerd.siebinga@gmail.com>
-Sokolov Yura <funny.falcon@gmail.com>
-Song Gao <song@gao.io>
-Song Lim <songlim327@gmail.com>
-Songjiayang <songjiayang1@gmail.com>
-Songlin Jiang <hollowman@hollowman.ml>
-Soojin Nam <jsunam@gmail.com>
-Søren L. Hansen <soren@linux2go.dk>
-Sparrow Li <liyuancylx@gmail.com>
-Spencer Kocot <spencerkocot@gmail.com>
-Spencer Nelson <s@spenczar.com>
-Spencer Tung <spencertung@google.com>
-Spenser Black <spenserblack01@gmail.com>
-Spring Mc <heresy.mc@gmail.com>
-Srdjan Petrovic <spetrovic@google.com>
-Sridhar Venkatakrishnan <sridhar@laddoo.net>
-Srinidhi Kaushik <shrinidhi.kaushik@gmail.com>
-StalkR <stalkr@stalkr.net>
-Stan Hu <stanhu@gmail.com>
-Stan Schwertly <stan@schwertly.com>
-Stanislav Afanasev <php.progger@gmail.com>
-Steeve Morin <steeve.morin@gmail.com>
-Stefan Baebler <sbaebler@outbrain.com>
-Stefan Nilsson <snilsson@nada.kth.se> <trolleriprofessorn@gmail.com>
-Stepan Shabalin <neverliberty@gmail.com>
-Stephan Klatt <stephan.klatt@gmail.com>
-Stephan Renatus <srenatus@chef.io>
-Stephan Zuercher <zuercher@gmail.com>
-Stéphane Travostino <stephane.travostino@gmail.com>
-Stephen Lewis <stephen@sock.org.uk>
-Stephen Lu <steuhs@users.noreply.github.com>
-Stephen Ma <stephenm@golang.org>
-Stephen McQuay <stephen@mcquay.me>
-Stephen Searles <stephens2424@gmail.com>
-Stephen Weinberg <stephen@q5comm.com>
-Steve Francia <spf@golang.org>
-Steve Gilbert <stevegilbert23@gmail.com>
-Steve LoFurno <slofurno@gmail.com>
-Steve McCoy <mccoyst@gmail.com>
-Steve Mynott <steve.mynott@gmail.com>
-Steve Newman <snewman@google.com>
-Steve Phillips <elimisteve@gmail.com>
-Steve Streeting <steve@stevestreeting.com>
-Steve Traut <straut@google.com>
-Steven Buss <sbuss@google.com>
-Steven Elliot Harris <seharris@gmail.com>
-Steven Erenst <stevenerenst@gmail.com>
-Steven Hartland <steven.hartland@multiplay.co.uk>
-Steven Littiebrant <imgroxx@gmail.com>
-Steven Maude <git@stevenmaude.co.uk>
-Steven Wilkin <stevenwilkin@gmail.com>
-Stuart Jansen <sjansen@buscaluz.org>
-Subham Sarkar <sarkar.subhams2@gmail.com>
-Sue Spence <virtuallysue@gmail.com>
-Sugu Sougoumarane <ssougou@gmail.com>
-Suharsh Sivakumar <suharshs@google.com>
-Sukrit Handa <sukrit.handa@utoronto.ca>
-Sunny <me@darkowlzz.space>
-Suriyaa Sundararuban <suriyaasundararuban@gmail.com>
-Suvaditya Sur <suvaditya.sur@gmail.com>
-Suyash <dextrous93@gmail.com>
-Suzy Mueller <suzmue@golang.org>
-Sven Almgren <sven@tras.se>
-Sven Blumenstein <svbl@google.com>
-Sven Lee <lee1300394324@gmail.com>
-Sven Taute <sven.taute@gmail.com>
-Sylvain Zimmer <sylvain@sylvainzimmer.com>
-Syohei YOSHIDA <syohex@gmail.com>
-Szabolcs Nagy <nsz@port70.net>
-Taavi Kivisik <taavi.kivisik@gmail.com>
-Tad Fisher <tadfisher@gmail.com>
-Tad Glines <tad.glines@gmail.com>
-Tadas Valiukas <tadovas@gmail.com>
-Tadeo Kondrak <me@tadeo.ca>
-Taesu Pyo <pyotaesu@gmail.com>
-Tai Le <letientai299@gmail.com>
-Taj Khattra <taj.khattra@gmail.com>
-Takashi Matsuo <tmatsuo@google.com>
-Takashi Mima <tks.m1205@gmail.com>
-Takayoshi Nishida <takayoshi.nishida@gmail.com>
-Takeshi YAMANASHI <9.nashi@gmail.com>
-Takuto Ikuta <tikuta@google.com>
-Takuya Ueda <uedatakuya@gmail.com>
-Tal Shprecher <tshprecher@gmail.com>
-Tamás Gulácsi <tgulacsi78@gmail.com>
-Tamir Duberstein <tamird@gmail.com>
-Tao Qingyun <qingyunha@gmail.com>
-Tao Shen <shentaoskyking@gmail.com>
-Tao Wang <twang2218@gmail.com>
-Tarmigan Casebolt <tarmigan@gmail.com>
-Taro Aoki <aizu.s1230022@gmail.com>
-Taru Karttunen <taruti@taruti.net>
-Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
-Tatsuya Kaneko <m.ddotx.f@gmail.com>
-Taufiq Rahman <taufiqrx8@gmail.com>
-Teague Cole <tnc1443@gmail.com>
-Ted Kornish <golang@tedkornish.com>
-Tejasvi Nareddy <tejunareddy@gmail.com>
-Terin Stock <terinjokes@gmail.com>
-Terrel Shumway <gopher@shumway.us>
-Tetsuo Kiso <tetsuokiso9@gmail.com>
-Than McIntosh <thanm@google.com>
-Thanabodee Charoenpiriyakij <wingyminus@gmail.com>
-Thanatat Tamtan <acoshift@gmail.com>
-The Hatsune Daishi <nao20010128@gmail.com>
-Thiago Avelino <t@avelino.xxx>
-Thiago Fransosi Farina <thiago.farina@gmail.com> <tfarina@chromium.org>
-Thom Wiggers <thom@thomwiggers.nl>
-Thomas Alan Copeland <talan.copeland@gmail.com>
-Thomas Bonfort <thomas.bonfort@gmail.com>
-Thomas Bouldin <inlined@google.com>
-Thomas Bruyelle <thomas.bruyelle@gmail.com>
-Thomas Bushnell, BSG <tbushnell@google.com>
-Thomas de Zeeuw <thomasdezeeuw@gmail.com>
-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>
-Tiago Peczenyj <tpeczenyj@weborama.com>
-Tiago Queiroz <contato@tiago.eti.br>
-Tianji Wu <the729@gmail.com>
-Tianon Gravi <admwiggin@gmail.com>
-Tilman Dilo <tilman.dilo@gmail.com>
-Tim Cooijmans <timcooijmans@gmail.com>
-Tim Cooper <tim.cooper@layeh.com>
-Tim Ebringer <tim.ebringer@gmail.com>
-Tim Heckman <t@heckman.io>
-Tim Henderson <tim.tadh@gmail.com>
-Tim Hockin <thockin@google.com>
-Tim King <taking@google.com>
-Tim Möhlmann <muhlemmer@gmail.com>
-Tim Swast <swast@google.com>
-Tim Wright <tenortim@gmail.com>
-Tim Xu <xiaoxubeii@gmail.com>
-Timmy Douglas <timmyd983@gmail.com>
-Timo Savola <timo.savola@gmail.com>
-Timo Truyts <alkaloid.btx@gmail.com>
-Timothy Gu <timothygu99@gmail.com>
-Timothy Studd <tim@timstudd.com>
-Tipp Moseley <tipp@google.com>
-Tiwei Bie <tiwei.btw@antgroup.com>
-Tobias Assarsson <tobias.assarsson@gmail.com>
-Tobias Columbus <tobias.columbus@gmail.com> <tobias.columbus@googlemail.com>
-Tobias Klauser <tklauser@distanz.ch>
-Tobias Kohlbau <tobias@kohlbau.de>
-Toby Burress <kurin@google.com>
-Todd Kulesza <tkulesza@google.com>
-Todd Neal <todd@tneal.org>
-Todd Wang <toddwang@gmail.com>
-Tom Anthony <git@tomanthony.co.uk>
-Tom Bergan <tombergan@google.com>
-Tom Freudenberg <tom.freudenberg@4commerce.de>
-Tom Heng <zhm20070928@gmail.com>
-Tom Lanyon <tomlanyon@google.com>
-Tom Levy <tomlevy93@gmail.com>
-Tom Limoncelli <tal@whatexit.org>
-Tom Linford <tomlinford@gmail.com>
-Tom Panton <tom@tomandtally.co.uk>
-Tom Parkin <tom.parkin@gmail.com>
-Tom Payne <twpayne@gmail.com>
-Tom Szymanski <tgs@google.com>
-Tom Thorogood <me+google@tomthorogood.co.uk>
-Tom Wilkie <tom@weave.works>
-Tom Zierbock <tomzierbock@gmail.com>
-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>
-Tony Walker <walkert.uk@gmail.com>
-Tooru Takahashi <tooru.takahashi134@gmail.com>
-Tor Andersson <tor.andersson@gmail.com>
-Torben Schinke <torben.schinke@neotos.de>
-Tormod Erevik Lea <tormodlea@gmail.com>
-Toshihiro Shiino <shiino.toshihiro@gmail.com>
-Toshiki Shima <hayabusa1419@gmail.com>
-Totoro W <tw19881113@gmail.com>
-Travis Bischel <travis.bischel@gmail.com>
-Travis Cline <travis.cline@gmail.com>
-Trevor Dixon <trevordixon@gmail.com>
-Trevor Strohman <trevor.strohman@gmail.com>
-Trey Lawrence <lawrence.trey@gmail.com>
-Trey Roessig <trey.roessig@gmail.com>
-Trey Tacon <ttacon@gmail.com>
-Tristan Amini <tamini01@ca.ibm.com>
-Tristan Colgate <tcolgate@gmail.com>
-Tristan Ooohry <ooohry@gmail.com>
-Tristan Rice <rice@fn.lc>
-Troels Thomsen <troels@thomsen.io>
-Trong Bui <trong.buiquoc@gmail.com>
-Trung Nguyen <trung.n.k@gmail.com>
-Tsuji Daishiro <dram.dt.shonan@gmail.com>
-Tudor Golubenco <tudor.g@gmail.com>
-Tugdual Saunier <tugdual.saunier@gmail.com>
-Tuo Shan <sturbo89@gmail.com> <shantuo@google.com>
-Tyler Bui-Palsulich <tpalsulich@google.com>
-Tyler Bunnell <tylerbunnell@gmail.com>
-Tyler Treat <ttreat31@gmail.com>
-Tyson Andre <tysonandre775@gmail.com>
-Tzach Shabtay <tzachshabtay@gmail.com>
-Tzu-Chiao Yeh <su3g4284zo6y7@gmail.com>
-Tzu-Jung Lee <roylee17@currant.com>
-Udalov Max <re.udalov@gmail.com>
-Uddeshya Singh <singhuddeshyaofficial@gmail.com>
-Ugorji Nwoke <ugorji@gmail.com>
-Ulf Holm Nielsen <doktor@dyregod.dk>
-Ulrich Kunitz <uli.kunitz@gmail.com>
-Umang Parmar <umangjparmar@gmail.com>
-Uriel Mangado <uriel@berlinblue.org>
-Urvil Patel <patelurvil38@gmail.com>
-Utkarsh Dixit <53217283+utkarsh-extc@users.noreply.github.com>
-Uttam C Pawar <uttam.c.pawar@intel.com>
-Vadim Grek <vadimprog@gmail.com>
-Vadim Vygonets <unixdj@gmail.com>
-Val Polouchkine <vpolouch@justin.tv>
-Valentin Vidic <vvidic@valentin-vidic.from.hr>
-Vaughn Iverson <vsivsi@yahoo.com>
-Vee Zhang <veezhang@126.com> <vveezhang@gmail.com>
-Vega Garcia Luis Alfonso <vegacom@gmail.com>
-Venil Noronha <veniln@vmware.com>
-Veselkov Konstantin <kostozyb@gmail.com>
-Viacheslav Poturaev <vearutop@gmail.com>
-Victor Chudnovsky <vchudnov@google.com>
-Victor Michel <victor@optimyze.cloud>
-Victor Vrantchan <vrancean+github@gmail.com>
-Vignesh Ramachandra <vickyramachandra@gmail.com>
-Vikas Kedia <vikask@google.com>
-Ville Skyttä <ville.skytta@iki.fi>
-Vincent Ambo <tazjin@googlemail.com>
-Vincent Batts <vbatts@hashbangbash.com> <vbatts@gmail.com>
-Vincent Vanackere <vincent.vanackere@gmail.com>
-Vinu Rajashekhar <vinutheraj@gmail.com>
-Vish Subramanian <vish@google.com>
-Vishal Dalwadi <dalwadivishal26@gmail.com>
-Vishvananda Ishaya <vishvananda@gmail.com>
-Visweswara R <r.visweswara@gmail.com>
-Vitaly Zdanevich <zdanevich.vitaly@ya.ru>
-Vitor De Mario <vitordemario@gmail.com>
-Vivek Sekhar <vsekhar@google.com>
-Vivek V <iamvivekv96@gmail.com>
-Vivian Liang <vliang88@gmail.com>
-Vlad Krasnov <vlad@cloudflare.com>
-Vladimir Evgrafov <evgrafov.vladimir@gmail.com>
-Vladimir Kovpak <cn007b@gmail.com>
-Vladimir Kuzmin <vkuzmin@uber.com>
-Vladimir Mihailenco <vladimir.webdev@gmail.com>
-Vladimir Nikishenko <vova616@gmail.com>
-Vladimir Stefanovic <vladimir.stefanovic@imgtec.com>
-Vladimir Varankin <nek.narqo@gmail.com>
-Vojtech Bocek <vbocek@gmail.com>
-Volker Dobler <dr.volker.dobler@gmail.com>
-Volodymyr Paprotski <vpaprots@ca.ibm.com>
-Vyacheslav Pachkov <slava.pach@gmail.com>
-W. Trevor King <wking@tremily.us>
-Wade Simmons <wade@wades.im>
-Wagner Riffel <wgrriffel@gmail.com>
-Walt Della <walt@javins.net>
-Walter Poupore <wpoupore@google.com>
-Wander Lairson Costa <wcosta@mozilla.com>
-Wang Xuerui <git@xen0n.name>
-Warren Fernandes <warren.f.fernandes@gmail.com>
-Wayne Ashley Berry <wayneashleyberry@gmail.com>
-Wayne Zuo <wdvxdr1123@gmail.com> <wdvxdr@golangcn.org>
-Wedson Almeida Filho <wedsonaf@google.com>
-Weerasak Chongnguluam <singpor@gmail.com>
-Wèi Cōngruì <crvv.mail@gmail.com>
-Wei Fu <fhfuwei@163.com>
-Wei Guangjing <vcc.163@gmail.com>
-Wei Xiao <wei.xiao@arm.com>
-Wei Xikai <xykwei@gmail.com>
-Weichao Tang <tevic.tt@gmail.com>
-Weilu Jia <optix2000@gmail.com>
-Weixie Cui <cuiweixie@gmail.com> <523516579@qq.com>
-Wembley G. Leach, Jr <wembley.gl@gmail.com>
-Wen Yang <yangwen.yw@gmail.com>
-Wenlei (Frank) He <wlhe@google.com>
-Wenzel Lowe <lowewenzel@gmail.com>
-Wil Selwood <wselwood@gmail.com>
-Wilfried Teiken <wteiken@google.com>
-Will Beason <willbeason@gmail.com>
-Will Chan <willchan@google.com>
-Will Faught <will.faught@gmail.com>
-Will Morrow <wmorrow.qdt@qualcommdatacenter.com>
-Will Norris <willnorris@google.com>
-Will Storey <will@summercat.com>
-Willem van der Schyff <willemvds@gmail.com>
-William Chan <willchan@chromium.org>
-William Chang <mr.williamchang@gmail.com>
-William Josephson <wjosephson@gmail.com>
-William Langford <wlangfor@gmail.com>
-William Orr <will@worrbase.com> <ay1244@gmail.com>
-William Poussier <william.poussier@gmail.com>
-Wisdom Omuya <deafgoat@gmail.com>
-Wu Yunzhou <yunzhouwu@gmail.com>
-Xi Ruoyao <xry23333@gmail.com>
-Xia Bin <snyh@snyh.org>
-Xiangdong Ji <xiangdong.ji@arm.com>
-Xiaodong Liu <teaofmoli@gmail.com>
-Xing Gao <18340825824@163.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>
-Xuyang Kang <xuyangkang@gmail.com>
-Yamagishi Kazutoshi <ykzts@desire.sh>
-Yan Zou <yzou@google.com>
-Yang Hau <vulxj0j8j8@gmail.com>
-Yang Tian <linuxty@gmail.com>
-Yann Hodique <yhodique@google.com>
-Yann Kerhervé <yann.kerherve@gmail.com>
-Yann Salaün <yannsalaun1@gmail.com>
-Yannic Bonenberger <contact@yannic-bonenberger.com>
-Yao Zhang <lunaria21@gmail.com>
-Yaron de Leeuw <jarondl@google.com>
-Yaroslav Vorobiov <yar.vorobiov@gmail.com>
-Yasha Bubnov <girokompass@gmail.com>
-Yasser Abdolmaleki <yasser@yasser.ca>
-Yasuharu Goto <matope.ono@gmail.com>
-Yasuhiro Matsumoto <mattn.jp@gmail.com>
-Yasutaka Shinzaki <shinzaki@yasu26.tech>
-Yasuyuki Oka <yasuyk@gmail.com>
-Yazen Shunnar <yazen.shunnar@gmail.com>
-Yestin Sun <ylh@pdx.edu>
-Yesudeep Mangalapilly <yesudeep@google.com>
-Yissakhar Z. Beck <yissakhar.beck@gmail.com>
-Yo-An Lin <yoanlin93@gmail.com>
-Yohei Takeda <yo.tak0812@gmail.com>
-Yongjian Xu <i3dmaster@gmail.com>
-Yorman Arias <cixtords@gmail.com>
-Yoshiyuki Kanno <nekotaroh@gmail.com> <yoshiyuki.kanno@stoic.co.jp>
-Yoshiyuki Mineo <yoshiyuki.mineo@gmail.com>
-Yosuke Akatsuka <yosuke.akatsuka@gmail.com>
-Youfu Zhang <zhangyoufu@gmail.com>
-Yu Heng Zhang <annita.zhang@cn.ibm.com>
-Yu Xuan Zhang <zyxsh@cn.ibm.com>
-Yu, Li-Yu <afg984@gmail.com>
-Yuichi Kishimoto <yk2220s@gmail.com>
-Yuichi Nishiwaki <yuichi.nishiwaki@gmail.com>
-Yuji Yaginuma <yuuji.yaginuma@gmail.com>
-Yuki Ito <mrno110y@gmail.com>
-Yuki OKUSHI <huyuumi.dev@gmail.com>
-Yuki Osaki <yuki.osaki7@gmail.com>
-Yuki Yugui Sonoda <yugui@google.com>
-Yukihiro Nishinaka <6elpinal@gmail.com>
-YunHao Zhang <zhangyunhao116@gmail.com> <zhangyunhao@bytedance.com>
-YunQiang Su <syq@debian.org>
-Yuntao Wang <ytcoode@gmail.com>
-Yury Smolsky <yury@smolsky.by>
-Yusuke Kagiwada <block.rxckin.beats@gmail.com>
-Yuusei Kuwana <kuwana@kumama.org>
-Yuval Pavel Zholkover <paulzhol@gmail.com>
-Yves Junqueira <yvesj@google.com> <yves.junqueira@gmail.com>
-Zac Bergquist <zbergquist99@gmail.com>
-Zach Bintliff <zbintliff@gmail.com>
-Zach Gershman <zachgersh@gmail.com>
-Zach Hoffman <zrhoffman@apache.org>
-Zach Jones <zachj1@gmail.com>
-Zachary Amsden <zach@thundertoken.com>
-Zachary Burkett <zburkett@splitcubestudios.com>
-Zachary Gershman <zgershman@pivotal.io>
-Zaiyang Li <zaiyangli777@gmail.com>
-Zak <zrjknill@gmail.com>
-Zakatell Kanda <hi@zkanda.io>
-Zellyn Hunter <zellyn@squareup.com> <zellyn@gmail.com>
-Zev Goldstein <zev.goldstein@gmail.com>
-Zhang Boyang <zhangboyang.id@gmail.com>
-Zheng Dayu <davidzheng23@gmail.com>
-Zheng Xu <zheng.xu@arm.com>
-Zhengyu He <hzy@google.com>
-Zhi Zheng <zhi.zheng052@gmail.com>
-Zhongpeng Lin <zplin@uber.com>
-Zhongtao Chen <chenzhongtao@126.com>
-Zhongwei Yao <zhongwei.yao@arm.com>
-Zhou Guangyuan <zhouguangyuan.xian@gmail.com>
-Zhou Peng <p@ctriple.cn>
-Ziad Hatahet <hatahet@gmail.com>
-Ziheng Liu <lzhfromustc@gmail.com>
-Zizhao Zhang <btw515wolf2@gmail.com>
-Zorion Arrizabalaga <zorionk@gmail.com>
-Zvonimir Pavlinovic <zpavlinovic@google.com>
-Zyad A. Ali <zyad.ali.me@gmail.com>
-Максадбек Ахмедов <a.maksadbek@gmail.com>
-Максим Федосеев <max.faceless.frei@gmail.com>
-Роман Хавроненко <hagen1778@gmail.com>
-Тарас Буник <tbunyk@gmail.com>
-Фахриддин Балтаев <faxriddinjon@gmail.com>
-张嵩 <zs349596@gmail.com>
-申习之 <bronze1man@gmail.com>
diff --git a/doc/go1.19.html b/doc/go1.19.html
deleted file mode 100644
index 53c11bd26e..0000000000
--- a/doc/go1.19.html
+++ /dev/null
@@ -1,919 +0,0 @@
-<!--{
- "Title": "Go 1.19 Release Notes",
- "Path": "/doc/go1.19"
-}-->
-<!--
-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.19</h2>
-<p>
- <strong>
- Go 1.19 is not yet released. These are work-in-progress
- release notes. Go 1.19 is expected to be released in August 2022.
- </strong>
-</p>
-
-<h2 id="language">Changes to the language</h2>
-
-<p><!-- https://go.dev/issue/52038 -->
- There is only one small change to the language,
- a <a href="https://github.com/golang/go/issues/52038">very small correction</a>
- to the <a href="/ref/spec#Declarations_and_scope">scope of type parameters in method declarations</a>.
- Existing programs are unaffected.
-</p>
-
-<h2 id="mem">Memory Model</h2>
-
-<p><!-- https://go.dev/issue/50859 -->
- The <a href="/ref/mem">Go memory model</a> has been revised to align Go with
- the memory model used by C, C++, Java, JavaScript, Rust, and Swift.
- Go only provides sequentially consistent atomics, not any of the more relaxed forms found in other languages.
- Along with the memory model update,
- Go 1.19 introduces <a href="#atomic_types">new types in the <code>sync/atomic</code> package</a>
- that make it easier to use atomic values, such as
- <a href="/pkg/sync/atomic/#Int64">atomic.Int64</a>
- and
- <a href="/pkg/sync/atomic/#Pointer">atomic.Pointer[T]</a>.
-</p>
-
-<h2 id="ports">Ports</h2>
-
-<h3 id="loong64">Loongson 64-bit</h3>
-<p><!-- https://go.dev/issue/46229 -->
- Go 1.19 adds support for the Loongson 64-bit architecture LoongArch
- on Linux (<code>GOOS=linux</code>, <code>GOARCH=loong64</code>).
-</p>
-
-<h3 id="riscv64">RISC-V</h3>
-<p><!-- CL 402374 -->
- The <code>riscv64</code> port now supports passing function arguments
- and result using registers. Benchmarking shows typical performance
- improvements of 10% or more on <code>riscv64</code>.
-</p>
-
-<h2 id="tools">Tools</h2>
-
-<h3 id="go-doc">Doc Comments</h3>
-
-<p><!-- https://go.dev/issue/51082 --><!-- CL 384265, CL 397276, CL 397278, CL 397279, CL 397281, CL 397284 -->
-Go 1.19 adds support for links, lists, and clearer headings in doc comments.
-As part of this change, <a href="/cmd/gofmt"><code>gofmt</code></a>
-now reformats doc comments to make their rendered meaning clearer.
-See “<a href="/doc/comment">Go Doc Comments</a>”
-for syntax details and descriptions of common mistakes now highlighted by <code>gofmt</code>.
-As another part of this change, the new package <a href="/pkg/go/doc/comment">go/doc/comment</a>
-provides parsing and reformatting of doc comments
-as well as support for rendering them to HTML, Markdown, and text.
-</p>
-
-<h3 id="go-unix">New <code>unix</code> build constraint</h3>
-
-<p><!-- CL 389934 --><!-- https://go.dev/issue/20322 --><!-- https://go.dev/issue/51572 -->
- The build constraint <code>unix</code> is now recognized
- in <code>//go:build</code> lines. The constraint is satisfied
- if the target operating system, also known as <code>GOOS</code>, is
- a Unix or Unix-like system. For the 1.19 release it is satisfied
- if <code>GOOS</code> is one of
- <code>aix</code>, <code>android</code>, <code>darwin</code>,
- <code>dragonfly</code>, <code>freebsd</code>, <code>hurd</code>,
- <code>illumos</code>, <code>ios</code>, <code>linux</code>,
- <code>netbsd</code>, <code>openbsd</code>, or <code>solaris</code>.
- In future releases the <code>unix</code> constraint may match
- additional newly supported operating systems.
-</p>
-
-<h3 id="go-command">Go command</h3>
-
-<!-- https://go.dev/issue/51461 -->
-<p>
- The <code>-trimpath</code> flag, if set, is now included in the build settings
- stamped into Go binaries by <code>go</code> <code>build</code>, and can be
- examined using
- <a href="https://pkg.go.dev/cmd/go#hdr-Print_Go_version"><code>go</code> <code>version</code> <code>-m</code></a>
- or <a href="https://pkg.go.dev/runtime/debug#ReadBuildInfo"><code>debug.ReadBuildInfo</code></a>.
-</p>
-<p>
- <code>go</code> <code>generate</code> now sets the <code>GOROOT</code>
- environment variable explicitly in the generator's environment, so that
- generators can locate the correct <code>GOROOT</code> even if built
- with <code>-trimpath</code>.
-</p>
-
-<p><!-- CL 404134 -->
- <code>go</code> <code>test</code> and <code>go</code> <code>generate</code> now place
- <code>GOROOT/bin</code> at the beginning of the <code>PATH</code> used for the
- subprocess, so tests and generators that execute the <code>go</code> command
- will resolve it to same <code>GOROOT</code>.
-</p>
-
-<p><!-- CL 398058 -->
- <code>go</code> <code>env</code> now quotes entries that contain spaces in
- the <code>CGO_CFLAGS</code>, <code>CGO_CPPFLAGS</code>, <code>CGO_CXXFLAGS</code>, <code>CGO_FFLAGS</code>, <code>CGO_LDFLAGS</code>,
- and <code>GOGCCFLAGS</code> variables it reports.
-</p>
-
-<p><!-- CL 410821 -->
- The <code>go</code> command now caches information necessary to load some modules,
- which should result in a speed-up of some <code>go</code> <code>list</code> invocations.
-</p>
-
-<h3 id="vet">Vet</h3>
-
-<p><!-- https://go.dev/issue/47528 -->
- The <code>vet</code> checker “errorsas” now reports when
- <a href="/pkg/errors/#As"><code>errors.As</code></a> is called
- with a second argument of type <code>*error</code>,
- a common mistake.
-</p>
-
-<h2 id="runtime">Runtime</h2>
-
-<p><!-- https://go.dev/issue/48409 --><!-- CL 397018 -->
- The runtime now includes support for a soft memory limit. This memory limit
- includes the Go heap and all other memory managed by the runtime, and
- excludes external memory sources such as mappings of the binary itself,
- memory managed in other languages, and memory held by the operating system on
- behalf of the Go program. This limit may be managed via
- <a href="/pkg/runtime/debug/#SetMemoryLimit"><code>runtime/debug.SetMemoryLimit</code></a>
- or the equivalent
- <a href="/pkg/runtime/#hdr-Environment_Variables"><code>GOMEMLIMIT</code></a>
- environment variable. The limit works in conjunction with
- <a href="/pkg/runtime/debug/#SetGCPercent"><code>runtime/debug.SetGCPercent</code></a>
- / <a href="/pkg/runtime/#hdr-Environment_Variables"><code>GOGC</code></a>,
- and will be respected even if <code>GOGC=off</code>, allowing Go programs to
- always make maximal use of their memory limit, improving resource efficiency
- in some cases. See <a href="/doc/gc-guide">the GC guide</a> for
- a detailed guide explaining the soft memory limit in more detail, as well as
- a variety of common use-cases and scenarios. Please note that small memory
- limits, on the order of tens of megabytes or less, are less likely to be
- respected due to external latency factors, such as OS scheduling. See
- <a href="https://go.dev/issue/52433">issue 52433</a> for more details. Larger
- memory limits, on the order of hundreds of megabytes or more, are stable and
- production-ready.
-</p>
-
-<p><!-- CL 353989 -->
- In order to limit the effects of GC thrashing when the program's live heap
- size approaches the soft memory limit, the Go runtime also attempts to limit
- total GC CPU utilization to 50%, excluding idle time, choosing to use more
- memory over preventing application progress. In practice, we expect this limit
- to only play a role in exceptional cases, and the new
- <a href="/pkg/runtime/metrics/#hdr-Supported_metrics">runtime metric</a>
- <code>/gc/limiter/last-enabled:gc-cycle</code> reports when this last
- occurred.
-</p>
-
-<p><!-- https://go.dev/issue/44163 -->
- The runtime now schedules many fewer GC worker goroutines on idle operating
- system threads when the application is idle enough to force a periodic GC
- cycle.
-</p>
-
-<p><!-- https://go.dev/issue/18138 --><!-- CL 345889 -->
- The runtime will now allocate initial goroutine stacks based on the historic
- average stack usage of goroutines. This avoids some of the early stack growth
- and copying needed in the average case in exchange for at most 2x wasted
- space on below-average goroutines.
-</p>
-
-<p><!-- https://go.dev/issue/46279 --><!-- CL 393354 --><!-- CL 392415 -->
- On Unix operating systems, Go programs that import package
- <a href="/pkg/os/">os</a> now automatically increase the open file limit
- (<code>RLIMIT_NOFILE</code>) to the maximum allowed value;
- that is, they change the soft limit to match the hard limit.
- This corrects artificially low limits set on some systems for compatibility with very old C programs using the
- <a href="https://en.wikipedia.org/wiki/Select_(Unix)"><i>select</i></a> system call.
- Go programs are not helped by that limit, and instead even simple programs like <code>gofmt</code>
- often ran out of file descriptors on such systems when processing many files in parallel.
- One impact of this change is that Go programs that in turn execute very old C programs in child processes
- may run those programs with too high a limit.
- This can be corrected by setting the hard limit before invoking the Go program.
-</p>
-
-<p><!-- https://go.dev/issue/51485 --><!-- CL 390421 -->
- Unrecoverable fatal errors (such as concurrent map writes, or unlock of
- unlocked mutexes) now print a simpler traceback excluding runtime metadata
- (equivalent to a fatal panic) unless <code>GOTRACEBACK=system</code> or
- <code>crash</code>. Runtime-internal fatal error tracebacks always include
- full metadata regardless of the value of <code>GOTRACEBACK</code>
-</p>
-
-<p><!-- https://go.dev/issue/50614 --><!-- CL 395754 -->
- Support for debugger-injected function calls has been added on ARM64,
- enabling users to call functions from their binary in an interactive
- debugging session when using a debugger that is updated to make use of this
- functionality.
-</p>
-
-<p><!-- https://go.dev/issue/44853 -->
- The <a href="/doc/go1.18#go-build-asan">address sanitizer support added in Go 1.18</a>
- now handles function arguments and global variables more precisely.
-</p>
-
-<h2 id="compiler">Compiler</h2>
-
-<p><!-- https://go.dev/issue/5496 --><!-- CL 357330, 395714, 403979 -->
- The compiler now uses
- a <a href="https://en.wikipedia.org/wiki/Branch_table">jump
- table</a> to implement large integer and string switch statements.
- Performance improvements for the switch statement vary but can be
- on the order of 20% faster.
- (<code>GOARCH=amd64</code> and <code>GOARCH=arm64</code> only)
-</p>
-<p><!-- CL 391014 -->
- The Go compiler now requires the <code>-p=importpath</code> flag to
- build a linkable object file. This is already supplied by
- the <code>go</code> command and by Bazel. Any other build systems
- that invoke the Go compiler directly will need to make sure they
- pass this flag as well.
-</p>
-
-<h2 id="assembler">Assembler</h2>
-<p><!-- CL 404298 -->
- Like the compiler, the assembler now requires the
- <code>-p=importpath</code> flag to build a linkable object file.
- This is already supplied by the <code>go</code> command. Any other
- build systems that invoke the Go assembler directly will need to
- make sure they pass this flag as well.
-</p>
-
-<h2 id="linker">Linker</h2>
-<p><!-- https://go.dev/issue/50796, CL 380755 -->
- On ELF platforms, the linker now emits compressed DWARF sections in
- the standard gABI format (<code>SHF_COMPRESSED</code>), instead of
- the legacy <code>.zdebug</code> format.
-</p>
-
-<h2 id="library">Core library</h2>
-
-<h3 id="atomic_types">New atomic types</h3>
-
-<p><!-- https://go.dev/issue/50860 --><!-- CL 381317 -->
- The <a href="/pkg/sync/atomic/"><code>sync/atomic</code></a> package defines new atomic types
- <a href="/pkg/sync/atomic/#Bool"><code>Bool</code></a>,
- <a href="/pkg/sync/atomic/#Int32"><code>Int32</code></a>,
- <a href="/pkg/sync/atomic/#Int64"><code>Int64</code></a>,
- <a href="/pkg/sync/atomic/#Uint32"><code>Uint32</code></a>,
- <a href="/pkg/sync/atomic/#Uint64"><code>Uint64</code></a>,
- <a href="/pkg/sync/atomic/#Uintptr"><code>Uintptr</code></a>, and
- <a href="/pkg/sync/atomic/#Pointer"><code>Pointer</code></a>.
- These types hide the underlying values so that all accesses are forced to use
- the atomic APIs.
- <a href="/pkg/sync/atomic/#Pointer"><code>Pointer</code></a> also avoids
- the need to convert to
- <a href="/pkg/unsafe/#Pointer"><code>unsafe.Pointer</code></a> at call sites.
- <a href="/pkg/sync/atomic/#Int64"><code>Int64</code></a> and
- <a href="/pkg/sync/atomic/#Uint64"><code>Uint64</code></a> are
- automatically aligned to 64-bit boundaries in structs and allocated data,
- even on 32-bit systems.
-</p>
-
-<h3 id="os-exec-path">PATH lookups</h3>
-
-<p><!-- https://go.dev/issue/43724 -->
- <!-- CL 381374 --><!-- CL 403274 -->
- <a href="/pkg/os/exec/#Command"><code>Command</code></a> and
- <a href="/pkg/os/exec/#LookPath"><code>LookPath</code></a> no longer
- allow results from a PATH search to be found relative to the current directory.
- This removes a <a href="/blog/path-security">common source of security problems</a>
- but may also break existing programs that depend on using, say, <code>exec.Command("prog")</code>
- to run a binary named <code>prog</code> (or, on Windows, <code>prog.exe</code>) in the current directory.
- See the <a href="/pkg/os/exec/"><code>os/exec</code></a> package documentation for
- information about how best to update such programs.
-</p>
-
-<p><!-- https://go.dev/issue/43947 -->
- On Windows, <code>Command</code> and <code>LookPath</code> now respect the
- <a href="https://docs.microsoft.com/en-us/windows/win32/api/processenv/nf-processenv-needcurrentdirectoryforexepatha"><code>NoDefaultCurrentDirectoryInExePath</code></a>
- environment variable, making it possible to disable
- the default implicit search of “<code>.</code>” in PATH lookups on Windows systems.
-</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.
- There are also various performance improvements, not enumerated here.
-</p>
-
-<dl id="archive/zip"><dt><a href="/pkg/archive/zip/">archive/zip</a></dt>
- <dd>
- <p><!-- CL 387976 -->
- <a href="/pkg/archive/zip/#Reader"><code>Reader</code></a>
- now ignores non-ZIP data at the start of a ZIP file, matching most other implementations.
- This is necessary to read some Java JAR files, among other uses.
- </p>
- </dd>
-</dl><!-- archive/zip -->
-
-<dl id="crypto/rand"><dt><a href="/pkg/crypto/rand/">crypto/rand</a></dt>
- <dd>
- <p><!-- CL 370894 --><!-- CL 390038 -->
- <a href="/pkg/crypto/rand/#Read"><code>Read</code></a> no longer buffers
- random data obtained from the operating system between calls.
- </p>
-
- <p><!-- CL 375215 -->
- On Plan 9, <code>Read</code> has been reimplemented, replacing the ANSI
- X9.31 algorithm with fast key erasure.
- </p>
- </dd>
-</dl><!-- crypto/rand -->
-
-<dl id="crypto/tls"><dt><a href="/pkg/crypto/tls/">crypto/tls</a></dt>
- <dd>
- <p><!-- CL 400974 --><!-- https://go.dev/issue/45428 -->
- The <code>tls10default</code> <code>GODEBUG</code> option has been
- removed. It is still possible to enable TLS 1.0 client-side by setting
- <a href="/pkg/crypto/tls#Config.MinVersion"><code>Config.MinVersion</code></a>.
- </p>
-
- <p><!-- CL 384894 -->
- The TLS server and client now reject duplicate extensions in TLS
- handshakes, as required by RFC 5246, Section 7.4.1.4 and RFC 8446, Section
- 4.2.
- </p>
- </dd>
-</dl><!-- crypto/tls -->
-
-<dl id="crypto/x509"><dt><a href="/pkg/crypto/x509/">crypto/x509</a></dt>
- <dd>
- <p><!-- CL 285872 -->
- <a href="/pkg/crypto/x509/#CreateCertificate"><code>CreateCertificate</code></a>
- no longer supports creating certificates with <code>SignatureAlgorithm</code>
- set to <code>MD5WithRSA</code>.
- </p>
-
- <p><!-- CL 400494 -->
- <code>CreateCertificate</code> no longer accepts negative serial numbers.
- </p>
-
- <p><!-- CL 383215 -->
- <a href="/pkg/crypto/x509/#ParseCertificate"><code>ParseCertificate</code></a>
- and <a href="/pkg/crypto/x509/#ParseCertificateRequest"><code>ParseCertificateRequest</code></a>
- now reject certificates and CSRs which contain duplicate extensions.
- </p>
-
- <p><!-- https://go.dev/issue/46057 --><!-- https://go.dev/issue/35044 --><!-- CL 398237 --><!-- CL 400175 --><!-- CL 388915 -->
- The new <a href="/pkg/crypto/x509/#CertPool.Clone"><code>CertPool.Clone</code></a>
- and <a href="/pkg/crypto/x509/#CertPool.Equal"><code>CertPool.Equal</code></a>
- methods allow cloning a <code>CertPool</code> and checking the equality of two
- <code>CertPool</code>s respectively.
- </p>
-
- <p><!-- https://go.dev/issue/50674 --><!-- CL 390834 -->
- The new function <a href="/pkg/crypto/x509/#ParseRevocationList"><code>ParseRevocationList</code></a>
- provides a faster, safer to use CRL parser which returns a
- <a href="/pkg/crypto/x509/#RevocationList"><code>RevocationList</code></a>.
- To support this addition, <code>RevocationList</code> adds new fields
- <code>RawIssuer</code>, <code>Signature</code>,
- <code>AuthorityKeyId</code>, and <code>Extensions</code>.
-
- The new method <a href="/pkg/crypto/x509/#RevocationList.CheckSignatureFrom"><code>RevocationList.CheckSignatureFrom</code></a>
- checks that the signature on a CRL is a valid signature from a
- <a href="/pkg/crypto/x509/#Certificate"><code>Certificate</code></a>.
-
- With the new CRL functionality, the existing functions
- <a href="/pkg/crypto/x509/#ParseCRL"><code>ParseCRL</code></a> and
- <a href="/pkg/crypto/x509/#ParseDERCRL"><code>ParseDERCRL</code></a> are deprecated.
- Additionally the method <a href="/pkg/crypto/x509#Certificate.CheckCRLSignature"><code>Certificate.CheckCRLSignature</code></a>
- is deprecated.
- </p>
-
- <p><!-- CL 389555 -->
- When building paths, <a href="/pkg/crypto/x509/#Certificate.Verify"><code>Certificate.Verify</code></a>
- now considers certificates to be equal when the subjects, public keys, and SANs
- are all equal. Before, it required byte-for-byte equality.
- </p>
- </dd>
-</dl><!-- crypto/x509 -->
-
-<dl id="crypto/x509/pkix"><dt><a href="/pkg/crypto/x509/pkix">crypto/x509/pkix</a></dt>
- <dd>
- <p><!-- CL 390834 -->
- The types <a href="/pkg/crypto/x509/pkix#CertificateList"><code>CertificateList</code></a> and
- <a href="/pkg/crypto/x509/pkix#TBSCertificateList"><code>TBSCertificateList</code></a>
- have been deprecated. The new <a href="#crypto/x509"><code>crypto/x509</code> CRL functionality</a>
- should be used instead.
- </p>
- </dd>
-</dl><!-- crypto/x509/pkix -->
-
-<dl id="debug"><dt><a href="/pkg/debug/">debug</a></dt>
- <dd>
- <p><!-- CL 396735 -->
- The new <code>EM_LONGARCH</code> and <code>R_LARCH_*</code> constants
- support the loong64 port.
- </p>
- </dd>
-</dl><!-- debug -->
-
-<dl id="debug/pe"><dt><a href="/pkg/debug/pe/">debug/pe</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/51868 --><!-- CL 394534 -->
- The new <a href="/pkg/debug/pe/#File.COFFSymbolReadSectionDefAux"><code>File.COFFSymbolReadSectionDefAux</code></a>
- method, which returns a <a href="/pkg/debug/pe/#COFFSymbolAuxFormat5"><code>COFFSymbolAuxFormat5</code></a>,
- provides access to COMDAT information in PE file sections.
- These are supported by new <code>IMAGE_COMDAT_*</code> and <code>IMAGE_SCN_*</code> constants.
- </p>
- </dd>
-</dl><!-- debug/pe -->
-
-<dl id="encoding/binary"><dt><a href="/pkg/encoding/binary/">encoding/binary</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/50601 --><!-- CL 386017 --><!-- CL 389636 -->
- The new interface
- <a href="/pkg/encoding/binary/#AppendByteOrder"><code>AppendByteOrder</code></a>
- provides efficient methods for appending a <code>uint16</code>, <code>uint32</code>, or <code>uint64</code>
- to a byte slice.
- <a href="/pkg/encoding/binary/#BigEndian"><code>BigEndian</code></a> and
- <a href="/pkg/encoding/binary/#LittleEndian"><code>LittleEndian</code></a> now implement this interface.
- </p>
- <p><!-- https://go.dev/issue/51644 --><!-- CL 400176 -->
- Similarly, the new functions
- <a href="/pkg/encoding/binary/#AppendUvarint"><code>AppendUvarint</code></a> and
- <a href="/pkg/encoding/binary/#AppendVarint"><code>AppendVarint</code></a>
- are efficient appending versions of
- <a href="/pkg/encoding/binary/#PutUvarint"><code>PutUvarint</code></a> and
- <a href="/pkg/encoding/binary/#PutVarint"><code>PutVarint</code></a>.
- </p>
- </dd>
-</dl><!-- encoding/binary -->
-
-<dl id="encoding/csv"><dt><a href="/pkg/encoding/csv/">encoding/csv</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/43401 --><!-- CL 405675 -->
- The new method
- <a href="/pkg/encoding/csv/#Reader.InputOffset"><code>Reader.InputOffset</code></a>
- reports the reader's current input position as a byte offset,
- analogous to <code>encoding/json</code>'s
- <a href="/pkg/encoding/json/#Decoder.InputOffset"><code>Decoder.InputOffset</code></a>.
- </p>
- </dd>
-</dl><!-- encoding/csv -->
-
-<dl id="encoding/xml"><dt><a href="/pkg/encoding/xml/">encoding/xml</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/45628 --><!-- CL 311270 -->
- The new method
- <a href="/pkg/encoding/xml/#Decoder.InputPos"><code>Decoder.InputPos</code></a>
- reports the reader's current input position as a line and column,
- analogous to <code>encoding/csv</code>'s
- <a href="/pkg/encoding/csv/#Decoder.FieldPos"><code>Decoder.FieldPos</code></a>.
- </p>
- </dd>
-</dl><!-- encoding/xml -->
-
-<dl id="flag"><dt><a href="/pkg/flag/">flag</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/45754 --><!-- CL 313329 -->
- The new function
- <a href="/pkg/flag/#TextVar"><code>TextVar</code></a>
- defines a flag with a value implementing
- <a href="/pkg/encoding/#TextUnmarshaler"><code>encoding.TextUnmarshaler</code></a>,
- allowing command-line flag variables to have types such as
- <a href="/pkg/math/big/#Int"><code>big.Int</code></a>,
- <a href="/pkg/net/netip/#Addr"><code>netip.Addr</code></a>, and
- <a href="/pkg/time/#Time"><code>time.Time</code></a>.
- </p>
- </dd>
-</dl><!-- flag -->
-
-<dl id="fmt"><dt><a href="/pkg/fmt/">fmt</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/47579 --><!-- CL 406177 -->
- The new functions
- <a href="/pkg/fmt/#Append"><code>Append</code></a>,
- <a href="/pkg/fmt/#Appendf"><code>Appendf</code></a>, and
- <a href="/pkg/fmt/#Appendln"><code>Appendln</code></a>
- append formatted data to byte slices.
- </p>
- </dd>
-</dl><!-- fmt -->
-
-<dl id="go/parser"><dt><a href="/pkg/go/parser/">go/parser</a></dt>
- <dd>
- <p><!-- CL 403696 -->
- The parser now recognizes <code>~x</code> as a unary expression with operator
- <a href="/pkg/go/token#TILDE">token.TILDE</a>,
- allowing better error recovery when a type constraint such as <code>~int</code> is used in an incorrect context.
- </p>
- </dd>
-</dl><!-- go/parser -->
-
-<dl id="go/types"><dt><a href="/pkg/go/types/">go/types</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/51682 --><!-- CL 395535 -->
- The new methods <a href="/pkg/go/types/#Func.Origin"><code>Func.Origin</code></a>
- and <a href="/pkg/go/types/#Var.Origin"><code>Var.Origin</code></a> return the
- corresponding <a href="/pkg/go/types/#Object"><code>Object</code></a> of the
- generic type for synthetic <a href="/pkg/go/types/#Func"><code>Func</code></a>
- and <a href="/pkg/go/types/#Var"><code>Var</code></a> objects created during type
- instantiation.
- </p>
- <p><!-- https://go.dev/issue/52728 --><!-- CL 404885 -->
- It is no longer possible to produce an infinite number of distinct-but-identical
- <a href="/pkg/go/types/#Named"><code>Named</code></a> type instantiations via
- recursive calls to
- <a href="/pkg/go/types/#Named.Underlying"><code>Named.Underlying</code></a> or
- <a href="/pkg/go/types/#Named.Method"><code>Named.Method</code></a>.
- </p>
- </dd>
-</dl><!-- go/types -->
-
-
-<dl id="hash/maphash"><dt><a href="/pkg/hash/maphash/">hash/maphash</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/42710 --><!-- CL 392494 -->
- The new functions
- <a href="/pkg/hash/maphash/#Bytes"><code>Bytes</code></a>
- and
- <a href="/pkg/hash/maphash/#String"><code>String</code></a>
- provide an efficient way hash a single byte slice or string.
- They are equivalent to using the more general
- <a href="/pkg/hash/maphash/#Hash"><code>Hash</code></a>
- with a single write, but they avoid setup overhead for small inputs.
- </p>
- </dd>
-</dl><!-- hash/maphash -->
-
-<dl id="html/template"><dt><a href="/pkg/html/template/">html/template</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/46121 --><!-- CL 389156 -->
- The type <a href="/pkg/html/template/#FuncMap"><code>FuncMap</code></a>
- is now an alias for
- <code>text/template</code>'s <a href="/pkg/text/template/#FuncMap"><code>FuncMap</code></a>
- instead of its own named type.
- This allows writing code that operates on a <code>FuncMap</code> from either setting.
- </p>
- </dd>
-</dl><!-- html/template -->
-
-<dl id="image/draw"><dt><a href="/pkg/image/draw/">image/draw</a></dt>
- <dd>
- <p><!-- CL 396795 -->
- <a href="/pkg/image/draw/#Draw"><code>Draw</code></a> with the
- <a href="/pkg/image/draw/#Src"><code>Src</code></a> operator preserves
- non-premultiplied-alpha colors when destination and source images are
- both <a href="/pkg/image/#NRGBA"><code>image.NRGBA</code></a>
- or both <a href="/pkg/image/#NRGBA64"><code>image.NRGBA64</code></a>.
- This reverts a behavior change accidentally introduced by a Go 1.18
- library optimization; the code now matches the behavior in Go 1.17 and earlier.
- </p>
- </dd>
-</dl><!-- image/draw -->
-
-<dl id="io"><dt><a href="/pkg/io/">io</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/51566 --><!-- CL 400236 -->
- <a href="/pkg/io/#NopCloser"><code>NopCloser</code></a>'s result now implements
- <a href="/pkg/io/#WriterTo"><code>WriterTo</code></a>
- whenever its input does.
- </p>
-
- <p><!-- https://go.dev/issue/50842 -->
- <a href="/pkg/io/#MultiReader"><code>MultiReader</code></a>'s result now implements
- <a href="/pkg/io/#WriterTo"><code>WriterTo</code></a> unconditionally.
- If any underlying reader does not implement <code>WriterTo</code>,
- it is simulated appropriately.
- </p>
- </dd>
-</dl><!-- io -->
-
-<dl id="mime"><dt><a href="/pkg/mime/">mime</a></dt>
- <dd>
- <p><!-- CL 406894 -->
- On Windows only, the mime package now ignores a registry entry
- recording that the extension <code>.js</code> should have MIME
- type <code>text/plain</code>. This is a common unintentional
- misconfiguration on Windows systems. The effect is
- that <code>.js</code> will have the default MIME
- type <code>text/javascript; charset=utf-8</code>.
- Applications that expect <code>text/plain</code> on Windows must
- now explicitly call
- <a href="/pkg/mime/#AddExtensionType"><code>AddExtensionType</code></a>.
- </p>
- </dd>
-</dl>
-
-<dl id="net"><dt><a href="/pkg/net/">net</a></dt>
- <dd>
- <p><!-- CL 386016 -->
- The pure Go resolver will now use EDNS(0) to include a suggested
- maximum reply packet length, permitting reply packets to contain
- up to 1232 bytes (the previous maximum was 512).
- In the unlikely event that this causes problems with a local DNS
- resolver, setting the environment variable
- <code>GODEBUG=netdns=cgo</code> to use the cgo-based resolver
- should work.
- Please report any such problems on <a href="/issue/new">the
- issue tracker</a>.
- </p>
-
- <p><!-- https://go.dev/issue/51428 --><!-- CL 396877 -->
- When a net package function or method returns an "I/O timeout"
- error, the error will now satisfy <code>errors.Is(err,
- context.DeadlineExceeded)</code>. When a net package function
- returns an "operation was canceled" error, the error will now
- satisfy <code>errors.Is(err, context.Canceled)</code>.
- These changes are intended to make it easier for code to test
- for cases in which a context cancellation or timeout causes a net
- package function or method to return an error, while preserving
- backward compatibility for error messages.
- </p>
-
- <p><!-- https://go.dev/issue/33097 --><!-- CL 400654 -->
- <a href="/pkg/net/#Resolver.PreferGo"><code>Resolver.PreferGo</code></a>
- is now implemented on Windows and Plan 9. It previously only worked on Unix
- platforms. Combined with
- <a href="/pkg/net/#Dialer.Resolver"><code>Dialer.Resolver</code></a> and
- <a href="/pkg/net/#Resolver.Dial"><code>Resolver.Dial</code></a>, it's now
- possible to write portable programs and be in control of all DNS name lookups
- when dialing.
- </p>
-
- <p>
- The <code>net</code> package now has initial support for the <code>netgo</code>
- build tag on Windows. When used, the package uses the Go DNS client (as used
- by <code>Resolver.PreferGo</code>) instead of asking Windows for
- DNS results. The upstream DNS server it discovers from Windows
- may not yet be correct with complex system network configurations, however.
- </p>
- </dd>
-</dl><!-- net -->
-
-<dl id="net/http"><dt><a href="/pkg/net/http/">net/http</a></dt>
- <dd>
- <p><!-- CL 269997 -->
- <a href="/pkg/net/http/#ResponseWriter"><code>ResponseWriter.WriteHeader</code></a>
- now supports sending user-defined 1xx informational headers.
- </p>
-
- <p><!-- CL 361397 -->
- The <code>io.ReadCloser</code> returned by
- <a href="/pkg/net/http/#MaxBytesReader"><code>MaxBytesReader</code></a>
- will now return the defined error type
- <a href="/pkg/net/http/#MaxBytesError"><code>MaxBytesError</code></a>
- when its read limit is exceeded.
- </p>
-
- <p><!-- CL 375354 -->
- The HTTP client will handle a 3xx response without a
- <code>Location</code> header by returning it to the caller,
- rather than treating it as an error.
- </p>
- </dd>
-</dl><!-- net/http -->
-
-<dl id="net/url"><dt><a href="/pkg/net/url/">net/url</a></dt>
- <dd>
- <p><!-- CL 374654 -->
- The new
- <a href="/pkg/net/url/#JoinPath"><code>JoinPath</code></a>
- function and
- <a href="/pkg/net/url/#URL.JoinPath"><code>URL.JoinPath</code></a>
- method create a new <code>URL</code> by joining a list of path
- elements.
- </p>
- <p><!-- https://go.dev/issue/46059 -->
- The <code>URL</code> type now distinguishes between URLs with no
- authority and URLs with an empty authority. For example,
- <code>http:///path</code> has an empty authority (host),
- while <code>http:/path</code> has none.
- </p>
- <p>
- The new <a href="/pkg/net/url/#URL"><code>URL</code></a> field
- <code>OmitHost</code> is set to <code>true</code> when a
- <code>URL</code> has an empty authority.
- </p>
-
- </dd>
-</dl><!-- net/url -->
-
-<dl id="os/exec"><dt><a href="/pkg/os/exec/">os/exec</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/50599 --><!-- CL 401340 -->
- A <a href="/pkg/os/exec/#Cmd"><code>Cmd</code></a> with a non-empty <code>Dir</code> field
- and nil <code>Env</code> now implicitly sets the <code>PWD</code> environment
- variable for the subprocess to match <code>Dir</code>.
- </p>
- <p>
- The new method <a href="/pkg/os/exec/#Cmd.Environ"><code>Cmd.Environ</code></a> reports the
- environment that would be used to run the command, including the
- implicitly set <code>PWD</code> variable.
- </p>
- </dd>
-</dl> <!-- os/exec -->
-
-<dl id="reflect"><dt><a href="/pkg/reflect/">reflect</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/47066 --><!-- CL 357331 -->
- The method <a href="/pkg/reflect/#Value.Bytes"><code>Value.Bytes</code></a>
- now accepts addressable arrays in addition to slices.
- </p>
- <p><!-- CL 400954 -->
- The methods <a href="/pkg/reflect/#Value.Len"><code>Value.Len</code></a>
- and <a href="/pkg/reflect/#Value.Cap"><code>Value.Cap</code></a>
- now successfully operate on a pointer to an array and return the length of that array,
- to match what the <a href="/ref/spec#Length_and_capacity">builtin
- <code>len</code> and <code>cap</code> functions do</a>.
- </p>
- </dd>
-</dl><!-- reflect -->
-
-<dl id="regexp/syntax"><dt><a href="/pkg/regexp/syntax/">regexp/syntax</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/51684 --><!-- CL 401076 -->
- Go 1.18 release candidate 1, Go 1.17.8, and Go 1.16.15 included a security fix
- to the regular expression parser, making it reject very deeply nested expressions.
- Because Go patch releases do not introduce new API,
- the parser returned <a href="/pkg/regexp/syntax/#ErrInternalError"><code>syntax.ErrInternalError</code></a> in this case.
- Go 1.19 adds a more specific error, <a href="/pkg/regexp/syntax/#ErrNestingDepth"><code>syntax.ErrNestingDepth</code></a>,
- which the parser now returns instead.
- </p>
- </dd>
-</dl><!-- regexp -->
-
-<dl id="pkg-runtime"><dt><a href="/pkg/runtime/">runtime</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/51461 -->
- The <a href="/pkg/runtime/#GOROOT"><code>GOROOT</code></a> function now returns the empty string
- (instead of <code>"go"</code>) when the binary was built with
- the <code>-trimpath</code> flag set and the <code>GOROOT</code>
- variable is not set in the process environment.
- </p>
- </dd>
-</dl><!-- runtime -->
-
-<dl id="runtime/metrics"><dt><a href="/pkg/runtime/metrics/">runtime/metrics</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/47216 --><!-- CL 404305 -->
- The new <code>/sched/gomaxprocs:threads</code>
- <a href="/pkg/runtime/metrics/#hdr-Supported_metrics">metric</a> reports
- the current
- <a href="/pkg/runtime/#GOMAXPROCS"><code>runtime.GOMAXPROCS</code></a>
- value.
- </p>
-
- <p><!-- https://go.dev/issue/47216 --><!-- CL 404306 -->
- The new <code>/cgo/go-to-c-calls:calls</code>
- <a href="/pkg/runtime/metrics/#hdr-Supported_metrics">metric</a>
- reports the total number of calls made from Go to C. This metric is
- identical to the
- <a href="/pkg/runtime/#NumCgoCall"><code>runtime.NumCgoCall</code></a>
- function.
- </p>
-
- <p><!-- https://go.dev/issue/48409 --><!-- CL 403614 -->
- The new <code>/gc/limiter/last-enabled:gc-cycle</code>
- <a href="/pkg/runtime/metrics/#hdr-Supported_metrics">metric</a>
- reports the last GC cycle when the GC CPU limiter was enabled. See the
- <a href="#runtime">runtime notes</a> for details about the GC CPU limiter.
- </p>
- </dd>
-</dl><!-- runtime/metrics -->
-
-<dl id="runtime/pprof"><dt><a href="/pkg/runtime/pprof/">runtime/pprof</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/33250 --><!-- CL 387415 -->
- Stop-the-world pause times have been significantly reduced when
- collecting goroutine profiles, reducing the overall latency impact to the
- application.
- </p>
-
- <p><!-- CL 391434 -->
- <code>MaxRSS</code> is now reported in heap profiles for all Unix
- operating systems (it was previously only reported for
- <code>GOOS=android</code>, <code>darwin</code>, <code>ios</code>, and
- <code>linux</code>).
- </p>
- </dd>
-</dl><!-- runtime/pprof -->
-
-<dl id="runtime/race"><dt><a href="/pkg/runtime/race/">runtime/race</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/49761 --><!-- CL 333529 -->
- The race detector has been upgraded to use thread sanitizer
- version v3 on all supported platforms
- except <code>windows/amd64</code>
- and <code>openbsd/amd64</code>, which remain on v2.
- Compared to v2, it is now typically 1.5x to 2x faster, uses half
- as much memory, and it supports an unlimited number of
- goroutines.
- On Linux, the race detector now requires at least glibc version 2.17.
- </p>
-
- <p><!-- CL 336549 -->
- The race detector is now supported on <code>GOARCH=s390x</code>.
- </p>
-
- <p><!-- https://go.dev/issue/52090 -->
- Race detector support for <code>openbsd/amd64</code> has been
- removed from thread sanitizer upstream, so it is unlikely to
- ever be updated from v2.
- </p>
- </dd>
-</dl><!-- runtime/race -->
-
-<dl id="runtime/trace"><dt><a href="/pkg/runtime/trace/">runtime/trace</a></dt>
- <dd>
- <p><!-- CL 400795 -->
- When tracing and the
- <a href="/pkg/runtime/pprof#StartCPUProfile">CPU profiler</a> are
- enabled simultaneously, the execution trace includes CPU profile
- samples as instantaneous events.
- </p>
- </dd>
-</dl><!-- runtime/trace -->
-
-<dl id="sort"><dt><a href="/pkg/sort/">sort</a></dt>
- <dd>
- <p><!-- CL 371574 -->
- The sorting algorithm has been rewritten to use
- <a href="https://arxiv.org/pdf/2106.05123.pdf">pattern-defeating quicksort</a>, which
- is faster for several common scenarios.
- </p>
- <p><!-- https://go.dev/issue/50340 --><!-- CL 396514 -->
- The new function
- <a href="/pkg/sort/#Find">Find</a>
- is like
- <a href="/pkg/sort/#Search">Search</a>
- but often easier to use: it returns an additional boolean reporting whether an equal value was found.
- </p>
- </dd>
-</dl><!-- sort -->
-
-<dl id="strconv"><dt><a href="/pkg/strconv/">strconv</a></dt>
- <dd>
- <p><!-- CL 397255 -->
- <a href="/pkg/strconv/#Quote"><code>Quote</code></a>
- and related functions now quote the rune U+007F as <code>\x7f</code>,
- not <code>\u007f</code>,
- for consistency with other ASCII values.
- </p>
- </dd>
-</dl><!-- strconv -->
-
-<dl id="syscall"><dt><a href="/pkg/syscall/">syscall</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/51192 --><!-- CL 385796 -->
- On PowerPC (<code>GOARCH=ppc64</code>, <code>ppc64le</code>),
- <a href="/pkg/syscall/#Syscall"><code>Syscall</code></a>,
- <a href="/pkg/syscall/#Syscall6"><code>Syscall6</code></a>,
- <a href="/pkg/syscall/#RawSyscall"><code>RawSyscall</code></a>, and
- <a href="/pkg/syscall/#RawSyscall6"><code>RawSyscall6</code></a>
- now always return 0 for return value <code>r2</code> instead of an
- undefined value.
- </p>
-
- <p><!-- CL 391434 -->
- On AIX and Solaris, <code>Getrusage</code> is now defined.
- </p>
- </dd>
-</dl><!-- syscall -->
-
-<dl id="time"><dt><a href="/pkg/time/">time</a></dt>
- <dd>
- <p><!-- https://go.dev/issue/51414 --><!-- CL 393515 -->
- The new method
- <a href="/pkg/time/#Duration.Abs"><code>Duration.Abs</code></a>
- provides a convenient and safe way to take the absolute value of a duration,
- converting −2⁶³ to 2⁶³−1.
- (This boundary case can happen as the result of subtracting a recent time from the zero time.)
- </p>
- <p><!-- https://go.dev/issue/50062 --><!-- CL 405374 -->
- The new method
- <a href="/pkg/time/#Time.ZoneBounds"><code>Time.ZoneBounds</code></a>
- returns the start and end times of the time zone in effect at a given time.
- It can be used in a loop to enumerate all the known time zone transitions at a given location.
- </p>
- </dd>
-</dl><!-- time -->
-
-<!-- Silence these false positives from x/build/cmd/relnote: -->
-<!-- CL 382460 -->
-<!-- CL 384154 -->
-<!-- CL 384554 -->
-<!-- CL 392134 -->
-<!-- CL 392414 -->
-<!-- CL 396215 -->
-<!-- CL 403058 -->
-<!-- CL 410133 -->
-<!-- https://go.dev/issue/27837 -->
-<!-- https://go.dev/issue/38340 -->
-<!-- https://go.dev/issue/42516 -->
-<!-- https://go.dev/issue/45713 -->
-<!-- https://go.dev/issue/46654 -->
-<!-- https://go.dev/issue/48257 -->
-<!-- https://go.dev/issue/50447 -->
-<!-- https://go.dev/issue/50720 -->
-<!-- https://go.dev/issue/50792 -->
-<!-- https://go.dev/issue/51115 -->
-<!-- https://go.dev/issue/51447 -->
diff --git a/misc/cgo/test/setgid2_linux.go b/misc/cgo/test/setgid2_linux.go
index 9069cff334..438f5ae512 100644
--- a/misc/cgo/test/setgid2_linux.go
+++ b/misc/cgo/test/setgid2_linux.go
@@ -20,10 +20,7 @@ import (
)
func testSetgidStress(t *testing.T) {
- var N = 1000
- if testing.Short() {
- N = 50
- }
+ const N = 50
ch := make(chan int, N)
for i := 0; i < N; i++ {
go func() {
diff --git a/misc/cgo/testcshared/cshared_test.go b/misc/cgo/testcshared/cshared_test.go
index e4898778be..7fbcff24dd 100644
--- a/misc/cgo/testcshared/cshared_test.go
+++ b/misc/cgo/testcshared/cshared_test.go
@@ -151,16 +151,22 @@ func testMain(m *testing.M) int {
// The installation directory format varies depending on the platform.
output, err := exec.Command("go", "list",
"-buildmode=c-shared",
- "-installsuffix", "testcshared",
"-f", "{{.Target}}",
- "./libgo").CombinedOutput()
+ "runtime/cgo").CombinedOutput()
if err != nil {
log.Panicf("go list failed: %v\n%s", err, output)
}
- target := string(bytes.TrimSpace(output))
- libgoname = filepath.Base(target)
- installdir = filepath.Dir(target)
- libSuffix = strings.TrimPrefix(filepath.Ext(target), ".")
+ runtimeCgoTarget := string(bytes.TrimSpace(output))
+ libSuffix = strings.TrimPrefix(filepath.Ext(runtimeCgoTarget), ".")
+
+ defer func() {
+ if installdir != "" {
+ err := os.RemoveAll(installdir)
+ if err != nil {
+ log.Panic(err)
+ }
+ }
+ }()
return m.Run()
}
@@ -284,8 +290,13 @@ func createHeaders() error {
}
// Generate a C header file for libgo itself.
- args = []string{"go", "install", "-buildmode=c-shared",
- "-installsuffix", "testcshared", "./libgo"}
+ installdir, err = os.MkdirTemp("", "testcshared")
+ if err != nil {
+ return err
+ }
+ libgoname = "libgo." + libSuffix
+
+ args = []string{"go", "build", "-buildmode=c-shared", "-o", filepath.Join(installdir, libgoname), "./libgo"}
cmd = exec.Command(args[0], args[1:]...)
out, err = cmd.CombinedOutput()
if err != nil {
@@ -373,6 +384,7 @@ func createHeadersOnce(t *testing.T) {
headersErr = createHeaders()
})
if headersErr != nil {
+ t.Helper()
t.Fatal(headersErr)
}
}
@@ -705,12 +717,15 @@ func TestCachedInstall(t *testing.T) {
copyFile(t, filepath.Join(tmpdir, "src", "testcshared", "libgo", "libgo.go"), filepath.Join("libgo", "libgo.go"))
copyFile(t, filepath.Join(tmpdir, "src", "testcshared", "p", "p.go"), filepath.Join("p", "p.go"))
- env := append(os.Environ(), "GOPATH="+tmpdir, "GOBIN="+filepath.Join(tmpdir, "bin"))
-
buildcmd := []string{"go", "install", "-x", "-buildmode=c-shared", "-installsuffix", "testcshared", "./libgo"}
cmd := exec.Command(buildcmd[0], buildcmd[1:]...)
cmd.Dir = filepath.Join(tmpdir, "src", "testcshared")
+ env := append(cmd.Environ(),
+ "GOPATH="+tmpdir,
+ "GOBIN="+filepath.Join(tmpdir, "bin"),
+ "GO111MODULE=off", // 'go install' only works in GOPATH mode
+ )
cmd.Env = env
t.Log(buildcmd)
out, err := cmd.CombinedOutput()
diff --git a/misc/cgo/testplugin/plugin_test.go b/misc/cgo/testplugin/plugin_test.go
index e8587e69ba..285681018a 100644
--- a/misc/cgo/testplugin/plugin_test.go
+++ b/misc/cgo/testplugin/plugin_test.go
@@ -307,6 +307,12 @@ func TestIssue52937(t *testing.T) {
goCmd(t, "build", "-buildmode=plugin", "-o", "issue52937.so", "./issue52937/main.go")
}
+func TestIssue53989(t *testing.T) {
+ goCmd(t, "build", "-buildmode=plugin", "-o", "issue53989.so", "./issue53989/plugin.go")
+ goCmd(t, "build", "-o", "issue53989.exe", "./issue53989/main.go")
+ run(t, "./issue53989.exe")
+}
+
func TestForkExec(t *testing.T) {
// Issue 38824: importing the plugin package causes it hang in forkExec on darwin.
diff --git a/misc/cgo/testplugin/testdata/issue53989/main.go b/misc/cgo/testplugin/testdata/issue53989/main.go
new file mode 100644
index 0000000000..6907dfd858
--- /dev/null
+++ b/misc/cgo/testplugin/testdata/issue53989/main.go
@@ -0,0 +1,32 @@
+// Copyright 2022 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.
+
+// Issue 53989: the use of jump table caused a function
+// from the plugin jumps in the middle of the function
+// to the function with the same name in the main
+// executable. As these two functions may be compiled
+// differently as plugin needs to be PIC, this causes
+// crash.
+
+package main
+
+import (
+ "plugin"
+
+ "testplugin/issue53989/p"
+)
+
+func main() {
+ p.Square(7) // call the function in main executable
+
+ p, err := plugin.Open("issue53989.so")
+ if err != nil {
+ panic(err)
+ }
+ f, err := p.Lookup("Square")
+ if err != nil {
+ panic(err)
+ }
+ f.(func(int))(7) // call the plugin one
+}
diff --git a/misc/cgo/testplugin/testdata/issue53989/p/p.go b/misc/cgo/testplugin/testdata/issue53989/p/p.go
new file mode 100644
index 0000000000..02567c1cee
--- /dev/null
+++ b/misc/cgo/testplugin/testdata/issue53989/p/p.go
@@ -0,0 +1,52 @@
+// Copyright 2022 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.
+
+package p
+
+import (
+ "fmt"
+ "runtime"
+)
+
+var y int
+
+//go:noinline
+func Square(x int) {
+ var pc0, pc1 [1]uintptr
+ runtime.Callers(1, pc0[:]) // get PC at entry
+
+ // a switch using jump table
+ switch x {
+ case 1:
+ y = 1
+ case 2:
+ y = 4
+ case 3:
+ y = 9
+ case 4:
+ y = 16
+ case 5:
+ y = 25
+ case 6:
+ y = 36
+ case 7:
+ y = 49
+ case 8:
+ y = 64
+ default:
+ panic("too large")
+ }
+
+ // check PC is in the same function
+ runtime.Callers(1, pc1[:])
+ if pc1[0] < pc0[0] || pc1[0] > pc0[0]+1000000 {
+ fmt.Printf("jump across DSO boundary. pc0=%x, pc1=%x\n", pc0[0], pc1[0])
+ panic("FAIL")
+ }
+
+ if y != x*x {
+ fmt.Printf("x=%d y=%d!=%d\n", x, y, x*x)
+ panic("FAIL")
+ }
+}
diff --git a/misc/cgo/testplugin/testdata/issue53989/plugin.go b/misc/cgo/testplugin/testdata/issue53989/plugin.go
new file mode 100644
index 0000000000..a753ee4419
--- /dev/null
+++ b/misc/cgo/testplugin/testdata/issue53989/plugin.go
@@ -0,0 +1,13 @@
+// Copyright 2022 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.
+
+package main
+
+import "testplugin/issue53989/p"
+
+func Square(x int) { // export Square for plugin
+ p.Square(x)
+}
+
+func main() {}
diff --git a/misc/cgo/testshared/shared_test.go b/misc/cgo/testshared/shared_test.go
index 024f084da5..756c4baa6b 100644
--- a/misc/cgo/testshared/shared_test.go
+++ b/misc/cgo/testshared/shared_test.go
@@ -108,6 +108,15 @@ func testMain(m *testing.M) (int, error) {
defer os.RemoveAll(workDir)
}
+ // -buildmode=shared fundamentally does not work in module mode.
+ // (It tries to share package dependencies across builds, but in module mode
+ // each module has its own distinct set of dependency versions.)
+ // We would like to eliminate it (see https://go.dev/issue/47788),
+ // but first need to figure out a replacement that covers the small subset
+ // of use-cases where -buildmode=shared still works today.
+ // For now, run the tests in GOPATH mode only.
+ os.Setenv("GO111MODULE", "off")
+
// Some tests need to edit the source in GOPATH, so copy this directory to a
// temporary directory and chdir to that.
gopath := filepath.Join(workDir, "gopath")
diff --git a/src/bytes/reader.go b/src/bytes/reader.go
index 5946cf9780..81c22aa029 100644
--- a/src/bytes/reader.go
+++ b/src/bytes/reader.go
@@ -32,8 +32,7 @@ func (r *Reader) Len() int {
// Size returns the original length of the underlying byte slice.
// Size is the number of bytes available for reading via ReadAt.
-// The returned value is always the same and is not affected by calls
-// to any other method.
+// The result is unaffected by any method calls except Reset.
func (r *Reader) Size() int64 { return int64(len(r.s)) }
// Read implements the io.Reader interface.
diff --git a/src/cmd/cgo/out.go b/src/cmd/cgo/out.go
index d6740028da..119eca2be7 100644
--- a/src/cmd/cgo/out.go
+++ b/src/cmd/cgo/out.go
@@ -1653,10 +1653,18 @@ const cStringDef = `
// freed, such as by calling C.free (be sure to include stdlib.h
// if C.free is needed).
func _Cfunc_CString(s string) *_Ctype_char {
+ if len(s)+1 <= 0 {
+ panic("string too large")
+ }
p := _cgo_cmalloc(uint64(len(s)+1))
- pp := (*[1<<30]byte)(p)
- copy(pp[:], s)
- pp[len(s)] = 0
+ sliceHeader := struct {
+ p unsafe.Pointer
+ len int
+ cap int
+ }{p, len(s)+1, len(s)+1}
+ b := *(*[]byte)(unsafe.Pointer(&sliceHeader))
+ copy(b, s)
+ b[len(s)] = 0
return (*_Ctype_char)(p)
}
`
@@ -1670,8 +1678,13 @@ const cBytesDef = `
// if C.free is needed).
func _Cfunc_CBytes(b []byte) unsafe.Pointer {
p := _cgo_cmalloc(uint64(len(b)))
- pp := (*[1<<30]byte)(p)
- copy(pp[:], b)
+ sliceHeader := struct {
+ p unsafe.Pointer
+ len int
+ cap int
+ }{p, len(b), len(b)}
+ s := *(*[]byte)(unsafe.Pointer(&sliceHeader))
+ copy(s, b)
return p
}
`
diff --git a/src/cmd/compile/doc.go b/src/cmd/compile/doc.go
index b8862f62cf..60e12630c5 100644
--- a/src/cmd/compile/doc.go
+++ b/src/cmd/compile/doc.go
@@ -68,9 +68,6 @@ Flags:
-importcfg file
Read import configuration from file.
In the file, set importmap, packagefile to specify import resolution.
- -importmap old=new
- Interpret import "old" as import "new" during compilation.
- The option may be repeated to add multiple mappings.
-installsuffix suffix
Look for packages in $GOROOT/pkg/$GOOS_$GOARCH_suffix
instead of $GOROOT/pkg/$GOOS_$GOARCH.
diff --git a/src/cmd/compile/internal/amd64/versions_test.go b/src/cmd/compile/internal/amd64/versions_test.go
index 2ac6e95c91..b6411a1cb0 100644
--- a/src/cmd/compile/internal/amd64/versions_test.go
+++ b/src/cmd/compile/internal/amd64/versions_test.go
@@ -242,12 +242,31 @@ var featureToOpcodes = map[string][]string{
// go tool objdump doesn't include a [QL] on popcnt instructions, until CL 351889
// native objdump doesn't include [QL] on linux.
"popcnt": {"popcntq", "popcntl", "popcnt"},
- "bmi1": {"andnq", "andnl", "andn", "blsiq", "blsil", "blsi", "blsmskq", "blsmskl", "blsmsk", "blsrq", "blsrl", "blsr", "tzcntq", "tzcntl", "tzcnt"},
- "bmi2": {"sarxq", "sarxl", "sarx", "shlxq", "shlxl", "shlx", "shrxq", "shrxl", "shrx"},
- "sse41": {"roundsd"},
- "fma": {"vfmadd231sd"},
- "movbe": {"movbeqq", "movbeq", "movbell", "movbel", "movbe"},
- "lzcnt": {"lzcntq", "lzcntl", "lzcnt"},
+ "bmi1": {
+ "andnq", "andnl", "andn",
+ "blsiq", "blsil", "blsi",
+ "blsmskq", "blsmskl", "blsmsk",
+ "blsrq", "blsrl", "blsr",
+ "tzcntq", "tzcntl", "tzcnt",
+ },
+ "bmi2": {
+ "sarxq", "sarxl", "sarx",
+ "shlxq", "shlxl", "shlx",
+ "shrxq", "shrxl", "shrx",
+ },
+ "sse41": {
+ "roundsd",
+ "pinsrq", "pinsrl", "pinsrd", "pinsrb", "pinsr",
+ "pextrq", "pextrl", "pextrd", "pextrb", "pextr",
+ "pminsb", "pminsd", "pminuw", "pminud", // Note: ub and sw are ok.
+ "pmaxsb", "pmaxsd", "pmaxuw", "pmaxud",
+ "pmovzxbw", "pmovzxbd", "pmovzxbq", "pmovzxwd", "pmovzxwq", "pmovzxdq",
+ "pmovsxbw", "pmovsxbd", "pmovsxbq", "pmovsxwd", "pmovsxwq", "pmovsxdq",
+ "pblendvb",
+ },
+ "fma": {"vfmadd231sd"},
+ "movbe": {"movbeqq", "movbeq", "movbell", "movbel", "movbe"},
+ "lzcnt": {"lzcntq", "lzcntl", "lzcnt"},
}
// Test to use POPCNT instruction, if available
diff --git a/src/cmd/compile/internal/base/flag.go b/src/cmd/compile/internal/base/flag.go
index 4de0df21cb..a363b83984 100644
--- a/src/cmd/compile/internal/base/flag.go
+++ b/src/cmd/compile/internal/base/flag.go
@@ -100,7 +100,6 @@ type CmdFlags struct {
GenDwarfInl int "help:\"generate DWARF inline info records\"" // 0=disabled, 1=funcs, 2=funcs+formals/locals
GoVersion string "help:\"required version of the runtime\""
ImportCfg func(string) "help:\"read import configuration from `file`\""
- ImportMap func(string) "help:\"add `definition` of the form source=actual to import map\""
InstallSuffix string "help:\"set pkg directory `suffix`\""
JSON string "help:\"version,file for JSON compiler/optimizer detail output\""
Lang string "help:\"Go language version source code expects\""
@@ -130,7 +129,7 @@ type CmdFlags struct {
Files map[string]string
}
ImportDirs []string // appended to by -I
- ImportMap map[string]string // set by -importmap OR -importcfg
+ ImportMap map[string]string // set by -importcfg
PackageFile map[string]string // set by -importcfg; nil means not in use
SpectreIndex bool // set by -spectre=index or -spectre=all
// Whether we are adding any sort of code instrumentation, such as
@@ -156,7 +155,6 @@ func ParseFlags() {
Flag.EmbedCfg = readEmbedCfg
Flag.GenDwarfInl = 2
Flag.ImportCfg = readImportCfg
- Flag.ImportMap = addImportMap
Flag.LinkShared = &Ctxt.Flag_linkshared
Flag.Shared = &Ctxt.Flag_shared
Flag.WB = true
@@ -388,21 +386,6 @@ func addImportDir(dir string) {
}
}
-func addImportMap(s string) {
- if Flag.Cfg.ImportMap == nil {
- Flag.Cfg.ImportMap = make(map[string]string)
- }
- if strings.Count(s, "=") != 1 {
- log.Fatal("-importmap argument must be of the form source=actual")
- }
- i := strings.Index(s, "=")
- source, actual := s[:i], s[i+1:]
- if source == "" || actual == "" {
- log.Fatal("-importmap argument must be of the form source=actual; source and actual must be non-empty")
- }
- Flag.Cfg.ImportMap[source] = actual
-}
-
func readImportCfg(file string) {
if Flag.Cfg.ImportMap == nil {
Flag.Cfg.ImportMap = make(map[string]string)
diff --git a/src/cmd/compile/internal/ir/mini.go b/src/cmd/compile/internal/ir/mini.go
index 98c0ffa5b0..48f5eccf34 100644
--- a/src/cmd/compile/internal/ir/mini.go
+++ b/src/cmd/compile/internal/ir/mini.go
@@ -3,6 +3,7 @@
// license that can be found in the LICENSE file.
//go:generate go run -mod=mod mknode.go
+// Note: see comment at top of mknode.go
package ir
diff --git a/src/cmd/compile/internal/ir/mknode.go b/src/cmd/compile/internal/ir/mknode.go
index 5a0aaadf16..af8869d122 100644
--- a/src/cmd/compile/internal/ir/mknode.go
+++ b/src/cmd/compile/internal/ir/mknode.go
@@ -5,6 +5,12 @@
//go:build ignore
// +build ignore
+// Note: this program must be run with the GOROOT
+// environment variable set to the root of this tree.
+// GOROOT=...
+// cd $GOROOT/src/cmd/compile/internal/ir
+// ../../../../../bin/go run -mod=mod mknode.go
+
package main
import (
@@ -154,6 +160,9 @@ func forNodeFields(named *types.Named, prologue, singleTmpl, sliceTmpl, epilogue
}
tmpl, what := singleTmpl, types.TypeString(typ, types.RelativeTo(irPkg))
+ if what == "go/constant.Value" {
+ return false
+ }
if implementsNode(typ) {
if slice != nil {
helper := strings.TrimPrefix(what, "*") + "s"
diff --git a/src/cmd/compile/internal/noder/stencil.go b/src/cmd/compile/internal/noder/stencil.go
index 1534a1fa49..280f7cdf1c 100644
--- a/src/cmd/compile/internal/noder/stencil.go
+++ b/src/cmd/compile/internal/noder/stencil.go
@@ -623,7 +623,7 @@ func checkFetchBody(nameNode *ir.Name) {
}
}
-// getInstantiation gets the instantiantion and dictionary of the function or method nameNode
+// getInstantiation gets the instantiation and dictionary of the function or method nameNode
// with the type arguments shapes. If the instantiated function is not already
// cached, then it calls genericSubst to create the new instantiation.
func (g *genInst) getInstantiation(nameNode *ir.Name, shapes []*types.Type, isMeth bool) *instInfo {
@@ -1357,7 +1357,7 @@ func (g *genInst) dictPass(info *instInfo) {
}
case ir.ODOTTYPE, ir.ODOTTYPE2:
dt := m.(*ir.TypeAssertExpr)
- if !dt.Type().HasShape() && !dt.X.Type().HasShape() {
+ if !dt.Type().HasShape() && !(dt.X.Type().HasShape() && !dt.X.Type().IsEmptyInterface()) {
break
}
var rtype, itab ir.Node
diff --git a/src/cmd/compile/internal/ssa/rewrite.go b/src/cmd/compile/internal/ssa/rewrite.go
index d41772ad8a..05fb2f2776 100644
--- a/src/cmd/compile/internal/ssa/rewrite.go
+++ b/src/cmd/compile/internal/ssa/rewrite.go
@@ -1959,5 +1959,6 @@ func logicFlags32(x int32) flagConstant {
func makeJumpTableSym(b *Block) *obj.LSym {
s := base.Ctxt.Lookup(fmt.Sprintf("%s.jump%d", b.Func.fe.LSym(), b.ID))
s.Set(obj.AttrDuplicateOK, true)
+ s.Set(obj.AttrLocal, true)
return s
}
diff --git a/src/cmd/compile/internal/ssagen/ssa.go b/src/cmd/compile/internal/ssagen/ssa.go
index a7778d37fb..2ee027092e 100644
--- a/src/cmd/compile/internal/ssagen/ssa.go
+++ b/src/cmd/compile/internal/ssagen/ssa.go
@@ -1496,6 +1496,10 @@ func (s *state) stmt(n ir.Node) {
case ir.OLABEL:
n := n.(*ir.LabelStmt)
sym := n.Label
+ if sym.IsBlank() {
+ // Nothing to do because the label isn't targetable. See issue 52278.
+ break
+ }
lab := s.label(sym)
// The label might already have a target block via a goto.
diff --git a/src/cmd/compile/internal/types/size.go b/src/cmd/compile/internal/types/size.go
index 68b9ac3ff3..d034808132 100644
--- a/src/cmd/compile/internal/types/size.go
+++ b/src/cmd/compile/internal/types/size.go
@@ -169,6 +169,8 @@ func calcStructOffset(errtype *Type, t *Type, o int64, flag int) int64 {
}
// Special case: sync/atomic.align64 is an empty struct we recognize
// as a signal that the struct it contains must be 64-bit-aligned.
+ //
+ // This logic is duplicated in go/types and cmd/compile/internal/types2.
if isStruct && t.NumFields() == 0 && t.Sym() != nil && t.Sym().Name == "align64" && isAtomicStdPkg(t.Sym().Pkg) {
maxalign = 8
}
diff --git a/src/cmd/compile/internal/types2/sizes.go b/src/cmd/compile/internal/types2/sizes.go
index 6133e15924..4da309461f 100644
--- a/src/cmd/compile/internal/types2/sizes.go
+++ b/src/cmd/compile/internal/types2/sizes.go
@@ -53,6 +53,17 @@ func (s *StdSizes) Alignof(T Type) int64 {
// is the same as unsafe.Alignof(x[0]), but at least 1."
return s.Alignof(t.elem)
case *Struct:
+ if len(t.fields) == 0 && isSyncAtomicAlign64(T) {
+ // Special case: sync/atomic.align64 is an
+ // empty struct we recognize as a signal that
+ // the struct it contains must be
+ // 64-bit-aligned.
+ //
+ // This logic is equivalent to the logic in
+ // cmd/compile/internal/types/size.go:calcStructOffset
+ return 8
+ }
+
// spec: "For a variable x of struct type: unsafe.Alignof(x)
// is the largest of the values unsafe.Alignof(x.f) for each
// field f of x, but at least 1."
@@ -93,6 +104,18 @@ func (s *StdSizes) Alignof(T Type) int64 {
return a
}
+func isSyncAtomicAlign64(T Type) bool {
+ named, ok := T.(*Named)
+ if !ok {
+ return false
+ }
+ obj := named.Obj()
+ return obj.Name() == "align64" &&
+ obj.Pkg() != nil &&
+ (obj.Pkg().Path() == "sync/atomic" ||
+ obj.Pkg().Path() == "runtime/internal/atomic")
+}
+
func (s *StdSizes) Offsetsof(fields []*Var) []int64 {
offsets := make([]int64, len(fields))
var o int64
diff --git a/src/cmd/compile/internal/types2/sizes_test.go b/src/cmd/compile/internal/types2/sizes_test.go
index c9a4942bed..824ec838e2 100644
--- a/src/cmd/compile/internal/types2/sizes_test.go
+++ b/src/cmd/compile/internal/types2/sizes_test.go
@@ -14,12 +14,15 @@ import (
// findStructType typechecks src and returns the first struct type encountered.
func findStructType(t *testing.T, src string) *types2.Struct {
+ return findStructTypeConfig(t, src, &types2.Config{})
+}
+
+func findStructTypeConfig(t *testing.T, src string, conf *types2.Config) *types2.Struct {
f, err := parseSrc("x.go", src)
if err != nil {
t.Fatal(err)
}
info := types2.Info{Types: make(map[syntax.Expr]types2.TypeAndValue)}
- var conf types2.Config
_, err = conf.Check("x", []*syntax.File{f}, &info)
if err != nil {
t.Fatal(err)
@@ -105,3 +108,39 @@ const _ = unsafe.Offsetof(struct{ x int64 }{}.x)
_ = conf.Sizes.Alignof(tv.Type)
}
}
+
+// Issue #53884.
+func TestAtomicAlign(t *testing.T) {
+ const src = `
+package main
+
+import "sync/atomic"
+
+var s struct {
+ x int32
+ y atomic.Int64
+ z int64
+}
+`
+
+ want := []int64{0, 8, 16}
+ for _, arch := range []string{"386", "amd64"} {
+ t.Run(arch, func(t *testing.T) {
+ conf := types2.Config{
+ Importer: defaultImporter(),
+ Sizes: types2.SizesFor("gc", arch),
+ }
+ ts := findStructTypeConfig(t, src, &conf)
+ var fields []*types2.Var
+ // Make a copy manually :(
+ for i := 0; i < ts.NumFields(); i++ {
+ fields = append(fields, ts.Field(i))
+ }
+
+ offsets := conf.Sizes.Offsetsof(fields)
+ if offsets[0] != want[0] || offsets[1] != want[1] || offsets[2] != want[2] {
+ t.Errorf("OffsetsOf(%v) = %v want %v", ts, offsets, want)
+ }
+ })
+ }
+}
diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go
index 846d0c0d85..da5b17980b 100644
--- a/src/cmd/dist/test.go
+++ b/src/cmd/dist/test.go
@@ -542,7 +542,7 @@ func (t *tester) registerTests() {
name: testName,
heading: "GOMAXPROCS=2 runtime -cpu=1,2,4 -quick",
fn: func(dt *distTest) error {
- cmd := t.addCmd(dt, "src", t.goTest(), t.timeout(300), "runtime", "-cpu=1,2,4", "-quick")
+ cmd := t.addCmd(dt, "src", t.goTest(), "-short=true", t.timeout(300), "runtime", "-cpu=1,2,4", "-quick")
// We set GOMAXPROCS=2 in addition to -cpu=1,2,4 in order to test runtime bootstrap code,
// creation of first goroutines and first garbage collections in the parallel setting.
setEnv(cmd, "GOMAXPROCS", "2")
@@ -1720,7 +1720,7 @@ func (t *tester) runPrecompiledStdTest(timeout time.Duration) error {
func raceDetectorSupported(goos, goarch string) bool {
switch goos {
case "linux":
- return goarch == "amd64" || goarch == "ppc64le" || goarch == "arm64"
+ return goarch == "amd64" || goarch == "ppc64le" || goarch == "arm64" || goarch == "s390x"
case "darwin":
return goarch == "amd64" || goarch == "arm64"
case "freebsd", "netbsd", "openbsd", "windows":
diff --git a/src/cmd/go/alldocs.go b/src/cmd/go/alldocs.go
index db6372642a..a3c1fecb91 100644
--- a/src/cmd/go/alldocs.go
+++ b/src/cmd/go/alldocs.go
@@ -1708,7 +1708,7 @@
// the package's source root (usually $GOPATH) or that consult environment
// variables only match future runs in which the files and environment
// variables are unchanged. A cached test result is treated as executing
-// in no time at all,so a successful package test result will be cached and
+// in no time at all, so a successful package test result will be cached and
// reused regardless of -timeout setting.
//
// In addition to the build flags, the flags handled by 'go test' itself are:
diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go
index c100316f47..a0082a3164 100644
--- a/src/cmd/go/go_test.go
+++ b/src/cmd/go/go_test.go
@@ -991,21 +991,6 @@ func TestIssue10952(t *testing.T) {
tg.run("get", "-d", "-u", importPath)
}
-func TestIssue16471(t *testing.T) {
- testenv.MustHaveExternalNetwork(t)
- testenv.MustHaveExecPath(t, "git")
-
- tg := testgo(t)
- defer tg.cleanup()
- tg.parallel()
- tg.tempDir("src")
- tg.setenv("GOPATH", tg.path("."))
- tg.must(os.MkdirAll(tg.path("src/rsc.io/go-get-issue-10952"), 0755))
- tg.runGit(tg.path("src/rsc.io"), "clone", "https://github.com/zombiezen/go-get-issue-10952")
- tg.runFail("get", "-u", "rsc.io/go-get-issue-10952")
- tg.grepStderr("rsc.io/go-get-issue-10952 is a custom import path for https://github.com/rsc/go-get-issue-10952, but .* is checked out from https://github.com/zombiezen/go-get-issue-10952", "did not detect updated import path")
-}
-
// Test git clone URL that uses SCP-like syntax and custom import path checking.
func TestIssue11457(t *testing.T) {
testenv.MustHaveExternalNetwork(t)
diff --git a/src/cmd/go/internal/modcmd/download.go b/src/cmd/go/internal/modcmd/download.go
index a5fc63ed26..0b50afb668 100644
--- a/src/cmd/go/internal/modcmd/download.go
+++ b/src/cmd/go/internal/modcmd/download.go
@@ -206,12 +206,13 @@ func runDownload(ctx context.Context, cmd *base.Command, args []string) {
type token struct{}
sem := make(chan token, runtime.GOMAXPROCS(0))
infos, infosErr := modload.ListModules(ctx, args, 0, *downloadReuse)
- if !haveExplicitArgs {
+ if !haveExplicitArgs && modload.WorkFilePath() == "" {
// 'go mod download' is sometimes run without arguments to pre-populate the
- // module cache. It may fetch modules that aren't needed to build packages
- // in the main module. This is usually not intended, so don't save sums for
- // downloaded modules (golang.org/issue/45332). We do still fix
- // inconsistencies in go.mod though.
+ // module cache. In modules that aren't at go 1.17 or higher, it may fetch
+ // modules that aren't needed to build packages in the main module. This is
+ // usually not intended, so don't save sums for downloaded modules
+ // (golang.org/issue/45332). We do still fix inconsistencies in go.mod
+ // though.
//
// TODO(#45551): In the future, report an error if go.mod or go.sum need to
// be updated after loading the build list. This may require setting
@@ -282,8 +283,19 @@ func runDownload(ctx context.Context, cmd *base.Command, args []string) {
// 'go get mod@version', which may have other side effects. We print this in
// some error message hints.
//
- // Don't save sums for 'go mod download' without arguments; see comment above.
- if haveExplicitArgs {
+ // If we're in workspace mode, update go.work.sum with checksums for all of
+ // the modules we downloaded that aren't already recorded. Since a requirement
+ // in one module may upgrade a dependency of another, we can't be sure that
+ // the import graph matches the import graph of any given module in isolation,
+ // so we may end up needing to load packages from modules that wouldn't
+ // otherwise be relevant.
+ //
+ // TODO(#44435): If we adjust the set of modules downloaded in workspace mode,
+ // we may also need to adjust the logic for saving checksums here.
+ //
+ // Don't save sums for 'go mod download' without arguments unless we're in
+ // workspace mode; see comment above.
+ if haveExplicitArgs || modload.WorkFilePath() != "" {
if err := modload.WriteGoMod(ctx); err != nil {
base.Errorf("go: %v", err)
}
diff --git a/src/cmd/go/internal/modfetch/codehost/codehost.go b/src/cmd/go/internal/modfetch/codehost/codehost.go
index 8eaf254b44..747022759e 100644
--- a/src/cmd/go/internal/modfetch/codehost/codehost.go
+++ b/src/cmd/go/internal/modfetch/codehost/codehost.go
@@ -247,7 +247,7 @@ func WorkDir(typ, name string) (dir, lockfile string, err error) {
lockfile = dir + ".lock"
if cfg.BuildX {
- fmt.Fprintf(os.Stderr, "# lock %s", lockfile)
+ fmt.Fprintf(os.Stderr, "# lock %s\n", lockfile)
}
unlock, err := lockedfile.MutexAt(lockfile).Lock()
diff --git a/src/cmd/go/internal/modfetch/coderepo.go b/src/cmd/go/internal/modfetch/coderepo.go
index b934e362a4..8fb0035f8c 100644
--- a/src/cmd/go/internal/modfetch/coderepo.go
+++ b/src/cmd/go/internal/modfetch/coderepo.go
@@ -792,7 +792,7 @@ func (r *codeRepo) findDir(version string) (rev, dir string, gomod []byte, err e
file1 := path.Join(r.codeDir, "go.mod")
gomod1, err1 := r.code.ReadFile(rev, file1, codehost.MaxGoMod)
if err1 != nil && !os.IsNotExist(err1) {
- return "", "", nil, fmt.Errorf("reading %s/%s at revision %s: %v", r.pathPrefix, file1, rev, err1)
+ return "", "", nil, fmt.Errorf("reading %s/%s at revision %s: %v", r.codeRoot, file1, rev, err1)
}
mpath1 := modfile.ModulePath(gomod1)
found1 := err1 == nil && (isMajor(mpath1, r.pathMajor) || r.canReplaceMismatchedVersionDueToBug(mpath1))
@@ -810,7 +810,7 @@ func (r *codeRepo) findDir(version string) (rev, dir string, gomod []byte, err e
file2 = path.Join(dir2, "go.mod")
gomod2, err2 := r.code.ReadFile(rev, file2, codehost.MaxGoMod)
if err2 != nil && !os.IsNotExist(err2) {
- return "", "", nil, fmt.Errorf("reading %s/%s at revision %s: %v", r.pathPrefix, file2, rev, err2)
+ return "", "", nil, fmt.Errorf("reading %s/%s at revision %s: %v", r.codeRoot, file2, rev, err2)
}
mpath2 := modfile.ModulePath(gomod2)
found2 := err2 == nil && isMajor(mpath2, r.pathMajor)
@@ -823,9 +823,9 @@ func (r *codeRepo) findDir(version string) (rev, dir string, gomod []byte, err e
}
if err2 == nil {
if mpath2 == "" {
- return "", "", nil, fmt.Errorf("%s/%s is missing module path at revision %s", r.pathPrefix, file2, rev)
+ return "", "", nil, fmt.Errorf("%s/%s is missing module path at revision %s", r.codeRoot, file2, rev)
}
- return "", "", nil, fmt.Errorf("%s/%s has non-...%s module path %q at revision %s", r.pathPrefix, file2, r.pathMajor, mpath2, rev)
+ return "", "", nil, fmt.Errorf("%s/%s has non-...%s module path %q at revision %s", r.codeRoot, file2, r.pathMajor, mpath2, rev)
}
}
diff --git a/src/cmd/go/internal/modindex/read.go b/src/cmd/go/internal/modindex/read.go
index 38ddfec70f..707f17e1ab 100644
--- a/src/cmd/go/internal/modindex/read.go
+++ b/src/cmd/go/internal/modindex/read.go
@@ -139,6 +139,9 @@ func GetPackage(modroot, pkgdir string) (*IndexPackage, error) {
if !errors.Is(err, errNotFromModuleCache) {
return nil, err
}
+ if cfg.BuildContext.Compiler == "gccgo" && str.HasPathPrefix(modroot, cfg.GOROOTsrc) {
+ return nil, err // gccgo has no sources for GOROOT packages.
+ }
return openIndexPackage(modroot, pkgdir)
}
diff --git a/src/cmd/go/internal/modload/build.go b/src/cmd/go/internal/modload/build.go
index e983e0ae0c..555d4b3c63 100644
--- a/src/cmd/go/internal/modload/build.go
+++ b/src/cmd/go/internal/modload/build.go
@@ -131,10 +131,15 @@ func addUpdate(ctx context.Context, m *modinfo.ModulePublic) {
info, err := Query(ctx, m.Path, "upgrade", m.Version, CheckAllowed)
var noVersionErr *NoMatchingVersionError
- if errors.Is(err, fs.ErrNotExist) || errors.As(err, &noVersionErr) {
+ if errors.Is(err, ErrDisallowed) ||
+ errors.Is(err, fs.ErrNotExist) ||
+ errors.As(err, &noVersionErr) {
// Ignore "not found" and "no matching version" errors.
// This means the proxy has no matching version or no versions at all.
//
+ // Ignore "disallowed" errors. This means the current version is
+ // excluded or retracted and there are no higher allowed versions.
+ //
// We should report other errors though. An attacker that controls the
// network shouldn't be able to hide versions by interfering with
// the HTTPS connection. An attacker that controls the proxy may still
diff --git a/src/cmd/go/internal/modload/buildlist.go b/src/cmd/go/internal/modload/buildlist.go
index 5b8d6051f3..cde4953afa 100644
--- a/src/cmd/go/internal/modload/buildlist.go
+++ b/src/cmd/go/internal/modload/buildlist.go
@@ -397,7 +397,6 @@ func readModGraph(ctx context.Context, pruning modPruning, roots []module.Versio
seen := map[module.Version]bool{}
for _, m := range roots {
hasDepsInAll[m.Path] = true
- seen[m] = true
}
// This loop will terminate because it will call enqueue on each version of
// each dependency of the modules in hasDepsInAll at most once (and only
@@ -406,11 +405,11 @@ func readModGraph(ctx context.Context, pruning modPruning, roots []module.Versio
needsEnqueueing := map[module.Version]bool{}
for p := range hasDepsInAll {
m := module.Version{Path: p, Version: mg.g.Selected(p)}
- reqs, ok := mg.g.RequiredBy(m)
- if !ok {
+ if !seen[m] {
needsEnqueueing[m] = true
continue
}
+ reqs, _ := mg.g.RequiredBy(m)
for _, r := range reqs {
s := module.Version{Path: r.Path, Version: mg.g.Selected(r.Path)}
if cmpVersion(s.Version, r.Version) > 0 && !seen[s] {
diff --git a/src/cmd/go/internal/test/test.go b/src/cmd/go/internal/test/test.go
index 058906d9b8..aa5e41e004 100644
--- a/src/cmd/go/internal/test/test.go
+++ b/src/cmd/go/internal/test/test.go
@@ -132,7 +132,7 @@ test caching explicitly is to use -count=1. Tests that open files within
the package's source root (usually $GOPATH) or that consult environment
variables only match future runs in which the files and environment
variables are unchanged. A cached test result is treated as executing
-in no time at all,so a successful package test result will be cached and
+in no time at all, so a successful package test result will be cached and
reused regardless of -timeout setting.
In addition to the build flags, the flags handled by 'go test' itself are:
diff --git a/src/cmd/go/testdata/mod/example.com_retract_noupgrade_v1.0.0.txt b/src/cmd/go/testdata/mod/example.com_retract_noupgrade_v1.0.0.txt
new file mode 100644
index 0000000000..466afc5765
--- /dev/null
+++ b/src/cmd/go/testdata/mod/example.com_retract_noupgrade_v1.0.0.txt
@@ -0,0 +1,9 @@
+-- .mod --
+module example.com/retract/noupgrade
+
+go 1.19
+
+retract v1.0.0 // bad
+
+-- .info --
+{"Version":"v1.0.0"}
diff --git a/src/cmd/go/testdata/script/build_overlay.txt b/src/cmd/go/testdata/script/build_overlay.txt
index 56e812f44b..70cd7f8c7a 100644
--- a/src/cmd/go/testdata/script/build_overlay.txt
+++ b/src/cmd/go/testdata/script/build_overlay.txt
@@ -47,20 +47,24 @@ go build -overlay overlay.json -o main_call_asm$GOEXE ./call_asm
exec ./main_call_asm$GOEXE
! stdout .
-# Change the contents of a file in the overlay and ensure that makes the target stale
-go install -overlay overlay.json ./test_cache
-go list -overlay overlay.json -f '{{.Stale}}' ./test_cache
-stdout '^false$'
-cp overlay/test_cache_different.go overlay/test_cache.go
-go list -overlay overlay.json -f '{{.Stale}}' ./test_cache
-stdout '^true$'
-
[cgo] go list -compiled -overlay overlay.json -f '{{range .CompiledGoFiles}}{{. | printf "%s\n"}}{{end}}' ./cgo_hello_replace
[cgo] cp stdout compiled_cgo_sources.txt
[cgo] go run ../print_line_comments.go compiled_cgo_sources.txt
[cgo] stdout $GOPATH[/\\]src[/\\]m[/\\]cgo_hello_replace[/\\]cgo_hello_replace.go
[cgo] ! stdout $GOPATH[/\\]src[/\\]m[/\\]overlay[/\\]hello.c
+# Change the contents of a file in the overlay and ensure that makes the target stale
+env OLD_GOCACHE=$GOCACHE
+env GOCACHE=$WORK/cache # use a fresh cache so that multiple runs of the test don't interfere
+go build -x -overlay overlay.json ./test_cache
+stderr '(compile|gccgo)( |\.exe).*test_cache.go'
+go build -x -overlay overlay.json ./test_cache
+! stderr '(compile|gccgo)( |\.exe).*test_cache.go' # cached
+cp overlay/test_cache_different.go overlay/test_cache.go
+go build -x -overlay overlay.json ./test_cache
+stderr '(compile|gccgo)( |\.exe).*test_cache.go' # not cached
+env CACHE=$OLD_GOCACHE
+
# Run same tests but with gccgo.
env GO111MODULE=off
[!exec:gccgo] stop
diff --git a/src/cmd/go/testdata/script/get_issue16471.txt b/src/cmd/go/testdata/script/get_issue16471.txt
new file mode 100644
index 0000000000..2a2225a444
--- /dev/null
+++ b/src/cmd/go/testdata/script/get_issue16471.txt
@@ -0,0 +1,22 @@
+[!net] skip
+[!exec:git] skip
+
+env GO111MODULE=off
+
+cd rsc.io/go-get-issue-10952
+
+exec git init
+exec git add foo.go
+exec git config user.name Gopher
+exec git config user.email gopher@golang.org
+exec git commit -a -m 'initial commit'
+exec git remote add origin https://github.com/golang/go-get-issue-10952
+
+exec git status
+
+! go get -x -u rsc.io/go-get-issue-10952
+stderr '^package rsc.io/go-get-issue-10952: rsc\.io/go-get-issue-10952 is a custom import path for https://github.com/rsc/go-get-issue-10952, but .* is checked out from https://github.com/golang/go-get-issue-10952$'
+
+-- rsc.io/go-get-issue-10952/foo.go --
+// Junk package to test go get.
+package foo
diff --git a/src/cmd/go/testdata/script/mod_download_issue51114.txt b/src/cmd/go/testdata/script/mod_download_issue51114.txt
new file mode 100644
index 0000000000..92479c6dd3
--- /dev/null
+++ b/src/cmd/go/testdata/script/mod_download_issue51114.txt
@@ -0,0 +1,21 @@
+[short] skip
+[!exec:git] skip
+[!net] skip
+[!linux] skip # Uses XDG_CONFIG_HOME
+
+env GIT_CONFIG_GLOBAL=$WORK/.gitconfig
+env GOPROXY=direct
+
+! go mod download
+stderr '^go: github\.com/golang/notexist/subdir@v0.1.0: reading github\.com/golang/notexist/subdir/go\.mod at revision subdir/v0\.1\.0: '
+
+-- go.mod --
+module test
+
+go 1.18
+
+require github.com/golang/notexist/subdir v0.1.0
+
+-- $WORK/.gitconfig --
+[url "git@github.com:"]
+ insteadOf = https://github.com/
diff --git a/src/cmd/go/testdata/script/mod_download_private_vcs.txt b/src/cmd/go/testdata/script/mod_download_private_vcs.txt
index e126793907..da9fe0290b 100644
--- a/src/cmd/go/testdata/script/mod_download_private_vcs.txt
+++ b/src/cmd/go/testdata/script/mod_download_private_vcs.txt
@@ -22,22 +22,18 @@ stderr '^If this is a private repository, see https://golang.org/doc/faq#git_htt
! stderr 'unknown revision'
! stdout .
-[!linux] stop # Needs XDG_CONFIG_HOME.
[!exec:false] stop
# Test that Git clone errors will be shown to the user instead of a generic
# "unknown revision" error. To do this we want to force git ls-remote to return
# an error we don't already have special handling for. See golang/go#42751.
-#
-# Set XDG_CONFIG_HOME to tell Git where to look for the git config file listed
-# below, which turns on ssh.
-env XDG_CONFIG_HOME=$TMPDIR
+env HOME=$WORK${/}home${/}gopher
env GIT_SSH_COMMAND=false
! go install github.com/golang/nonexist@master
stderr 'fatal: Could not read from remote repository.'
! stderr 'unknown revision'
! stdout .
--- $TMPDIR/git/config --
+-- $WORK/home/gopher/.gitconfig --
[url "git@github.com:"]
- insteadOf = https://github.com/
+ insteadOf = https://github.com/
diff --git a/src/cmd/go/testdata/script/mod_retract_noupgrade.txt b/src/cmd/go/testdata/script/mod_retract_noupgrade.txt
new file mode 100644
index 0000000000..67de79f42d
--- /dev/null
+++ b/src/cmd/go/testdata/script/mod_retract_noupgrade.txt
@@ -0,0 +1,11 @@
+go list -m -u example.com/retract/noupgrade
+stdout '^example.com/retract/noupgrade v1.0.0 \(retracted\)$'
+
+-- go.mod --
+module use
+
+go 1.19
+
+require example.com/retract/noupgrade v1.0.0
+-- go.sum --
+example.com/retract/noupgrade v1.0.0/go.mod h1:q2/HnBejUQ83RcUo4stf2U++/Zr9R/Ky3BsodjKBkQ4=
diff --git a/src/cmd/go/testdata/script/test_fuzz_cache.txt b/src/cmd/go/testdata/script/test_fuzz_cache.txt
index 552966b06b..19fb764add 100644
--- a/src/cmd/go/testdata/script/test_fuzz_cache.txt
+++ b/src/cmd/go/testdata/script/test_fuzz_cache.txt
@@ -17,15 +17,12 @@ go clean -cache
exists $GOCACHE/fuzz
# 'go clean -fuzzcache' should delete the fuzz cache but not the build cache.
-go list -f {{.Stale}} ./empty
-stdout true
-go install ./empty
-go list -f {{.Stale}} ./empty
-stdout false
+go build -x ./empty
+stderr '(compile|gccgo)( |\.exe).*empty.go'
go clean -fuzzcache
! exists $GOCACHE/fuzz
-go list -f {{.Stale}} ./empty
-stdout false
+go build -x ./empty
+! stderr '(compile|gccgo)( |\.exe).*empty.go'
# Fuzzing indicates that one new interesting value was found with an empty
# corpus, and the total size of the cache is now 1.
diff --git a/src/cmd/go/testdata/script/work_goproxy_off.txt b/src/cmd/go/testdata/script/work_goproxy_off.txt
new file mode 100644
index 0000000000..0a602e3d7b
--- /dev/null
+++ b/src/cmd/go/testdata/script/work_goproxy_off.txt
@@ -0,0 +1,59 @@
+go work init
+go work use . ./sub
+
+# Verify that the go.mod files for both modules in the workspace are tidy,
+# and add missing go.sum entries as needed.
+
+cp go.mod go.mod.orig
+go mod tidy
+cmp go.mod go.mod.orig
+
+cd sub
+cp go.mod go.mod.orig
+go mod tidy
+cmp go.mod go.mod.orig
+cd ..
+
+go list -m all
+stdout '^rsc\.io/quote v1\.5\.1$'
+stdout '^rsc\.io/sampler v1\.3\.1$'
+
+# Now remove the module dependencies from the module cache.
+# Because one module upgrades a transitive dependency needed by another,
+# listing the modules in the workspace should error out.
+
+go clean -modcache
+env GOPROXY=off
+! go list -m all
+stderr '^go: rsc.io/sampler@v1.3.0: module lookup disabled by GOPROXY=off$'
+
+-- example.go --
+package example
+
+import _ "rsc.io/sampler"
+-- go.mod --
+module example
+
+go 1.19
+
+require rsc.io/sampler v1.3.0
+
+require (
+ golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c // indirect
+ rsc.io/testonly v1.0.0 // indirect
+)
+-- sub/go.mod --
+module example/sub
+
+go 1.19
+
+require rsc.io/quote v1.5.1
+
+require (
+ golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c // indirect
+ rsc.io/sampler v1.3.1 // indirect
+)
+-- sub/sub.go --
+package example
+
+import _ "rsc.io/quote"
diff --git a/src/cmd/go/testdata/script/work_why_download_graph.txt b/src/cmd/go/testdata/script/work_why_download_graph.txt
index 7964c914a2..8f1aeddf47 100644
--- a/src/cmd/go/testdata/script/work_why_download_graph.txt
+++ b/src/cmd/go/testdata/script/work_why_download_graph.txt
@@ -7,13 +7,19 @@ exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.mod
exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.zip
! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.info
! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.mod
+grep '^rsc\.io/quote v1\.5\.2/go\.mod h1:' go.work.sum
+grep '^rsc\.io/quote v1\.5\.2 h1:' go.work.sum
+go clean -modcache
+rm go.work.sum
go mod download
exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.info
exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.mod
exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.2.zip
! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.info
! exists $GOPATH/pkg/mod/cache/download/rsc.io/quote/@v/v1.5.0.mod
+grep '^rsc\.io/quote v1\.5\.2/go\.mod h1:' go.work.sum
+grep '^rsc\.io/quote v1\.5\.2 h1:' go.work.sum
go mod why rsc.io/quote
stdout '# rsc.io/quote\nexample.com/a\nrsc.io/quote'
@@ -25,8 +31,8 @@ stdout 'example.com/a rsc.io/quote@v1.5.2\nexample.com/b example.com/c@v1.0.0\nr
go 1.18
use (
- ./a
- ./b
+ ./a
+ ./b
)
-- a/go.mod --
go 1.18
diff --git a/src/crypto/internal/nistec/p224_sqrt.go b/src/crypto/internal/nistec/p224_sqrt.go
index ac4d761bf5..9a35cea6aa 100644
--- a/src/crypto/internal/nistec/p224_sqrt.go
+++ b/src/crypto/internal/nistec/p224_sqrt.go
@@ -19,7 +19,7 @@ var p224MinusOne = new(fiat.P224Element).Sub(
func p224SqrtCandidate(r, x *fiat.P224Element) {
// Since p = 1 mod 4, we can't use the exponentiation by (p + 1) / 4 like
// for the other primes. Instead, implement a variation of Tonelli–Shanks.
- // The contant-time implementation is adapted from Thomas Pornin's ecGFp5.
+ // The constant-time implementation is adapted from Thomas Pornin's ecGFp5.
//
// https://github.com/pornin/ecgfp5/blob/82325b965/rust/src/field.rs#L337-L385
diff --git a/src/debug/gosym/symtab.go b/src/debug/gosym/symtab.go
index 4e63f1cdf7..afc67198c3 100644
--- a/src/debug/gosym/symtab.go
+++ b/src/debug/gosym/symtab.go
@@ -86,7 +86,7 @@ func (s *Sym) ReceiverName() string {
// Find the first dot after pathend (or from the beginning, if there was
// no slash in name).
l := strings.Index(name[pathend:], ".")
- // Find the last dot after pathend (or the beginnng).
+ // Find the last dot after pathend (or the beginning).
r := strings.LastIndex(name[pathend:], ".")
if l == -1 || r == -1 || l == r {
// There is no receiver if we didn't find two distinct dots after pathend.
diff --git a/src/encoding/gob/gobencdec_test.go b/src/encoding/gob/gobencdec_test.go
index 3d49887c01..6fefd36756 100644
--- a/src/encoding/gob/gobencdec_test.go
+++ b/src/encoding/gob/gobencdec_test.go
@@ -798,7 +798,7 @@ func TestNetIP(t *testing.T) {
}
}
-func TestIngoreDepthLimit(t *testing.T) {
+func TestIgnoreDepthLimit(t *testing.T) {
// We don't test the actual depth limit because it requires building an
// extremely large message, which takes quite a while.
oldNestingDepth := maxIgnoreNestingDepth
diff --git a/src/encoding/xml/read_test.go b/src/encoding/xml/read_test.go
index 58d1eddb61..35385c6490 100644
--- a/src/encoding/xml/read_test.go
+++ b/src/encoding/xml/read_test.go
@@ -9,7 +9,6 @@ import (
"errors"
"io"
"reflect"
- "runtime"
"strings"
"testing"
"time"
@@ -1112,8 +1111,8 @@ func TestCVE202228131(t *testing.T) {
}
func TestCVE202230633(t *testing.T) {
- if runtime.GOARCH == "wasm" {
- t.Skip("causes memory exhaustion on js/wasm")
+ if testing.Short() {
+ t.Skip("test requires significant memory")
}
defer func() {
p := recover()
diff --git a/src/go/build/build.go b/src/go/build/build.go
index bfe3f444ca..dfb37b8f34 100644
--- a/src/go/build/build.go
+++ b/src/go/build/build.go
@@ -715,6 +715,9 @@ func (ctxt *Context) Import(path string, srcDir string, mode ImportMode) (*Packa
tried.goroot = dir
}
if ctxt.Compiler == "gccgo" && goroot.IsStandardPackage(ctxt.GOROOT, ctxt.Compiler, path) {
+ // TODO(bcmills): Setting p.Dir here is misleading, because gccgo
+ // doesn't actually load its standard-library packages from this
+ // directory. See if we can leave it unset.
p.Dir = ctxt.joinPath(ctxt.GOROOT, "src", path)
p.Goroot = true
p.Root = ctxt.GOROOT
diff --git a/src/go/build/deps_test.go b/src/go/build/deps_test.go
index 84cc9de8e7..141fdb9fbd 100644
--- a/src/go/build/deps_test.go
+++ b/src/go/build/deps_test.go
@@ -177,7 +177,11 @@ var depsRules = `
os/signal, STR
< path/filepath
- < io/ioutil, os/exec;
+ < io/ioutil;
+
+ os < internal/godebug;
+
+ path/filepath, internal/godebug < os/exec;
io/ioutil, os/exec, os/signal
< OS;
@@ -187,8 +191,6 @@ var depsRules = `
OS
< golang.org/x/sys/cpu;
- os < internal/godebug;
-
# FMT is OS (which includes string routines) plus reflect and fmt.
# It does not include package log, which should be avoided in core packages.
strconv, unicode
diff --git a/src/go/parser/parser_test.go b/src/go/parser/parser_test.go
index 1a46c87866..0c278924c9 100644
--- a/src/go/parser/parser_test.go
+++ b/src/go/parser/parser_test.go
@@ -10,7 +10,6 @@ import (
"go/ast"
"go/token"
"io/fs"
- "runtime"
"strings"
"testing"
)
@@ -653,8 +652,8 @@ func split(x string) (pre, mid, post string) {
}
func TestParseDepthLimit(t *testing.T) {
- if runtime.GOARCH == "wasm" {
- t.Skip("causes call stack exhaustion on js/wasm")
+ if testing.Short() {
+ t.Skip("test requires significant memory")
}
for _, tt := range parseDepthTests {
for _, size := range []string{"small", "big"} {
@@ -699,9 +698,6 @@ func TestParseDepthLimit(t *testing.T) {
}
func TestScopeDepthLimit(t *testing.T) {
- if runtime.GOARCH == "wasm" {
- t.Skip("causes call stack exhaustion on js/wasm")
- }
for _, tt := range parseDepthTests {
if !tt.scope {
continue
diff --git a/src/go/types/sizes.go b/src/go/types/sizes.go
index 7b67dca2b8..cb5253b453 100644
--- a/src/go/types/sizes.go
+++ b/src/go/types/sizes.go
@@ -53,6 +53,17 @@ func (s *StdSizes) Alignof(T Type) int64 {
// is the same as unsafe.Alignof(x[0]), but at least 1."
return s.Alignof(t.elem)
case *Struct:
+ if len(t.fields) == 0 && isSyncAtomicAlign64(T) {
+ // Special case: sync/atomic.align64 is an
+ // empty struct we recognize as a signal that
+ // the struct it contains must be
+ // 64-bit-aligned.
+ //
+ // This logic is equivalent to the logic in
+ // cmd/compile/internal/types/size.go:calcStructOffset
+ return 8
+ }
+
// spec: "For a variable x of struct type: unsafe.Alignof(x)
// is the largest of the values unsafe.Alignof(x.f) for each
// field f of x, but at least 1."
@@ -93,6 +104,18 @@ func (s *StdSizes) Alignof(T Type) int64 {
return a
}
+func isSyncAtomicAlign64(T Type) bool {
+ named, ok := T.(*Named)
+ if !ok {
+ return false
+ }
+ obj := named.Obj()
+ return obj.Name() == "align64" &&
+ obj.Pkg() != nil &&
+ (obj.Pkg().Path() == "sync/atomic" ||
+ obj.Pkg().Path() == "runtime/internal/atomic")
+}
+
func (s *StdSizes) Offsetsof(fields []*Var) []int64 {
offsets := make([]int64, len(fields))
var o int64
diff --git a/src/go/types/sizes_test.go b/src/go/types/sizes_test.go
index 539b4e37c1..740072f1dc 100644
--- a/src/go/types/sizes_test.go
+++ b/src/go/types/sizes_test.go
@@ -17,13 +17,16 @@ import (
// findStructType typechecks src and returns the first struct type encountered.
func findStructType(t *testing.T, src string) *types.Struct {
+ return findStructTypeConfig(t, src, &types.Config{})
+}
+
+func findStructTypeConfig(t *testing.T, src string, conf *types.Config) *types.Struct {
fset := token.NewFileSet()
f, err := parser.ParseFile(fset, "x.go", src, 0)
if err != nil {
t.Fatal(err)
}
info := types.Info{Types: make(map[ast.Expr]types.TypeAndValue)}
- var conf types.Config
_, err = conf.Check("x", fset, []*ast.File{f}, &info)
if err != nil {
t.Fatal(err)
@@ -110,3 +113,39 @@ const _ = unsafe.Offsetof(struct{ x int64 }{}.x)
_ = conf.Sizes.Alignof(tv.Type)
}
}
+
+// Issue #53884.
+func TestAtomicAlign(t *testing.T) {
+ const src = `
+package main
+
+import "sync/atomic"
+
+var s struct {
+ x int32
+ y atomic.Int64
+ z int64
+}
+`
+
+ want := []int64{0, 8, 16}
+ for _, arch := range []string{"386", "amd64"} {
+ t.Run(arch, func(t *testing.T) {
+ conf := types.Config{
+ Importer: importer.Default(),
+ Sizes: types.SizesFor("gc", arch),
+ }
+ ts := findStructTypeConfig(t, src, &conf)
+ var fields []*types.Var
+ // Make a copy manually :(
+ for i := 0; i < ts.NumFields(); i++ {
+ fields = append(fields, ts.Field(i))
+ }
+
+ offsets := conf.Sizes.Offsetsof(fields)
+ if offsets[0] != want[0] || offsets[1] != want[1] || offsets[2] != want[2] {
+ t.Errorf("OffsetsOf(%v) = %v want %v", ts, offsets, want)
+ }
+ })
+ }
+}
diff --git a/src/image/jpeg/reader_test.go b/src/image/jpeg/reader_test.go
index bf07fadede..6fdb6c4449 100644
--- a/src/image/jpeg/reader_test.go
+++ b/src/image/jpeg/reader_test.go
@@ -13,6 +13,7 @@ import (
"io"
"math/rand"
"os"
+ "runtime/debug"
"strings"
"testing"
"time"
@@ -247,18 +248,16 @@ func TestLargeImageWithShortData(t *testing.T) {
"\x20\x36\x9f\x78\x64\x75\xe6\xab\x7d\xb2\xde\x29\x70\xd3\x20\x27" +
"\xde\xaf\xa4\xf0\xca\x9f\x24\xa8\xdf\x46\xa8\x24\x84\x96\xe3\x77" +
"\xf9\x2e\xe0\x0a\x62\x7f\xdf\xd9"
- c := make(chan error, 1)
- go func() {
- _, err := Decode(strings.NewReader(input))
- c <- err
- }()
- select {
- case err := <-c:
- if err == nil {
- t.Fatalf("got nil error, want non-nil")
- }
- case <-time.After(3 * time.Second):
- t.Fatalf("timed out")
+
+ timer := time.AfterFunc(30*time.Second, func() {
+ debug.SetTraceback("all")
+ panic("TestLargeImageWithShortData stuck in Decode")
+ })
+ defer timer.Stop()
+
+ _, err := Decode(strings.NewReader(input))
+ if err == nil {
+ t.Fatalf("got nil error, want non-nil")
}
}
diff --git a/src/internal/fuzz/mem.go b/src/internal/fuzz/mem.go
index d6d45be20e..a5c3b02242 100644
--- a/src/internal/fuzz/mem.go
+++ b/src/internal/fuzz/mem.go
@@ -50,7 +50,7 @@ type sharedMemHeader struct {
// rawInMem is true if the region holds raw bytes, which occurs during
// minimization. If true after the worker fails during minimization, this
// indicates that an unrecoverable error occurred, and the region can be
- // used to retrive the raw bytes that caused the error.
+ // used to retrieve the raw bytes that caused the error.
rawInMem bool
}
diff --git a/src/math/big/floatmarsh.go b/src/math/big/floatmarsh.go
index d1c1dab069..990e085abe 100644
--- a/src/math/big/floatmarsh.go
+++ b/src/math/big/floatmarsh.go
@@ -8,6 +8,7 @@ package big
import (
"encoding/binary"
+ "errors"
"fmt"
)
@@ -67,6 +68,9 @@ func (z *Float) GobDecode(buf []byte) error {
*z = Float{}
return nil
}
+ if len(buf) < 6 {
+ return errors.New("Float.GobDecode: buffer too small")
+ }
if buf[0] != floatGobVersion {
return fmt.Errorf("Float.GobDecode: encoding version %d not supported", buf[0])
@@ -83,6 +87,9 @@ func (z *Float) GobDecode(buf []byte) error {
z.prec = binary.BigEndian.Uint32(buf[2:])
if z.form == finite {
+ if len(buf) < 10 {
+ return errors.New("Float.GobDecode: buffer too small for finite form float")
+ }
z.exp = int32(binary.BigEndian.Uint32(buf[6:]))
z.mant = z.mant.setBytes(buf[10:])
}
diff --git a/src/math/big/floatmarsh_test.go b/src/math/big/floatmarsh_test.go
index c056d78b80..401f45a51f 100644
--- a/src/math/big/floatmarsh_test.go
+++ b/src/math/big/floatmarsh_test.go
@@ -137,3 +137,15 @@ func TestFloatJSONEncoding(t *testing.T) {
}
}
}
+
+func TestFloatGobDecodeShortBuffer(t *testing.T) {
+ for _, tc := range [][]byte{
+ []byte{0x1, 0x0, 0x0, 0x0},
+ []byte{0x1, 0xfa, 0x0, 0x0, 0x0, 0x0},
+ } {
+ err := NewFloat(0).GobDecode(tc)
+ if err == nil {
+ t.Error("expected GobDecode to return error for malformed input")
+ }
+ }
+}
diff --git a/src/math/big/ratmarsh.go b/src/math/big/ratmarsh.go
index fbc7b6002d..56102e845b 100644
--- a/src/math/big/ratmarsh.go
+++ b/src/math/big/ratmarsh.go
@@ -45,12 +45,18 @@ func (z *Rat) GobDecode(buf []byte) error {
*z = Rat{}
return nil
}
+ if len(buf) < 5 {
+ return errors.New("Rat.GobDecode: buffer too small")
+ }
b := buf[0]
if b>>1 != ratGobVersion {
return fmt.Errorf("Rat.GobDecode: encoding version %d not supported", b>>1)
}
const j = 1 + 4
i := j + binary.BigEndian.Uint32(buf[j-4:j])
+ if len(buf) < int(i) {
+ return errors.New("Rat.GobDecode: buffer too small")
+ }
z.a.neg = b&1 != 0
z.a.abs = z.a.abs.setBytes(buf[j:i])
z.b.abs = z.b.abs.setBytes(buf[i:])
diff --git a/src/math/big/ratmarsh_test.go b/src/math/big/ratmarsh_test.go
index 351d109f8d..55a9878bb8 100644
--- a/src/math/big/ratmarsh_test.go
+++ b/src/math/big/ratmarsh_test.go
@@ -123,3 +123,15 @@ func TestRatXMLEncoding(t *testing.T) {
}
}
}
+
+func TestRatGobDecodeShortBuffer(t *testing.T) {
+ for _, tc := range [][]byte{
+ []byte{0x2},
+ []byte{0x2, 0x0, 0x0, 0x0, 0xff},
+ } {
+ err := NewRat(1, 2).GobDecode(tc)
+ if err == nil {
+ t.Error("expected GobDecode to return error for malformed input")
+ }
+ }
+}
diff --git a/src/net/http/client.go b/src/net/http/client.go
index 490349f7bd..992817c0f5 100644
--- a/src/net/http/client.go
+++ b/src/net/http/client.go
@@ -896,7 +896,7 @@ func (c *Client) PostForm(url string, data url.Values) (resp *Response, err erro
// 307 (Temporary Redirect)
// 308 (Permanent Redirect)
//
-// # Head is a wrapper around DefaultClient.Head
+// Head is a wrapper around DefaultClient.Head.
//
// To make a request with a specified context.Context, use NewRequestWithContext
// and DefaultClient.Do.
diff --git a/src/net/http/header.go b/src/net/http/header.go
index 6437f2d2c0..e0b342c63c 100644
--- a/src/net/http/header.go
+++ b/src/net/http/header.go
@@ -43,7 +43,8 @@ func (h Header) Set(key, value string) {
// Get gets the first value associated with the given key. If
// there are no values associated with the key, Get returns "".
// It is case insensitive; textproto.CanonicalMIMEHeaderKey is
-// used to canonicalize the provided key. To use non-canonical keys,
+// used to canonicalize the provided key. Get assumes that all
+// keys are stored in canonical form. To use non-canonical keys,
// access the map directly.
func (h Header) Get(key string) string {
return textproto.MIMEHeader(h).Get(key)
diff --git a/src/net/ipsock_posix.go b/src/net/ipsock_posix.go
index 9a961b96ab..7bb66f2d6c 100644
--- a/src/net/ipsock_posix.go
+++ b/src/net/ipsock_posix.go
@@ -215,8 +215,12 @@ func addrPortToSockaddrInet4(ap netip.AddrPort) (syscall.SockaddrInet4, error) {
func addrPortToSockaddrInet6(ap netip.AddrPort) (syscall.SockaddrInet6, error) {
// ipToSockaddrInet6 has special handling here for zero length slices.
// We do not, because netip has no concept of a generic zero IP address.
+ //
+ // addr is allowed to be an IPv4 address, because As16 will convert it
+ // to an IPv4-mapped IPv6 address.
+ // The error message is kept consistent with ipToSockaddrInet6.
addr := ap.Addr()
- if !addr.Is6() {
+ if !addr.IsValid() {
return syscall.SockaddrInet6{}, &AddrError{Err: "non-IPv6 address", Addr: addr.String()}
}
sa := syscall.SockaddrInet6{
diff --git a/src/net/udpsock.go b/src/net/udpsock.go
index 6d29a39edf..e30624dea5 100644
--- a/src/net/udpsock.go
+++ b/src/net/udpsock.go
@@ -164,6 +164,10 @@ func (c *UDPConn) ReadFrom(b []byte) (int, Addr, error) {
}
// ReadFromUDPAddrPort acts like ReadFrom but returns a netip.AddrPort.
+//
+// If c is bound to an unspecified address, the returned
+// netip.AddrPort's address might be an IPv4-mapped IPv6 address.
+// Use netip.Addr.Unmap to get the address without the IPv6 prefix.
func (c *UDPConn) ReadFromUDPAddrPort(b []byte) (n int, addr netip.AddrPort, err error) {
if !c.ok() {
return 0, netip.AddrPort{}, syscall.EINVAL
diff --git a/src/net/udpsock_test.go b/src/net/udpsock_test.go
index f8acf6a028..4fa74752b9 100644
--- a/src/net/udpsock_test.go
+++ b/src/net/udpsock_test.go
@@ -9,6 +9,7 @@ package net
import (
"errors"
"internal/testenv"
+ "net/netip"
"os"
"reflect"
"runtime"
@@ -622,3 +623,45 @@ func TestUDPIPVersionReadMsg(t *testing.T) {
t.Error("returned UDPAddr is not IPv4")
}
}
+
+// TestIPv6WriteMsgUDPAddrPortTargetAddrIPVersion verifies that
+// WriteMsgUDPAddrPort accepts IPv4, IPv4-mapped IPv6, and IPv6 target addresses
+// on a UDPConn listening on "::".
+func TestIPv6WriteMsgUDPAddrPortTargetAddrIPVersion(t *testing.T) {
+ if !supportsIPv6() {
+ t.Skip("IPv6 is not supported")
+ }
+
+ switch runtime.GOOS {
+ case "openbsd":
+ // OpenBSD's IPv6 sockets are always IPv6-only, according to the man page:
+ // https://man.openbsd.org/ip6#IPV6_V6ONLY
+ t.Skipf("skipping on %v", runtime.GOOS)
+ }
+
+ conn, err := ListenUDP("udp", nil)
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer conn.Close()
+
+ daddr4 := netip.AddrPortFrom(netip.MustParseAddr("127.0.0.1"), 12345)
+ daddr4in6 := netip.AddrPortFrom(netip.MustParseAddr("::ffff:127.0.0.1"), 12345)
+ daddr6 := netip.AddrPortFrom(netip.MustParseAddr("::1"), 12345)
+ buf := make([]byte, 8)
+
+ _, _, err = conn.WriteMsgUDPAddrPort(buf, nil, daddr4)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ _, _, err = conn.WriteMsgUDPAddrPort(buf, nil, daddr4in6)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ _, _, err = conn.WriteMsgUDPAddrPort(buf, nil, daddr6)
+ if err != nil {
+ t.Fatal(err)
+ }
+}
diff --git a/src/os/exec/dot_test.go b/src/os/exec/dot_test.go
index e2d2dba7a5..306f98cbaa 100644
--- a/src/os/exec/dot_test.go
+++ b/src/os/exec/dot_test.go
@@ -56,40 +56,58 @@ func TestLookPath(t *testing.T) {
// Add "." to PATH so that exec.LookPath looks in the current directory on all systems.
// And try to trick it with "../testdir" too.
- for _, dir := range []string{".", "../testdir"} {
- t.Run(pathVar+"="+dir, func(t *testing.T) {
- t.Setenv(pathVar, dir+string(filepath.ListSeparator)+origPath)
- good := dir + "/execabs-test"
- if found, err := LookPath(good); err != nil || !strings.HasPrefix(found, good) {
- t.Fatalf(`LookPath(%#q) = %#q, %v, want "%s...", nil`, good, found, err, good)
- }
- if runtime.GOOS == "windows" {
- good = dir + `\execabs-test`
- if found, err := LookPath(good); err != nil || !strings.HasPrefix(found, good) {
- t.Fatalf(`LookPath(%#q) = %#q, %v, want "%s...", nil`, good, found, err, good)
- }
- }
-
- if _, err := LookPath("execabs-test"); err == nil {
- t.Fatalf("LookPath didn't fail when finding a non-relative path")
- } else if !errors.Is(err, ErrDot) {
- t.Fatalf("LookPath returned unexpected error: want Is ErrDot, got %q", err)
- }
-
- cmd := Command("execabs-test")
- if cmd.Err == nil {
- t.Fatalf("Command didn't fail when finding a non-relative path")
- } else if !errors.Is(cmd.Err, ErrDot) {
- t.Fatalf("Command returned unexpected error: want Is ErrDot, got %q", cmd.Err)
- }
- cmd.Err = nil
-
- // Clearing cmd.Err should let the execution proceed,
- // and it should fail because it's not a valid binary.
- if err := cmd.Run(); err == nil {
- t.Fatalf("Run did not fail: expected exec error")
- } else if errors.Is(err, ErrDot) {
- t.Fatalf("Run returned unexpected error ErrDot: want error like ENOEXEC: %q", err)
+ for _, errdot := range []string{"1", "0"} {
+ t.Run("GODEBUG=execerrdot="+errdot, func(t *testing.T) {
+ t.Setenv("GODEBUG", "execerrdot="+errdot)
+ for _, dir := range []string{".", "../testdir"} {
+ t.Run(pathVar+"="+dir, func(t *testing.T) {
+ t.Setenv(pathVar, dir+string(filepath.ListSeparator)+origPath)
+ good := dir + "/execabs-test"
+ if found, err := LookPath(good); err != nil || !strings.HasPrefix(found, good) {
+ t.Fatalf(`LookPath(%#q) = %#q, %v, want "%s...", nil`, good, found, err, good)
+ }
+ if runtime.GOOS == "windows" {
+ good = dir + `\execabs-test`
+ if found, err := LookPath(good); err != nil || !strings.HasPrefix(found, good) {
+ t.Fatalf(`LookPath(%#q) = %#q, %v, want "%s...", nil`, good, found, err, good)
+ }
+ }
+
+ _, err := LookPath("execabs-test")
+ if errdot == "1" {
+ if err == nil {
+ t.Fatalf("LookPath didn't fail when finding a non-relative path")
+ } else if !errors.Is(err, ErrDot) {
+ t.Fatalf("LookPath returned unexpected error: want Is ErrDot, got %q", err)
+ }
+ } else {
+ if err != nil {
+ t.Fatalf("LookPath failed unexpectedly: %v", err)
+ }
+ }
+
+ cmd := Command("execabs-test")
+ if errdot == "1" {
+ if cmd.Err == nil {
+ t.Fatalf("Command didn't fail when finding a non-relative path")
+ } else if !errors.Is(cmd.Err, ErrDot) {
+ t.Fatalf("Command returned unexpected error: want Is ErrDot, got %q", cmd.Err)
+ }
+ cmd.Err = nil
+ } else {
+ if cmd.Err != nil {
+ t.Fatalf("Command failed unexpectedly: %v", err)
+ }
+ }
+
+ // Clearing cmd.Err should let the execution proceed,
+ // and it should fail because it's not a valid binary.
+ if err := cmd.Run(); err == nil {
+ t.Fatalf("Run did not fail: expected exec error")
+ } else if errors.Is(err, ErrDot) {
+ t.Fatalf("Run returned unexpected error ErrDot: want error like ENOEXEC: %q", err)
+ }
+ })
}
})
}
diff --git a/src/os/exec/exec.go b/src/os/exec/exec.go
index 57d18420bb..737aaab6a7 100644
--- a/src/os/exec/exec.go
+++ b/src/os/exec/exec.go
@@ -80,6 +80,11 @@
// log.Fatal(err)
// }
//
+// Setting the environment variable GODEBUG=execerrdot=0
+// disables generation of ErrDot entirely, temporarily restoring the pre-Go 1.19
+// behavior for programs that are unable to apply more targeted fixes.
+// A future version of Go may remove support for this variable.
+//
// Before adding such overrides, make sure you understand the
// security implications of doing so.
// See https://go.dev/blog/path-security for more information.
diff --git a/src/os/exec/lp_plan9.go b/src/os/exec/lp_plan9.go
index 68224814d1..092684f03a 100644
--- a/src/os/exec/lp_plan9.go
+++ b/src/os/exec/lp_plan9.go
@@ -6,6 +6,7 @@ package exec
import (
"errors"
+ "internal/godebug"
"io/fs"
"os"
"path/filepath"
@@ -53,7 +54,7 @@ func LookPath(file string) (string, error) {
for _, dir := range filepath.SplitList(path) {
path := filepath.Join(dir, file)
if err := findExecutable(path); err == nil {
- if !filepath.IsAbs(path) {
+ if !filepath.IsAbs(path) && godebug.Get("execerrdot") != "0" {
return path, &Error{file, ErrDot}
}
return path, nil
diff --git a/src/os/exec/lp_unix.go b/src/os/exec/lp_unix.go
index 9833205663..b2b412c96b 100644
--- a/src/os/exec/lp_unix.go
+++ b/src/os/exec/lp_unix.go
@@ -8,6 +8,7 @@ package exec
import (
"errors"
+ "internal/godebug"
"io/fs"
"os"
"path/filepath"
@@ -56,7 +57,7 @@ func LookPath(file string) (string, error) {
}
path := filepath.Join(dir, file)
if err := findExecutable(path); err == nil {
- if !filepath.IsAbs(path) {
+ if !filepath.IsAbs(path) && godebug.Get("execerrdot") != "0" {
return path, &Error{file, ErrDot}
}
return path, nil
diff --git a/src/os/exec/lp_windows.go b/src/os/exec/lp_windows.go
index da047585eb..ec45db7459 100644
--- a/src/os/exec/lp_windows.go
+++ b/src/os/exec/lp_windows.go
@@ -6,6 +6,7 @@ package exec
import (
"errors"
+ "internal/godebug"
"io/fs"
"os"
"path/filepath"
@@ -102,6 +103,9 @@ func LookPath(file string) (string, error) {
)
if _, found := syscall.Getenv("NoDefaultCurrentDirectoryInExePath"); !found {
if f, err := findExecutable(filepath.Join(".", file), exts); err == nil {
+ if godebug.Get("execerrdot") == "0" {
+ return f, nil
+ }
dotf, dotErr = f, &Error{file, ErrDot}
}
}
@@ -124,7 +128,7 @@ func LookPath(file string) (string, error) {
}
}
- if !filepath.IsAbs(f) {
+ if !filepath.IsAbs(f) && godebug.Get("execerrdot") != "0" {
return f, &Error{file, ErrDot}
}
return f, nil
diff --git a/src/runtime/asm_arm64.s b/src/runtime/asm_arm64.s
index f593b4a78b..7836ba1d96 100644
--- a/src/runtime/asm_arm64.s
+++ b/src/runtime/asm_arm64.s
@@ -107,8 +107,18 @@ nocgo:
DATA runtime·mainPC+0(SB)/8,$runtime·main<ABIInternal>(SB)
GLOBL runtime·mainPC(SB),RODATA,$8
+// Windows ARM64 needs an immediate 0xf000 argument.
+// See go.dev/issues/53837.
+#define BREAK \
+#ifdef GOOS_windows \
+ BRK $0xf000 \
+#else \
+ BRK \
+#endif \
+
+
TEXT runtime·breakpoint(SB),NOSPLIT|NOFRAME,$0-0
- BRK
+ BREAK
RET
TEXT runtime·asminit(SB),NOSPLIT|NOFRAME,$0-0
@@ -1325,7 +1335,7 @@ TEXT runtime·debugCallV2<ABIInternal>(SB),NOSPLIT|NOFRAME,$0-0
// Set R20 to 8 and invoke BRK. The debugger should get the
// reason a call can't be injected from SP+8 and resume execution.
MOVD $8, R20
- BRK
+ BREAK
JMP restore
good:
@@ -1374,7 +1384,7 @@ good:
MOVD $20, R0
MOVD R0, 16(RSP) // length of debugCallFrameTooLarge string
MOVD $8, R20
- BRK
+ BREAK
JMP restore
restore:
@@ -1383,7 +1393,7 @@ restore:
// Set R20 to 16 and invoke BRK. The debugger should restore
// all registers except for PC and RSP and resume execution.
MOVD $16, R20
- BRK
+ BREAK
// We must not modify flags after this point.
// Restore pointer-containing registers, which may have been
@@ -1414,9 +1424,9 @@ restore:
TEXT NAME(SB),WRAPPER,$MAXSIZE-0; \
NO_LOCAL_POINTERS; \
MOVD $0, R20; \
- BRK; \
+ BREAK; \
MOVD $1, R20; \
- BRK; \
+ BREAK; \
RET
DEBUG_CALL_FN(debugCall32<>, 32)
DEBUG_CALL_FN(debugCall64<>, 64)
@@ -1439,7 +1449,7 @@ TEXT runtime·debugCallPanicked(SB),NOSPLIT,$16-16
MOVD val_data+8(FP), R0
MOVD R0, 16(RSP)
MOVD $2, R20
- BRK
+ BREAK
RET
// Note: these functions use a special calling convention to save generated code space.
diff --git a/src/runtime/cgo/gcc_linux_amd64.c b/src/runtime/cgo/gcc_linux_amd64.c
index c25e7e769b..fb164c1a1d 100644
--- a/src/runtime/cgo/gcc_linux_amd64.c
+++ b/src/runtime/cgo/gcc_linux_amd64.c
@@ -44,7 +44,9 @@ x_cgo_init(G *g, void (*setg)(void*), void **tlsg, void **tlsbase)
}
pthread_attr_init(attr);
pthread_attr_getstacksize(attr, &size);
- g->stacklo = (uintptr)&size - size + 4096;
+ g->stacklo = (uintptr)__builtin_frame_address(0) - size + 4096;
+ if (g->stacklo >= g->stackhi)
+ fatalf("bad stack bounds: lo=%p hi=%p\n", g->stacklo, g->stackhi);
pthread_attr_destroy(attr);
free(attr);
diff --git a/src/runtime/chan.go b/src/runtime/chan.go
index 993af7063b..ca516ad9e8 100644
--- a/src/runtime/chan.go
+++ b/src/runtime/chan.go
@@ -780,7 +780,7 @@ func (q *waitq) dequeue() *sudog {
} else {
y.prev = nil
q.first = y
- sgp.next = nil // mark as removed (see dequeueSudog)
+ sgp.next = nil // mark as removed (see dequeueSudoG)
}
// if a goroutine was put on this queue because of a
diff --git a/src/runtime/mgcpacer.go b/src/runtime/mgcpacer.go
index ac3446db36..2d9fd27748 100644
--- a/src/runtime/mgcpacer.go
+++ b/src/runtime/mgcpacer.go
@@ -439,7 +439,26 @@ func (c *gcControllerState) startCycle(markStartTime int64, procs int, trigger g
c.fractionalMarkTime = 0
c.idleMarkTime = 0
c.markStartTime = markStartTime
- c.triggered = c.heapLive
+
+ // TODO(mknyszek): This is supposed to be the actual trigger point for the heap, but
+ // causes regressions in memory use. The cause is that the PI controller used to smooth
+ // the cons/mark ratio measurements tends to flail when using the less accurate precomputed
+ // trigger for the cons/mark calculation, and this results in the controller being more
+ // conservative about steady-states it tries to find in the future.
+ //
+ // This conservatism is transient, but these transient states tend to matter for short-lived
+ // programs, especially because the PI controller is overdamped, partially because it is
+ // configured with a relatively large time constant.
+ //
+ // Ultimately, I think this is just two mistakes piled on one another: the choice of a swingy
+ // smoothing function that recalls a fairly long history (due to its overdamped time constant)
+ // coupled with an inaccurate cons/mark calculation. It just so happens this works better
+ // today, and it makes it harder to change things in the future.
+ //
+ // This is described in #53738. Fix this for #53892 by changing back to the actual trigger
+ // point and simplifying the smoothing function.
+ heapTrigger, heapGoal := c.trigger()
+ c.triggered = heapTrigger
// Compute the background mark utilization goal. In general,
// this may not come out exactly. We round the number of
@@ -501,7 +520,6 @@ func (c *gcControllerState) startCycle(markStartTime int64, procs int, trigger g
c.revise()
if debug.gcpacertrace > 0 {
- heapGoal := c.heapGoal()
assistRatio := c.assistWorkPerByte.Load()
print("pacer: assist ratio=", assistRatio,
" (scan ", gcController.heapScan>>20, " MB in ",
diff --git a/src/runtime/mprof.go b/src/runtime/mprof.go
index 6bf3ddda8c..99a67b9a3a 100644
--- a/src/runtime/mprof.go
+++ b/src/runtime/mprof.go
@@ -947,7 +947,7 @@ func goroutineProfileWithLabelsConcurrent(p []StackRecord, labels []unsafe.Point
goroutineProfile.active = true
goroutineProfile.records = p
goroutineProfile.labels = labels
- // The finializer goroutine needs special handling because it can vary over
+ // The finalizer goroutine needs special handling because it can vary over
// time between being a user goroutine (eligible for this profile) and a
// system goroutine (to be excluded). Pick one before restarting the world.
if fing != nil {
diff --git a/src/runtime/runtime_test.go b/src/runtime/runtime_test.go
index 0bdd01b086..018a8dbaa6 100644
--- a/src/runtime/runtime_test.go
+++ b/src/runtime/runtime_test.go
@@ -18,7 +18,12 @@ import (
"unsafe"
)
-var flagQuick = flag.Bool("quick", false, "skip slow tests, for second run in all.bash")
+// flagQuick is set by the -quick option to skip some relatively slow tests.
+// This is used by the cmd/dist test runtime:cpu124.
+// The cmd/dist test passes both -test.short and -quick;
+// there are tests that only check testing.Short, and those tests will
+// not be skipped if only -quick is used.
+var flagQuick = flag.Bool("quick", false, "skip slow tests, for cmd/dist test runtime:cpu124")
func init() {
// We're testing the runtime, so make tracebacks show things
diff --git a/src/runtime/string.go b/src/runtime/string.go
index 5ab0ac3a86..359a5658c5 100644
--- a/src/runtime/string.go
+++ b/src/runtime/string.go
@@ -432,7 +432,7 @@ func atoi32(s string) (int32, bool) {
// - KiB, MiB, GiB, TiB which represent binary IEC/ISO 80000 units, or
// - B, which just represents bytes.
//
-// Returns an int64 because that's what its callers want and recieve,
+// Returns an int64 because that's what its callers want and receive,
// but the result is always non-negative.
func parseByteCount(s string) (int64, bool) {
// The empty string is not valid.
diff --git a/src/runtime/testdata/testprog/vdso.go b/src/runtime/testdata/testprog/vdso.go
index d2a300d8f2..b18bc74a06 100644
--- a/src/runtime/testdata/testprog/vdso.go
+++ b/src/runtime/testdata/testprog/vdso.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// Invoke signal hander in the VDSO context (see issue 32912).
+// Invoke signal handler in the VDSO context (see issue 32912).
package main
diff --git a/src/runtime/time.go b/src/runtime/time.go
index aec39083b4..80b0bfb72c 100644
--- a/src/runtime/time.go
+++ b/src/runtime/time.go
@@ -397,7 +397,11 @@ func dodeltimer(pp *p, i int) int {
if i == 0 {
updateTimer0When(pp)
}
- atomic.Xadd(&pp.numTimers, -1)
+ n := atomic.Xadd(&pp.numTimers, -1)
+ if n == 0 {
+ // If there are no timers, then clearly none are modified.
+ atomic.Store64(&pp.timerModifiedEarliest, 0)
+ }
return smallestChanged
}
@@ -421,7 +425,11 @@ func dodeltimer0(pp *p) {
siftdownTimer(pp.timers, 0)
}
updateTimer0When(pp)
- atomic.Xadd(&pp.numTimers, -1)
+ n := atomic.Xadd(&pp.numTimers, -1)
+ if n == 0 {
+ // If there are no timers, then clearly none are modified.
+ atomic.Store64(&pp.timerModifiedEarliest, 0)
+ }
}
// modtimer modifies an existing timer.
diff --git a/src/time/format.go b/src/time/format.go
index 5f696189ff..8431ff89b4 100644
--- a/src/time/format.go
+++ b/src/time/format.go
@@ -53,10 +53,10 @@ import "errors"
// verbatim in the input to Parse.
//
// Year: "2006" "06"
-// Month: "Jan" "January"
-// Textual day of the week: "Mon" "Monday"
-// Numeric day of the month: "2" "_2" "02"
-// Numeric day of the year: "__2" "002"
+// Month: "Jan" "January" "01" "1"
+// Day of the week: "Mon" "Monday"
+// Day of the month: "2" "_2" "02"
+// Day of the year: "__2" "002"
// Hour: "15" "3" "03" (PM or AM)
// Minute: "4" "04"
// Second: "5" "05"
diff --git a/src/time/format_test.go b/src/time/format_test.go
index ab72fae323..9ae2b8017a 100644
--- a/src/time/format_test.go
+++ b/src/time/format_test.go
@@ -116,6 +116,13 @@ var formatTests = []FormatTest{
{"StampMicro", StampMicro, "Feb 4 21:00:57.012345"},
{"StampNano", StampNano, "Feb 4 21:00:57.012345600"},
{"YearDay", "Jan 2 002 __2 2", "Feb 4 035 35 4"},
+ {"Year", "2006 6 06 _6 __6 ___6", "2009 6 09 _6 __6 ___6"},
+ {"Month", "Jan January 1 01 _1", "Feb February 2 02 _2"},
+ {"DayOfMonth", "2 02 _2 __2", "4 04 4 35"},
+ {"DayOfWeek", "Mon Monday", "Wed Wednesday"},
+ {"Hour", "15 3 03 _3", "21 9 09 _9"},
+ {"Minute", "4 04 _4", "0 00 _0"},
+ {"Second", "5 05 _5", "57 57 _57"},
}
func TestFormat(t *testing.T) {
diff --git a/src/unsafe/unsafe.go b/src/unsafe/unsafe.go
index da15902b29..5051b3ee9f 100644
--- a/src/unsafe/unsafe.go
+++ b/src/unsafe/unsafe.go
@@ -189,13 +189,18 @@ type Pointer *ArbitraryType
// For instance, if x is a slice, Sizeof returns the size of the slice
// descriptor, not the size of the memory referenced by the slice.
// For a struct, the size includes any padding introduced by field alignment.
-// The return value of Sizeof is a Go constant.
+// The return value of Sizeof is a Go constant if the type of the argument x
+// does not have variable size.
+// (A type has variable size if it is a type parameter or if it is an array
+// or struct type with elements of variable size).
func Sizeof(x ArbitraryType) uintptr
// Offsetof returns the offset within the struct of the field represented by x,
// which must be of the form structValue.field. In other words, it returns the
// number of bytes between the start of the struct and the start of the field.
-// The return value of Offsetof is a Go constant.
+// The return value of Offsetof is a Go constant if the type of the argument x
+// does not have variable size.
+// (See the description of [Sizeof] for a definition of variable sized types.)
func Offsetof(x ArbitraryType) uintptr
// Alignof takes an expression x of any type and returns the required alignment
@@ -206,7 +211,9 @@ func Offsetof(x ArbitraryType) uintptr
// within that struct, then Alignof(s.f) will return the required alignment
// of a field of that type within a struct. This case is the same as the
// value returned by reflect.TypeOf(s.f).FieldAlign().
-// The return value of Alignof is a Go constant.
+// The return value of Alignof is a Go constant if the type of the argument
+// does not have variable size.
+// (See the description of [Sizeof] for a definition of variable sized types.)
func Alignof(x ArbitraryType) uintptr
// The function Add adds len to ptr and returns the updated pointer
diff --git a/test/fixedbugs/issue52278.go b/test/fixedbugs/issue52278.go
index 56169e6871..147b653037 100644
--- a/test/fixedbugs/issue52278.go
+++ b/test/fixedbugs/issue52278.go
@@ -1,4 +1,4 @@
-// compile
+// compile -d=ssa/check/on
// Copyright 2022 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
diff --git a/test/run.go b/test/run.go
index cb1622ccc9..b2902f190c 100644
--- a/test/run.go
+++ b/test/run.go
@@ -58,7 +58,7 @@ type envVars struct {
}
var env = func() (res envVars) {
- cmd := exec.Command("go", "env", "-json")
+ cmd := exec.Command(goTool(), "env", "-json")
stdout, err := cmd.StdoutPipe()
if err != nil {
log.Fatal("StdoutPipe:", err)
@@ -710,6 +710,22 @@ func (t *test) run() {
if tempDirIsGOPATH {
cmd.Env = append(cmd.Env, "GOPATH="+t.tempDir)
}
+ // Put the bin directory of the GOROOT that built this program
+ // first in the path. This ensures that tests that use the "go"
+ // tool use the same one that built this program. This ensures
+ // that if you do "../bin/go run run.go" in this directory, all
+ // the tests that start subprocesses that "go tool compile" or
+ // whatever, use ../bin/go as their go tool, not whatever happens
+ // to be first in the user's path.
+ path := os.Getenv("PATH")
+ newdir := filepath.Join(runtime.GOROOT(), "bin")
+ if path != "" {
+ path = newdir + string(filepath.ListSeparator) + path
+ } else {
+ path = newdir
+ }
+ cmd.Env = append(cmd.Env, "PATH="+path)
+
cmd.Env = append(cmd.Env, runenv...)
var err error
diff --git a/test/typeparam/issue53762.go b/test/typeparam/issue53762.go
new file mode 100644
index 0000000000..4d95988854
--- /dev/null
+++ b/test/typeparam/issue53762.go
@@ -0,0 +1,18 @@
+// compile
+
+// Copyright 2022 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.
+
+package main
+
+type Value[T any] interface {
+}
+
+func use[T any](v Value[T]) {
+ _, _ = v.(int)
+}
+
+func main() {
+ use(Value[int](1))
+}