Tur Dokumentasi Blog Coba

Go Proposals

Introduction

Proposing Changes to Go. The document that describes the process for proposing, documenting, and implementing changes to the Go project.

Proposals

The proposal is grouped by its status: Draft, Incoming, Open, Hold, Accepted, Frozen Due to Age, Declined, and Withdrawed; then ordered by issue number, not by created date or last updated, in descending order (the latest proposal is at the top).

Draft

Go Vulnerability Database, March 2021
Roland Shoemaker and Filippo Valsorda.

Go 2 Draft Designs

Open

Goroutine leak detection via garbage collection, July 2025
Georgian-Vlad Saioc (vsaioc@uber.com), Milind Chabbi (milind@uber.com)
Discussion at #74609.

Directly freeing user memory to reduce GC work, June 2025
PJ Malloy
Discussion at #74299

Go general dynamic TLS, February 2025
Alexander Musman
Discussion at #71953.

Memory regions, November 2024
Michael Knyszek
Discussion at #70257.

x/crypto/ssh/v2, August 2024
Nicola Murino, Filippo Valsorda
Discussion at #68723.

Custom Fuzz Input Types, May 2023
Richard Hansen
Discussion at #48815.

Make the internal lockedfile package public, 15 October 2019
Adrien Delorme
Discussion at #33974.

Localization support in Go, September 2015
Marcel van Lohuizen
Discussion at #12750.

Hold

Generic parameterization of array sizes, 16 March 2021
Andrew Werner
Discussion at #44253.

Make 64-bit fields be 64-bit aligned on 32-bit systems, add //go:packed, //go:align directives, 8 July 2020
Dan Scales
Discussion at #36606.

Built in support for high performance unbounded queue, 2 October 2018
Christian Petrin
Discussion at #27935.

Raw XML Token, 1 September 2018
Sam Whited
Discussion at #26756.

percpu.Sharded, an API for reducing cache contention, 27 January 2017
Austin Clements
Discussion at #18802.

Accepted

all, x/build/cmd/relui: automate go directive maintenance in golang.org/x repositories, August 2024
Dmitri Shuralyov
Discussion at #69095.

Improve scalability of runtime.lock2, July 2024
Rhys Hiltner
Discussion at #68578

Execution tracer overhaul, June 2023
Michael Knyszek
Discussion at #60733.

Less Error-Prone Loop Variable Scoping, May 2023
David Chase and Russ Cox Discussion at #60078.

Extended backwards compatibility for Go, December 2022
Russ Cox
Discussion at #56986.

Structured Logging. 19 October 2022
Jonathan Amsterdam
Discussion at #56345.

Profile guided optimization. 12 September 2022
Cherry Mui, Austin Clements, and Michael Pratt
Discussion at #55022.

Extend code coverage testing to include applications, March 2022
Than McIntosh
Discussion at #51430

go/doc: headings, lists, and links in Go doc comments January 2022
Russ Cox
Earlier discussion at #48305 and #45533. Proposal at #51082.

Adding tool dependencies to go.mod, July 2024
Conrad Irwin
Discussion at #48429.

Soft memory limit, 15 September 2021
Michael Knyszek
Discussion at #48409.

Additions to go/types to support type parameters, 17 August 2021
Rob Findley and Robert Griesemer
Discussion at #47916.

Additions to go/ast and go/token to support parameterized functions and types, 18 August 2021
Rob Findley and Robert Griesemer
Discussion at #47781.

Check references to standard library packages inconsistent with go.mod go version, 12 May 2021
Jay Conrod
Discussion at #46136.

Multi-Module Workspaces in cmd/go, 22 April 2021
Michael Matloob
Discussion at #45713.

First Class Fuzzing, 24 February 2021
Katie Hockman
Discussion at Reddit and #44551.

Type Parameters, 20 August 2021
Ian Lance Taylor and Robert Griesemer
Discussion at #43651.

Go command support for embedded static assets (files), July 2020
Russ Cox and Brad Fitzpatrick
Discussion at Reddit and #41191.

File System Interfaces for Go, July 2020
Russ Cox and Rob Pike
Discussion at Reddit, #41190.

Bug-resistant build constraints, 30 June 2020
Russ Cox
Discussion at Reddit and #41184.

Register-based Go calling convention, 10 August 2020
Austin Clements
Discussion at #40724.

go install should install executables in module mode outside a module, 29 September 2020
Jay Conrod and Daniel Martí
Discussion at #40279.

API for unstable runtime metrics, 7 February 2020
Michael Knyszek
Discussion at #37112.

Lazy Module Loading, 20 February 2020
Bryan C. Mills
Discussion at #36460.

Scaling the Go page allocator, 18 October 2019
Michael Knyszek and Austin Clements
Discussion at #35112.

Low-cost defers through inline code, and extra funcdata to manage the panic case, 23 September 2019
Dan Scales, Keith Randall, and Austin Clements
Discussion at #34481.

Cryptography Principles, June 2019
Filippo Valsorda
Discussion at #42466.

go command configuration file, 1 March 2019
Russ Cox
Discussion at #30411.

Smarter Scavenging, 20 February 2019
Michael Knyszek
Discussion at #30333.

Go 2 Error Inspection, 25 January 2019
Jonathan Amsterdam, Russ Cox, Marcel van Lohuizen, and Damien Neil
Discussion at #29934.

Go 2 transition, 15 October 2018
Ian Lance Taylor
Discussion at #28221.

Create an undefined internal calling convention, 14 January 2019
Austin Clements
Discussion at #27539.

Simplify mark termination and eliminate mark 2, 9 August 2018
Austin Clements
Discussion at #26903.

Go 1.5 Vendor Experiment, July 2015
Russ Cox, based on work by Keith Rarick
Discussion at #25719.

Secure the Public Go Module Ecosystem, 24 April 2019
Russ Cox and Filippo Valsorda
Discussion at #25530.

Non-cooperative goroutine preemption, 18 January 2019
Austin Clements
Discussion at #24543.

Versioned Go Modules, 20 March 2018
Russ Cox
Discussion at #24301.

Emit DWARF inlining info in the Go compiler, 23 October 2017
Than McIntosh
Discussion at #22080.

XML Stream, 9 March 2017
Sam Whited
Discussion at #19480.

Mid-stack inlining in the Go compiler, 10 March 2017
David Lazar and Austin Clements
Discussion at #19348.

Go 2 Number Literal Changes, 6 March 2019
Russ Cox and Robert Griesemer
Discussion at #19113.

Permit Signed Integers as Shift Counts for Go 2, 17 January 2019
Robert Griesemer
Discussion at #19113.

Type Aliases, 16 December 2016
Russ Cox and Robert Griesemer
Discussion at #18130.

Eliminate STW stack re-scanning, 21 October 2016
Austin Clements and Rick Hudson
Discussion at #17503.

Support for pprof profiler labels, 15 May 2017
Michael Matloob
Discussion at #17280.

Add support for CIDR notation in no_proxy variable, 10 July 2017
Rudi Kramer and James Forrest
Discussion at #16704.

Ignore tags in struct type conversions, 16 June 2016
Robert Griesemer
Discussion at #16085.

Separate soft and hard heap size goal, 31 October 2017
Austin Clements (inspired by discussion with Rick Hudson and Rhys Hiltner)
Discussion at #14951.

Go Benchmark Data Format, February 2016
Russ Cox and Austin Clements
Discussion at #14313.

Natural XML, 27 September 2016
Sam Whited
Discussion at #13504.

A Code of Conduct for the Go community, 17 November 2015
Andrew Gerrand
Discussion at #13073.

Monotonic Elapsed Time Measurements in Go, 26 January 2017
Russ Cox
Discussion at #12914.

Dense mark bits and sweep-free allocation, 30 September 2015
Austin Clements
Discussion at #12800.

Rules for passing pointers between Go and C, October 2015
Ian Lance Taylor
Discussion at #12416.

Testing: programmatic sub-test and sub-benchmark support, 2 September 2015
Marcel van Lohuizen
Discussion at #12166.

Decentralized GC coordination, 25 October 2015
Austin Clements
Discussion at #11970.

Security Policy for Go, 31 July 2015
Jason Buberel
Discussion at #11502.

Permit embedding of interfaces with overlapping method sets, 16 October 2019
Robert Griesemer
Discussion at #6977.

Testing: better support test helper functions with TB.Helper, 27 December 2016
Caleb Spare (based on previous work by Josh Bleecher Snyder)
Discussion at #4899.

json flag in go test, 14 September 2016
Nodir Turakulov
Discussion at #2981.

Binary-Only Packages, 24 April 2016
Russ Cox
Discussion at #2775.

Frozen Due to Age

GC Pacer Redesign, 8 February 2021
Michael Knyszek
Discussion at #44167.

go:wasmexport directive, 17 December 2020
Francesco Guardiani
Discussion at #42372, continued by #65199.

Declined

Add support for Persistent Memory in Go, 20 January 2021
Jerrin Shaji George, Mohit Verma, Rajesh Venkatasubramanian, and Pratap Subrahmanyam
Discussion at #43810.

A built-in Go error check function, try, 12 July 2019
Robert Griesemer
Discussion at #32437.

DNS Based Vanity Imports, 30 June 2018
Sam Whited
Discussion at #26160.

Alias declarations for Go, 18 July 2016
Robert Griesemer and Rob Pike
Discussion at #16339.

Go should have generics, April 2016
Ian Lance Taylor
Discussion at #15292.

Zip-based Go package archives, February 2016
Russ Cox
Discussion at #14386.

Multi-dimensional slices, 17 November 2016
Brendan Tracey
Discussion at #6282.

Go 1.2 Field Selectors and Nil Checks, July 2013
Russ Cox
Discussion at #4238. Originally at [https://go.dev/s/go12nil].

Withdrawed

User-configurable memory target, 16 February 2021
Michael Knyszek
Discussion at #44309.

Concurrent stack re-scanning, 18 October 2016
Austin Clements and Rick Hudson
Discussion at #17505.

Go Heap Dump Viewer, 20 July 2016
Michael Matloob
Discussion at #16410.

Audio for Mobile, 30 November 2015
Jaana Burcu Dogan
Discussion at #13432.

A minimal release process for Go repositories, 3 December 2015
Dave Cheney
Discussion at #12302.