aboutsummaryrefslogtreecommitdiff
path: root/design
AgeCommit message (Collapse)Author
6 daysdesign/44309: fix broken links on imagesShulhan
6 daysall: fix broken links and typosShulhan
2025-12-17design/74299-runtime-free.md: minor design doc updatesthepudds
Updates golang/go#74299 Change-Id: Ic053d9840a78724c5283575d378ce9db94755cc4 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/722280 Reviewed-by: Michael Knyszek <mknyszek@google.com>
2025-12-03design: fix issue number in go15bootstrap.mdAbhishek Jha
Fixes golang/go#76665. Change-Id: I83abea2596e388b2171b264af7833786300afb11 GitHub-Last-Rev: f11d6043457de8c1fca27b9c00f752d7df5d111f GitHub-Pull-Request: golang/proposal#59 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/726460 Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
2025-11-14design/74299-runtime-free.md: add runtime.freegc and use via compiler to ↵thepudds
reduce GC work Design doc for golang/go#74299 and related CLs. The implementation begins with the stack at CL 673695. This document is currently largely in sync with the latest implementation. Updates golang/go#74299 Change-Id: I56738000cc473fa95d848f2d078c3d160c6ed8cd Reviewed-on: https://go-review.googlesource.com/c/proposal/+/700255 Reviewed-by: Michael Knyszek <mknyszek@google.com>
2025-09-08design: add design/74609-goroutine-leak-detection-gc.mdVlad Saioc
For golang/go#74609 Changes at CL 688335 Change-Id: I605c0d4aa88cd44f42300ebe476496744d93f9ce GitHub-Last-Rev: 49564e8f7727b67d56faf8b330f266cea67a7fcd GitHub-Pull-Request: golang/proposal#58 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/689555 Reviewed-by: Michael Knyszek <mknyszek@google.com> Reviewed-by: Michael Pratt <mpratt@google.com>
2025-02-27design: add 71953-go-dynamic-tls.mdAlexander Musman
For golang/go#71953 Change-Id: Ie6f3641dbea4a4e0993289f8db25bbe6c228724c GitHub-Last-Rev: ec997ee87ce120f515f3f737993968f8d2548a4b GitHub-Pull-Request: golang/proposal#56 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/644615 Commit-Queue: Ian Lance Taylor <iant@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Auto-Submit: Ian Lance Taylor <iant@golang.org>
2024-11-14design/70257-memory-regions.md: add CPU effect modelMichael Anthony Knyszek
This was accidentally removed when copying from a Google Doc. Whoops. Change-Id: I659f3c3c08e3b632d4d4aa39d2487d790ffdd44b Reviewed-on: https://go-review.googlesource.com/c/proposal/+/627538 Reviewed-by: Michael Knyszek <mknyszek@google.com>
2024-11-11design/70257-memory-regions.md: fix two minor mistakes in example codethepudds
Remove an unneeded dereference and an unneeded 0 return value. Change-Id: Id756d6a40cbd2fb9c4eb3b63b3ff8567ad65000e Reviewed-on: https://go-review.googlesource.com/c/proposal/+/626955 Reviewed-by: Michael Knyszek <mknyszek@google.com> Commit-Queue: t hepudds <thepudds1460@gmail.com>
2024-11-08design/70257-memory-regions.md: fix some minor errorsMichael Anthony Knyszek
Change-Id: I269448ac694280e6642ab3eaebfa3ae402d0ff54 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/626558 Reviewed-by: Michael Knyszek <mknyszek@google.com>
2024-11-08design/70257-memory-regions.md: add draft design for discussionMichael Anthony Knyszek
Change-Id: I4eb278f787426d1218afbd0f8c48949f60642040 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/626635 Reviewed-by: Michael Knyszek <mknyszek@google.com>
2024-10-2914313-benchmark-format: add unit metadataAustin Clements
The predefined keys differ slightly from what I proposed in golang/go#43744. I tried specifying {higher,lower}={better,worse} like I originally proposed and it just got really messy. Turning it around to better={higher,lower} means its somewhat backwards from what you might expect from English phrasing, but it lets us use a single key because I don't think anyone is going to accidentally write worse={higher,lower}, and this avoids any annoying questions about what happens if a user specifies both "higher" and "lower". For golang/go#43744. Change-Id: I895914b179c291003e76f897cabbcbdb2381f163 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/357530 Reviewed-by: Michael Knyszek <mknyszek@google.com>
2024-10-2914313-benchmark-format: minor refreshesAustin Clements
This updates some links and some stale information in this design doc. This is slightly odd because we use this design doc also as a specification, which creates some tension between whether it should continue to capture the state of the world at the time or be kept fully up-to-date. I tried to take a light touch in this CL. Change-Id: Ifa3cf7d70e0f6a65cd9184f76f449d5618211f63 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/357529 Reviewed-by: Michael Knyszek <mknyszek@google.com>
2024-10-16design/68578-mutex-spinbit.md: describe protocolRhys Hiltner
Add a design doc describing the general approach of the "spinbit" mutex protocol, and the details of the two drafts that implement it. Based on futex, for linux/amd64: https://go.dev/cl/601597 For all GOOS values and four architectures: https://go.dev/cl/620435 For golang/go#68578 Change-Id: Ie9665085c9b8cf1741deeb431acfa12fba550b63 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/617618 Auto-Submit: Rhys Hiltner <rhys.hiltner@gmail.com> Reviewed-by: Rhys Hiltner <rhys.hiltner@gmail.com> Commit-Queue: Rhys Hiltner <rhys.hiltner@gmail.com>
2024-09-22design/68723-crypto-ssh-v2.md: change NewPublicKey signatureNicola Murino
It now accepts a crypto.PublicKey instead of an empty interface. All public keys in the standard library implement this interface. Change-Id: I873175a4d4e57803dc3cafdadb800b4f34ae0ca1 GitHub-Last-Rev: 05a3b07a3ad37e5d46be7d24d8f2245b4cfdc1ba GitHub-Pull-Request: golang/proposal#54 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/614279 Reviewed-by: Nicola Murino <nicola.murino@gmail.com> Commit-Queue: Nicola Murino <nicola.murino@gmail.com> Auto-Submit: Nicola Murino <nicola.murino@gmail.com>
2024-09-22design/68723-crypto-ssh-v2.md: crypto.Signer returns ed25519 keys as valueNicola Murino
This is now consistent with x509.MarshalPKCS8PrivateKey, see golang/go#51974 Change-Id: Id643ef260facfb38730bc3db30e63555aa3d64a4 GitHub-Last-Rev: 5e5819e13c3c59b5b3d13b2ad6722f526c11aeb0 GitHub-Pull-Request: golang/proposal#53 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/614278 Commit-Queue: Nicola Murino <nicola.murino@gmail.com> Reviewed-by: Nicola Murino <nicola.murino@gmail.com> Auto-Submit: Nicola Murino <nicola.murino@gmail.com>
2024-09-15design/68723-crypto-ssh-v2.md: PrivateKeySigner and MarshalPrivateKey OptionsNicola Murino
PrivateKeySigner is a Signer that can also return the associated crypto.Signer. This means ParseRawPrivateKey and ParseRawPrivateKeyWithPassphrase can be private now. MarshalPrivateKeyOptions defines the options to Marshal a private key in OpenSSH format. We can pass the passphrase as option to MarshalPrivateKey and so we don't need MarshalPrivateKeyWithPassphrase. Additionally we can also configure the salt rounds that is currently hard coded (see golang/go#68700) and easly add more options in the future. Change-Id: Id5c30f69fc600d19ef579aa2cf54dc8620677bb8 GitHub-Last-Rev: 98ee61e445108a76c35ce3493bc5f2662c4c28ca GitHub-Pull-Request: golang/proposal#52 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/613036 Commit-Queue: Nicola Murino <nicola.murino@gmail.com> Reviewed-by: Nicola Murino <nicola.murino@gmail.com> Auto-Submit: Nicola Murino <nicola.murino@gmail.com>
2024-09-10design/69095-x-repo-continuous-go.md: add blank lineDmitri Shuralyov
Otherwise the two headers are joined into one paragraph. Change-Id: I29cf71c328f0f00d5908d2b1ff9e36113b742175 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/612275 Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
2024-08-27design/69095-x-repo-continuous-go.md: add designDmitri Shuralyov
For golang/go#69095. Change-Id: I6aa58154739456432b60ea332d324c5b7b048612 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/608955 Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
2024-08-22design/68723-crypto-ssh-v2.md: new proposalNicola Murino
For golang/go#68723 Updates golang/go#65269 Change-Id: Ied7a96ab990abe257c4b8c295e292f92a745a4a7 GitHub-Last-Rev: 33f25ddbfaf1d9b13300202c735801beef284c07 GitHub-Pull-Request: golang/proposal#51 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/602855 Commit-Queue: Nicola Murino <nicola.murino@gmail.com> Reviewed-by: Nicola Murino <nicola.murino@gmail.com> Auto-Submit: Nicola Murino <nicola.murino@gmail.com>
2024-07-18design/48429-go-tool-modules.md: new proposalConrad Irwin
For golang/go#48429 Change-Id: Ie3056f11b72b868d131f0a1ec09120b64b4dec24 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/495555 Reviewed-by: Michael Matloob <matloob@golang.org>
2024-03-11design/60773-execution-tracer-overhaul.md: add designMichael Anthony Knyszek
For golang/go#60773. Change-Id: I0f35c07941b5ebafc4e57db037a4a92092d6c7b0 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/503038 Reviewed-by: Michael Pratt <mpratt@google.com>
2023-08-09design: add go13compiler, go13linker, go15bootstrapRuss Cox
These are ported from the original Google docs. I am going to update the short links to point here, and then perhaps I will stop getting requests for access to the Google docs from people whose companies block all access to Google docs outside their domain. Change-Id: Ic3dfb3566c7335e98865dfcc188230d295bf40d5 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/517535 Reviewed-by: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org>
2023-06-13design/59960-heap-hugepage-util.md: add designMichael Anthony Knyszek
For golang/go#59960. Change-Id: I4c6ee87db54952ccacdfa6c66b419356e5842620 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/492018 Reviewed-by: Michael Pratt <mpratt@google.com>
2023-06-09design/48815-custom-fuzz-input-types.md: revise from feedbackRichard Hansen
* Add rationale explaining why the `customMutator` interface is not exported. * Switch `Mutate` to take a `context.Context`, and expand the associated rationale. * Minor readability tweaks. * Delete the open issues. (They don't describe problems that lack a solution; they are more like discussion points that should be addressed in the linked issue or in merge requests.) For golang/go#48815. Change-Id: I704ab930710d1b82a42b7923dbabc4e10543f5ca Reviewed-on: https://go-review.googlesource.com/c/proposal/+/501537 Reviewed-by: Ian Lance Taylor <iant@google.com>
2023-05-11design/48815-custom-fuzz-input-types.md: new design proposalRichard Hansen
For golang/go#48815. Change-Id: I021e4517940ff073254d9d56fcca623f4e2ed460 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/493637 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2023-05-10s/golang.org/go.dev/gRichard Hansen
Change-Id: Ieff4883f98129407be1b3faa2610253aef5c1f33 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/494335 Reviewed-by: Ian Lance Taylor <iant@golang.org> Auto-Submit: Ian Lance Taylor <iant@golang.org>
2023-05-09design/60078-loopvar: add loopvar proposal design docRuss Cox
Change-Id: Id1722b5f15876a7bce5e8ea8e4258eea63e845d2 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/493917 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
2023-03-10design/56345-structured-logging.md: remove error arg from ErrorJonathan Amsterdam
Update the design doc to match the current API, which omits the error argument from the Error function and method, and removes the ErrorKey constant. Change-Id: I02b0a8d69f73abd3ae72651f2a581d0e32f46d37 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/475335 Reviewed-by: Alan Donovan <adonovan@google.com> Run-TryBot: Jonathan Amsterdam <jba@google.com>
2023-02-23design/56345-structured-logging.md: update to match latest API changesJonathan Amsterdam
Change-Id: Ib72c607cecd0ef8eece2b5397ef267c812e3bbc8 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/469977 Run-TryBot: Jonathan Amsterdam <jba@google.com> Reviewed-by: Alan Donovan <adonovan@google.com>
2023-02-14go2draft-error-handling-overview: update Microsoft blog linksIan Lance Taylor
Change-Id: I39ff235ce4b591fa93ffec4b2154abed428990ee Reviewed-on: https://go-review.googlesource.com/c/proposal/+/468395 Reviewed-by: Ian Lance Taylor <iant@google.com> Run-TryBot: Ian Lance Taylor <iant@golang.org>
2023-02-11design/56345-structured-logging.md: update with latest API changesJonathan Amsterdam
Bring the design doc in line with recent minor changes to slog. Change-Id: If9c1e2cc7381323d08057dc29a30e89926fd768d Reviewed-on: https://go-review.googlesource.com/c/proposal/+/467440 Run-TryBot: Jonathan Amsterdam <jba@google.com> Reviewed-by: Alan Donovan <adonovan@google.com>
2023-01-13design/56345-structured-logging.md: remove NewContext, FromContext and CtxJonathan Amsterdam
Since there is a lot of pushback on this feature, remove it from this proposal. We will create a separate proposal later. Change-Id: Ic6ddaa28007c11b2444125b5da1039c2d37c0f5e Reviewed-on: https://go-review.googlesource.com/c/proposal/+/461941 Reviewed-by: Alan Donovan <adonovan@google.com> Run-TryBot: Jonathan Amsterdam <jba@google.com>
2023-01-11design/56345-structured-logging.md: update godocJonathan Amsterdam
Change-Id: I0d83b399ab148e39159c8183cad822e6a0f6e779 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/461096 Run-TryBot: Jonathan Amsterdam <jba@google.com> Reviewed-by: Alan Donovan <adonovan@google.com>
2022-12-06design/56986-godebug: add notes about transition and old GODEBUGsRuss Cox
Based on discussion on golang/go#56986 with Jordan Liggitt. Change-Id: I7787155ea8194d879cadf0e0a9d043dd2ef5c38f Reviewed-on: https://go-review.googlesource.com/c/proposal/+/455316 Reviewed-by: Russ Cox <rsc@golang.org>
2022-11-30design/57001-gotoolchain: add new docRuss Cox
Change-Id: I8d4a807dbdcee0587b059b306215bfc4a97c8a8a Reviewed-on: https://go-review.googlesource.com/c/proposal/+/453500 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
2022-11-30design/56986-godebug: add DefaultGODEBUG to debug.BuildInfo.SettingsRuss Cox
Change-Id: I45a30d25b6dc18b49f834648082dcce8d6aeba92 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/453499 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
2022-11-30design/56986-godebug: add note about security fixes vs deprecationsRuss Cox
Copied from discussion at https://github.com/golang/go/discussions/55090#discussioncomment-3657405. Change-Id: Id1be169e1c172629882d3b6e5b671765eecfa952 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/453498 Reviewed-by: Russ Cox <rsc@golang.org>
2022-11-29design/56986-godebug: link to proposalRuss Cox
Change-Id: Ia89ab416b1b631a47bc76f186a6832f25b3ca2e7 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/454018 Reviewed-by: Russ Cox <rsc@golang.org>
2022-11-29design/56986-godebug: add draft of godebug proposalRuss Cox
Change-Id: I8dd608c38e0454b1e0f8dee9fd62eac8c17f12f4 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/454017 Reviewed-by: Russ Cox <rsc@golang.org> TryBot-Bypass: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org>
2022-11-14design/56345-structured-logging.md: s/Logger/*Logger/Jonathan Amsterdam
Update the proposal to reflect https://go.dev/cl/448716, which made Logger a pointer type. Change-Id: If72913e1c780d1a5e46314150f500dee042f1251 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/450035 Run-TryBot: Jonathan Amsterdam <jba@google.com> Reviewed-by: Alan Donovan <adonovan@google.com>
2022-11-0856345-structured-logging.md: add proposed vet checkJonathan Amsterdam
Change-Id: I43c0016ff967be1bdd94f6a43818b54d9bf9b818 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/447157 Run-TryBot: Jonathan Amsterdam <jba@google.com> TryBot-Bypass: Jonathan Amsterdam <jba@google.com> Reviewed-by: Alan Donovan <adonovan@google.com>
2022-11-0156345-structured-logging.md: add issue numberJonathan Amsterdam
Change-Id: I7629efed8d63a1973b7c3d4500d2afc8a096df32 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/446870 Run-TryBot: Jonathan Amsterdam <jba@google.com> Reviewed-by: Alan Donovan <adonovan@google.com>
2022-11-01design/56345-structured-logging.md: add design docJonathan Amsterdam
This design document is a modification of the top post of the GitHub discussion on structured logging (https://github.com/golang/go/discussions/54763). Most of the document is unchanged, except for reformatting. The section on contexts has been rewritten to accommodate the new `WithContext` method and `Ctx` function, and the sections on groups and the `LogValue` method have been added. Change-Id: Ife6385c87c872c2a31c036ca63f8f61e6e2902a0 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/444415 Run-TryBot: Jonathan Amsterdam <jba@google.com> Reviewed-by: Russ Cox <rsc@golang.org>
2022-10-18design/55022-pgo-implementation.md: fix image pathsMichael Pratt
For golang/go#55022. Change-Id: I70ef39ee887026304f7e64e2747a580a0d717ee9 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/439297 Auto-Submit: Michael Pratt <mpratt@google.com> Run-TryBot: Michael Pratt <mpratt@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2022-10-13design/44167-gc-pacer-redesign: clarify the role of the PI controllerMichael Anthony Knyszek
For #44167. Change-Id: Ifb77d37798842b7b31addebd8512a9272bd1a665 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/442784 Reviewed-by: Michael Knyszek <mknyszek@google.com>
2022-10-07design/55022-pgo-implementation.md: add pgo implementation docRaj Barik
This doc describes the proposed implementation details for the PGO design in 55022-pgo.md. For golang/go#55022. Change-Id: Ifa277419ec820fa5f18bf4d3220eeb0c41db1d07 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/430398 Reviewed-by: Michael Pratt <mpratt@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2022-09-12design/55022-pgo.md: add design docCherry Mui
We propose adding support for profile-guided optimization (PGO) to Go. For golang/go#55022. Change-Id: I9bf8afc4858a530bc32fc2b40698209a45695203 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/430355 Reviewed-by: Michael Pratt <mpratt@google.com>
2022-08-04design: update the soft memory limit design documentMichael Anthony Knyszek
This change updates the design document with some additional prior art and corrections that reflect the final implementation. For #48409. Change-Id: I8276a30b546c698ab1c9f946ccc0ae2a327399d0 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/421418 Reviewed-by: Michael Knyszek <mknyszek@google.com>
2022-07-15design/go-generate: copy from original go.dev/s/go1.4-generateIan Lance Taylor
A step toward gathering design docs in one place. When this is submitted I will update the go.dev/s link. Change-Id: Ib34d955fdcfad9ecded5ed323922e8eef7b49d90 Reviewed-on: https://go-review.googlesource.com/c/proposal/+/417642 Reviewed-by: Rob Pike <r@golang.org>