diff options
author | Dmitri Shuralyov <dmitshur@golang.org> | 2022-08-01 14:19:15 -0400 |
---|---|---|
committer | Dmitri Shuralyov <dmitshur@golang.org> | 2022-08-01 14:19:15 -0400 |
commit | 46ab46c7c565425089230836684bd8e2644d48a4 (patch) | |
tree | a745285f0ec83af8a584ff0c6c558bfda84664eb | |
parent | ad672e7ce101cc52e38bae3d7484e4660a20d575 (diff) | |
parent | e99f53fed98b0378c147588789b8c56b0305469b (diff) | |
download | go-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
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)) +} |