diff --git a/gen.go b/gen.go index 7cd9dc3..879e63b 100644 --- a/gen.go +++ b/gen.go @@ -15,8 +15,8 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -//go:build ignore -// +build ignore +//go:build gore_generate +// +build gore_generate // This program generates stdpkgs_gen.go and goversion_gen.go. It can be invoked by running // go generate @@ -30,10 +30,12 @@ import ( "errors" "fmt" "go/format" + "golang.org/x/mod/semver" "io" "net/http" "os" "path/filepath" + "reflect" "strings" "text/template" "time" @@ -99,6 +101,30 @@ var goversions = map[string]*GoVersion{ } `)) +const moduleDataHeader = ` +// This file is part of GoRE. +// +// Copyright (C) 2019-2023 GoRE Authors +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +// Code generated by go generate; DO NOT EDIT. + +package gore + +` + var client = &http.Client{} var authRequest func(*http.Request) @@ -135,6 +161,7 @@ const ( commitRequestURLFormatStr = "https://api.github.com/repos/golang/go/git/commits/%s" outputFile = "stdpkg_gen.go" goversionOutputFile = "goversion_gen.go" + moduleDataOutputFile = "moduledata_gen.go" ) var ( @@ -223,7 +250,7 @@ func writeOnDemand(new []byte, target string) { } } -func processGoVersions() { +func generateGoVersions() { tags := make([]*tagResp, 0) // Fetch all tags @@ -238,13 +265,13 @@ func processGoVersions() { resp, err := client.Do(req) if err != nil { fmt.Println("Error when fetching tags:", err.Error()) - resp.Body.Close() + _ = resp.Body.Close() continue } next := getNextPageURL(resp) *requestURL = next body, err := io.ReadAll(resp.Body) - resp.Body.Close() + _ = resp.Body.Close() if err != nil { fmt.Println("Error when ready response body:", err) continue @@ -265,7 +292,9 @@ func processGoVersions() { fmt.Println("Error when opening goversions.csv:", err) return } - defer f.Close() + defer func(f *os.File) { + _ = f.Close() + }(f) knownVersions, err := getStoredGoversions(f) if err != nil { fmt.Println("Error when getting stored go versions:", err) @@ -283,7 +312,7 @@ func processGoVersions() { continue } if v, known := knownVersions[tag.Name]; known { - fmt.Fprintf(f, "%s,%s,%s\n", v.Name, v.Sha, v.Date) + _, _ = fmt.Fprintf(f, "%s,%s,%s\n", v.Name, v.Sha, v.Date) continue } @@ -292,11 +321,11 @@ func processGoVersions() { resp, err := client.Do(req) if err != nil { fmt.Println("Error when fetching commit info:", err) - resp.Body.Close() + _ = resp.Body.Close() continue } body, err := io.ReadAll(resp.Body) - resp.Body.Close() + _ = resp.Body.Close() var commit commitLong err = json.Unmarshal(body, &commit) @@ -304,7 +333,7 @@ func processGoVersions() { fmt.Println("Error when parsing commit json:", err) continue } - fmt.Fprintf(f, "%s,%s,%s\n", tag.Name, commit.Sha, commit.Committer.Date) + _, _ = fmt.Fprintf(f, "%s,%s,%s\n", tag.Name, commit.Sha, commit.Committer.Date) fmt.Println("New tag found:", tag.Name) knownVersions[tag.Name] = &goversion{Name: tag.Name, Sha: commit.Sha, Date: commit.Committer.Date} } @@ -378,40 +407,359 @@ func getNextPageURL(r *http.Response) string { return "" } -func main() { - processGoVersions() +func skipPath(path string) bool { + for _, exclude := range excludedPaths { + if strings.HasPrefix(path, exclude) { + return true + } + } + return false +} - resp, err := client.Get(fmt.Sprintf(requestURLFormatStr, "master")) - if err != nil { - fmt.Println("Error when fetching go src data:", err) +func typeDef(b *bytes.Buffer, st reflect.Type, bits int) { + typeName := "uint64" + if bits == 32 { + typeName = "uint32" + } + + _, _ = fmt.Fprintf(b, "type %s%d struct {\n", st.Name(), bits) + + for i := 0; i < st.NumField(); i++ { + field := st.Field(i) + fieldName := strings.ToUpper(field.Name[:1]) + field.Name[1:] + t := field.Type.Kind() + switch t { + case reflect.Uintptr: + _, _ = fmt.Fprintf(b, "%s %s\n", fieldName, typeName) + case reflect.String: + _, _ = fmt.Fprintf(b, "%s, %[1]slen %s\n", fieldName, typeName) + case reflect.Pointer: + _, _ = fmt.Fprintf(b, "%s %s\n", fieldName, typeName) + case reflect.Slice: + _, _ = fmt.Fprintf(b, "%s, %[1]slen, %[1]scap %s\n", fieldName, typeName) + + default: + panic(fmt.Sprintf("unhandled type: %+v", t)) + } + } + + _, _ = fmt.Fprint(b, "}\n\n") +} + +func toModuledata(b *bytes.Buffer, st reflect.Type, bits int) { + _, _ = fmt.Fprintf(b, "func (md %s%d) toModuledata() moduledata {\n", st.Name(), bits) + _, _ = fmt.Fprint(b, "return moduledata{\n") + + for _, names := range [][2]string{ + {"Text", "Text"}, + {"NoPtrData", "Noptrdata"}, + {"Data", "Data"}, + {"Bss", "Bss"}, + {"NoPtrBss", "Noptrbss"}, + {"Types", "Types"}, + } { + modFieldE(b, st, bits, names[0], names[1]) + } + + for _, names := range [][2]string{ + {"Typelink", "Typelinks"}, + {"ITabLink", "Itablinks"}, + {"FuncTab", "Ftab"}, + {"PCLNTab", "Pclntable"}, + } { + modFieldLen(b, st, bits, names[0], names[1]) + } + + _, _ = fmt.Fprint(b, "}\n}\n\n") +} + +func modFieldE(b *bytes.Buffer, st reflect.Type, bits int, modName, parsedName string) { + endName := "E" + strings.ToLower(parsedName) + if _, ok := st.FieldByName(strings.ToLower(parsedName)); !ok { return } - defer resp.Body.Close() - body, err := io.ReadAll(resp.Body) - if err != nil { - fmt.Println("Error when reading response body:", err) + if bits == 32 { + _, _ = fmt.Fprintf(b, "%sAddr: uint64(md.%[3]s),\n%[1]sLen: uint64(md.%s - md.%s),\n", modName, endName, parsedName) + } else { + _, _ = fmt.Fprintf(b, "%sAddr: md.%[3]s,\n%[1]sLen: md.%s - md.%s,\n", modName, endName, parsedName) + } +} + +func modFieldLen(b *bytes.Buffer, st reflect.Type, bits int, modName, parsedName string) { + lenName := parsedName + "len" + if _, ok := st.FieldByName(strings.ToLower(parsedName)); !ok { return } - var master ghResp - err = json.Unmarshal(body, &master) + if bits == 32 { + _, _ = fmt.Fprintf(b, "%sAddr: uint64(md.%s),\n%[1]sLen: uint64(md.%[3]s),\n", modName, parsedName, lenName) + } else { + _, _ = fmt.Fprintf(b, "%sAddr: md.%s,\n%[1]sLen: md.%[3]s,\n", modName, parsedName, lenName) + } +} + +func generateModuleData() { + b := &bytes.Buffer{} + b.WriteString(moduleDataHeader) + + for _, iface := range []any{ + moduledata20{}, + moduledata18{}, + moduledata16{}, + moduledata8{}, + moduledata7{}, + moduledata5{}, + } { + o := reflect.TypeOf(iface) + typeDef(b, o, 64) + toModuledata(b, o, 64) + typeDef(b, o, 32) + toModuledata(b, o, 32) + } + + out, err := format.Source(b.Bytes()) + if err != nil { + panic(err) + } + + err = os.WriteFile(moduleDataOutputFile, out, 0o666) if err != nil { - fmt.Println("Error when decoding the response body:", err) - return + panic(err) } - var stdPkgs []string - for _, tree := range master.Trees { - if tree.Gittype != "tree" { - continue +} + +/* + Internal module structures from Go's runtime. + TODO: auto extract from golang source runtime package. +*/ + +// Moduledata structure for Go 1.20 and newer (at least up to the last field covered here) + +type moduledata20 struct { + pcHeader *pcHeader + funcnametab []byte + cutab []uint32 + filetab []byte + pctab []byte + pclntable []byte + ftab []functab + findfunctab uintptr + minpc, maxpc uintptr + + text, etext uintptr + noptrdata, enoptrdata uintptr + data, edata uintptr + bss, ebss uintptr + noptrbss, enoptrbss uintptr + covctrs, ecovctrs uintptr + end, gcdata, gcbss uintptr + types, etypes uintptr + rodata uintptr + gofunc uintptr // go.func.* + + textsectmap []textsect + typelinks []int32 // offsets from types + itablinks []*itab +} + +// Moduledata structure for Go 1.18 and Go 1.19 + +type moduledata18 struct { + pcHeader *pcHeader + funcnametab []byte + cutab []uint32 + filetab []byte + pctab []byte + pclntable []byte + ftab []functab + findfunctab uintptr + minpc, maxpc uintptr + + text, etext uintptr + noptrdata, enoptrdata uintptr + data, edata uintptr + bss, ebss uintptr + noptrbss, enoptrbss uintptr + end, gcdata, gcbss uintptr + types, etypes uintptr + rodata uintptr + gofunc uintptr // go.func.* + + textsectmap []textsect + typelinks []int32 // offsets from types + itablinks []*itab +} + +// Moduledata structure for Go 1.16 to 1.17 + +type moduledata16 struct { + pcHeader *pcHeader + funcnametab []byte + cutab []uint32 + filetab []byte + pctab []byte + pclntable []byte + ftab []functab + findfunctab uintptr + minpc, maxpc uintptr + + text, etext uintptr + noptrdata, enoptrdata uintptr + data, edata uintptr + bss, ebss uintptr + noptrbss, enoptrbss uintptr + end, gcdata, gcbss uintptr + types, etypes uintptr + + textsectmap []textsect + typelinks []int32 // offsets from types + itablinks []*itab +} + +// Moduledata structure for Go 1.8 to 1.15 + +type moduledata8 struct { + pclntable []byte + ftab []functab + filetab []uint32 + findfunctab uintptr + minpc, maxpc uintptr + + text, etext uintptr + noptrdata, enoptrdata uintptr + data, edata uintptr + bss, ebss uintptr + noptrbss, enoptrbss uintptr + end, gcdata, gcbss uintptr + types, etypes uintptr + + textsectmap []textsect + typelinks []int32 // offsets from types + itablinks []*itab +} + +// Moduledata structure for Go 1.7 + +type moduledata7 struct { + pclntable []byte + ftab []functab + filetab []uint32 + findfunctab uintptr + minpc, maxpc uintptr + + text, etext uintptr + noptrdata, enoptrdata uintptr + data, edata uintptr + bss, ebss uintptr + noptrbss, enoptrbss uintptr + end, gcdata, gcbss uintptr + types, etypes uintptr + + typelinks []int32 // offsets from types + itablinks []*itab +} + +// Moduledata structure for Go 1.5 to 1.6 + +type moduledata5 struct { + pclntable []byte + ftab []functab + filetab []uint32 + findfunctab uintptr + minpc, maxpc uintptr + + text, etext uintptr + noptrdata, enoptrdata uintptr + data, edata uintptr + bss, ebss uintptr + noptrbss, enoptrbss uintptr + end, gcdata, gcbss uintptr + + typelinks []*_type +} + +// dummy definitions +type initTask struct{} +type pcHeader struct{} +type functab struct{} +type textsect struct{} +type itab struct{} +type ptabEntry struct{} +type modulehash struct{} +type _type struct{} + +func generateStdPkgs() { + collect := func(ver string) []string { + resp, err := client.Get(fmt.Sprintf(requestURLFormatStr, "master")) + if err != nil { + fmt.Println("Error when fetching go src data:", err) + return nil } - if !strings.HasPrefix(tree.Path, "src") || skipPath(tree.Path) { - continue + defer func(Body io.ReadCloser) { + _ = Body.Close() + }(resp.Body) + body, err := io.ReadAll(resp.Body) + if err != nil { + fmt.Println("Error when reading response body:", err) + return nil } - // Skip src folder. - if tree.Path == "src" { - continue + var master ghResp + err = json.Unmarshal(body, &master) + if err != nil { + fmt.Println("Error when decoding the response body:", err) + return nil } - // Strip "src/" and add to the list. - stdPkgs = append(stdPkgs, strings.TrimPrefix(tree.Path, "src/")) + var stdPkgs []string + for _, tree := range master.Trees { + if tree.Gittype != "tree" { + continue + } + if !strings.HasPrefix(tree.Path, "src") || skipPath(tree.Path) { + continue + } + // Skip src folder. + if tree.Path == "src" { + continue + } + // Strip "src/" and add to the list. + stdPkgs = append(stdPkgs, strings.TrimPrefix(tree.Path, "src/")) + } + + return stdPkgs + } + + f, err := os.OpenFile(filepath.Join("resources", "goversions.csv"), os.O_CREATE|os.O_RDWR, 0664) + if err != nil { + fmt.Println("Error when opening goversions.csv:", err) + return + } + defer func(f *os.File) { + _ = f.Close() + }(f) + knownVersions, err := getStoredGoversions(f) + + branchs := map[string]struct{}{} + for ver := range knownVersions { + rawver := "v" + strings.TrimPrefix(ver, "go") + sver := semver.MajorMinor(rawver) + if sver != "" { + sver = "go" + strings.TrimPrefix(sver, "v") + branchs["release-branch."+sver] = struct{}{} + } + } + + stdpkgsSet := map[string]struct{}{} + + for branch := range branchs { + fmt.Println("Fetching std pkgs for branch:", branch) + pkgs := collect(branch) + for _, pkg := range pkgs { + stdpkgsSet[pkg] = struct{}{} + } + } + + stdPkgs := make([]string, 0, len(stdpkgsSet)) + for pkg := range stdpkgsSet { + stdPkgs = append(stdPkgs, pkg) } // Generate the code. @@ -432,11 +780,18 @@ func main() { writeOnDemand(buf.Bytes(), outputFile) } -func skipPath(path string) bool { - for _, exclude := range excludedPaths { - if strings.HasPrefix(path, exclude) { - return true - } +func main() { + if len(os.Args) != 2 { + fmt.Println("go run gen.go [stdpkgs|goversion|moduledata]") + return + } + + switch os.Args[1] { + case "stdpkgs": + generateStdPkgs() + case "goversion": + generateGoVersions() + case "moduledata": + generateModuleData() } - return false } diff --git a/gen_moduledata.go b/gen_moduledata.go deleted file mode 100644 index 5cf4eed..0000000 --- a/gen_moduledata.go +++ /dev/null @@ -1,331 +0,0 @@ -// This file is part of GoRE. -// -// Copyright (C) 2019-2023 GoRE Authors -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -//go:build ignore -// +build ignore - -// This program generates stdpkgs_gen.go and goversion_gen.go. It can be invoked by running -// go generate -package main - -import ( - "bytes" - "fmt" - "go/format" - "os" - "reflect" - "strings" -) - -const header = ` -// This file is part of GoRE. -// -// Copyright (C) 2019-2023 GoRE Authors -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -// Code generated by go generate; DO NOT EDIT. - -package gore - -` - -func typeDef(b *bytes.Buffer, st reflect.Type, bits int) { - typeName := "uint64" - if bits == 32 { - typeName = "uint32" - } - - fmt.Fprintf(b, "type %s%d struct {\n", st.Name(), bits) - - for i := 0; i < st.NumField(); i++ { - field := st.Field(i) - fieldName := strings.ToUpper(field.Name[:1]) + field.Name[1:] - t := field.Type.Kind() - switch t { - case reflect.Uintptr: - fmt.Fprintf(b, "%s %s\n", fieldName, typeName) - case reflect.String: - fmt.Fprintf(b, "%s, %[1]slen %s\n", fieldName, typeName) - case reflect.Pointer: - fmt.Fprintf(b, "%s %s\n", fieldName, typeName) - case reflect.Slice: - fmt.Fprintf(b, "%s, %[1]slen, %[1]scap %s\n", fieldName, typeName) - - default: - panic(fmt.Sprintf("unhandled type: %+v", t)) - } - } - - fmt.Fprint(b, "}\n\n") -} - -func toModuledata(b *bytes.Buffer, st reflect.Type, bits int) { - fmt.Fprintf(b, "func (md %s%d) toModuledata() moduledata {\n", st.Name(), bits) - fmt.Fprint(b, "return moduledata{\n") - - for _, names := range [][2]string{ - {"Text", "Text"}, - {"NoPtrData", "Noptrdata"}, - {"Data", "Data"}, - {"Bss", "Bss"}, - {"NoPtrBss", "Noptrbss"}, - {"Types", "Types"}, - } { - modFieldE(b, st, bits, names[0], names[1]) - } - - for _, names := range [][2]string{ - {"Typelink", "Typelinks"}, - {"ITabLink", "Itablinks"}, - {"FuncTab", "Ftab"}, - {"PCLNTab", "Pclntable"}, - } { - modFieldLen(b, st, bits, names[0], names[1]) - } - - fmt.Fprint(b, "}\n}\n\n") -} - -func modFieldE(b *bytes.Buffer, st reflect.Type, bits int, modName, parsedName string) { - endName := "E" + strings.ToLower(parsedName) - if _, ok := st.FieldByName(strings.ToLower(parsedName)); !ok { - return - } - if bits == 32 { - fmt.Fprintf(b, "%sAddr: uint64(md.%[3]s),\n%[1]sLen: uint64(md.%s - md.%s),\n", modName, endName, parsedName) - } else { - fmt.Fprintf(b, "%sAddr: md.%[3]s,\n%[1]sLen: md.%s - md.%s,\n", modName, endName, parsedName) - } -} - -func modFieldLen(b *bytes.Buffer, st reflect.Type, bits int, modName, parsedName string) { - lenName := parsedName + "len" - if _, ok := st.FieldByName(strings.ToLower(parsedName)); !ok { - return - } - if bits == 32 { - fmt.Fprintf(b, "%sAddr: uint64(md.%s),\n%[1]sLen: uint64(md.%[3]s),\n", modName, parsedName, lenName) - } else { - fmt.Fprintf(b, "%sAddr: md.%s,\n%[1]sLen: md.%[3]s,\n", modName, parsedName, lenName) - } -} - -func main() { - - b := &bytes.Buffer{} - check1(b.WriteString(header)) - - for _, iface := range []any{ - moduledata20{}, - moduledata18{}, - moduledata16{}, - moduledata8{}, - moduledata7{}, - moduledata5{}, - } { - o := reflect.TypeOf(iface) - typeDef(b, o, 64) - toModuledata(b, o, 64) - typeDef(b, o, 32) - toModuledata(b, o, 32) - } - - fmted := check1(format.Source(b.Bytes())) - check(os.WriteFile("moduledata_gen.go", fmted, 0o666)) -} - -func check(err error) { - if err != nil { - panic(err) - } -} - -func check1[T any](arg1 T, err error) T { - check(err) - return arg1 -} - -/* - Internal module structures from Go's runtime. -*/ - -// Moduledata structure for Go 1.20 and newer (at least up to the last field covered here) - -type moduledata20 struct { - pcHeader *pcHeader - funcnametab []byte - cutab []uint32 - filetab []byte - pctab []byte - pclntable []byte - ftab []functab - findfunctab uintptr - minpc, maxpc uintptr - - text, etext uintptr - noptrdata, enoptrdata uintptr - data, edata uintptr - bss, ebss uintptr - noptrbss, enoptrbss uintptr - covctrs, ecovctrs uintptr - end, gcdata, gcbss uintptr - types, etypes uintptr - rodata uintptr - gofunc uintptr // go.func.* - - textsectmap []textsect - typelinks []int32 // offsets from types - itablinks []*itab -} - -// Moduledata structure for Go 1.18 and Go 1.19 - -type moduledata18 struct { - pcHeader *pcHeader - funcnametab []byte - cutab []uint32 - filetab []byte - pctab []byte - pclntable []byte - ftab []functab - findfunctab uintptr - minpc, maxpc uintptr - - text, etext uintptr - noptrdata, enoptrdata uintptr - data, edata uintptr - bss, ebss uintptr - noptrbss, enoptrbss uintptr - end, gcdata, gcbss uintptr - types, etypes uintptr - rodata uintptr - gofunc uintptr // go.func.* - - textsectmap []textsect - typelinks []int32 // offsets from types - itablinks []*itab -} - -// Moduledata structure for Go 1.16 to 1.17 - -type moduledata16 struct { - pcHeader *pcHeader - funcnametab []byte - cutab []uint32 - filetab []byte - pctab []byte - pclntable []byte - ftab []functab - findfunctab uintptr - minpc, maxpc uintptr - - text, etext uintptr - noptrdata, enoptrdata uintptr - data, edata uintptr - bss, ebss uintptr - noptrbss, enoptrbss uintptr - end, gcdata, gcbss uintptr - types, etypes uintptr - - textsectmap []textsect - typelinks []int32 // offsets from types - itablinks []*itab -} - -// Moduledata structure for Go 1.8 to 1.15 - -type moduledata8 struct { - pclntable []byte - ftab []functab - filetab []uint32 - findfunctab uintptr - minpc, maxpc uintptr - - text, etext uintptr - noptrdata, enoptrdata uintptr - data, edata uintptr - bss, ebss uintptr - noptrbss, enoptrbss uintptr - end, gcdata, gcbss uintptr - types, etypes uintptr - - textsectmap []textsect - typelinks []int32 // offsets from types - itablinks []*itab -} - -// Moduledata structure for Go 1.7 - -type moduledata7 struct { - pclntable []byte - ftab []functab - filetab []uint32 - findfunctab uintptr - minpc, maxpc uintptr - - text, etext uintptr - noptrdata, enoptrdata uintptr - data, edata uintptr - bss, ebss uintptr - noptrbss, enoptrbss uintptr - end, gcdata, gcbss uintptr - types, etypes uintptr - - typelinks []int32 // offsets from types - itablinks []*itab -} - -// Moduledata structure for Go 1.5 to 1.6 - -type moduledata5 struct { - pclntable []byte - ftab []functab - filetab []uint32 - findfunctab uintptr - minpc, maxpc uintptr - - text, etext uintptr - noptrdata, enoptrdata uintptr - data, edata uintptr - bss, ebss uintptr - noptrbss, enoptrbss uintptr - end, gcdata, gcbss uintptr - - typelinks []*_type -} - -// dummy definitions -type initTask struct{} -type pcHeader struct{} -type functab struct{} -type textsect struct{} -type itab struct{} -type ptabEntry struct{} -type modulehash struct{} -type _type struct{} diff --git a/goversion.go b/goversion.go index befff42..c2d1779 100644 --- a/goversion.go +++ b/goversion.go @@ -15,6 +15,8 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . +//go:generate go run gen.go goversion + package gore import ( diff --git a/moduledata.go b/moduledata.go index bf50235..61cd80e 100644 --- a/moduledata.go +++ b/moduledata.go @@ -17,7 +17,7 @@ package gore -//go:generate go run gen_moduledata.go +//go:generate go run gen.go moduledata import ( "bytes" diff --git a/package.go b/package.go index 2264381..e064e37 100644 --- a/package.go +++ b/package.go @@ -25,7 +25,7 @@ import ( "strings" ) -//go:generate go run gen.go +//go:generate go run gen.go stdpkgs var ( knownRepos = []string{"golang.org", "github.com", "gitlab.com"} diff --git a/stdpkg_gen.go b/stdpkg_gen.go index aa41d7d..56b60e7 100644 --- a/stdpkg_gen.go +++ b/stdpkg_gen.go @@ -17,487 +17,487 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated at -// 2024-01-25 19:24:26.1768459 +0000 UTC +// 2024-01-31 19:04:26.4224606 +0000 UTC package gore var stdPkgs = map[string]struct{}{ - "archive": {}, - "archive/tar": {}, - "archive/tar/testdata": {}, - "archive/zip": {}, - "archive/zip/testdata": {}, - "arena": {}, - "bufio": {}, - "builtin": {}, - "bytes": {}, - "cmp": {}, - "compress": {}, - "compress/bzip2": {}, - "compress/bzip2/testdata": {}, - "compress/flate": {}, - "compress/flate/testdata": {}, - "compress/gzip": {}, - "compress/gzip/testdata": {}, - "compress/lzw": {}, - "compress/testdata": {}, - "compress/zlib": {}, - "container": {}, - "container/heap": {}, - "container/list": {}, - "container/ring": {}, - "context": {}, - "crypto": {}, - "crypto/aes": {}, - "crypto/boring": {}, - "crypto/cipher": {}, - "crypto/des": {}, - "crypto/dsa": {}, - "crypto/ecdh": {}, - "crypto/ecdsa": {}, - "crypto/ecdsa/testdata": {}, - "crypto/ed25519": {}, - "crypto/ed25519/testdata": {}, - "crypto/elliptic": {}, - "crypto/hmac": {}, - "crypto/internal": {}, - "crypto/internal/alias": {}, - "crypto/internal/bigmod": {}, - "crypto/internal/bigmod/_asm": {}, - "crypto/internal/boring": {}, - "crypto/internal/boring/bbig": {}, - "crypto/internal/boring/bcache": {}, - "crypto/internal/boring/fipstls": {}, - "crypto/internal/boring/sig": {}, - "crypto/internal/boring/syso": {}, - "crypto/internal/edwards25519": {}, - "crypto/internal/edwards25519/field": {}, - "crypto/internal/edwards25519/field/_asm": {}, - "crypto/internal/nistec": {}, - "crypto/internal/nistec/fiat": {}, - "crypto/internal/randutil": {}, - "crypto/md5": {}, - "crypto/rand": {}, - "crypto/rc4": {}, - "crypto/rsa": {}, - "crypto/rsa/testdata": {}, - "crypto/sha1": {}, - "crypto/sha256": {}, - "crypto/sha512": {}, - "crypto/subtle": {}, - "crypto/tls": {}, - "crypto/tls/fipsonly": {}, - "crypto/tls/testdata": {}, - "crypto/x509": {}, - "crypto/x509/internal": {}, - "crypto/x509/internal/macos": {}, - "crypto/x509/pkix": {}, - "crypto/x509/testdata": {}, - "database": {}, - "database/sql": {}, - "database/sql/driver": {}, - "debug": {}, - "debug/buildinfo": {}, - "debug/dwarf": {}, - "debug/dwarf/testdata": {}, - "debug/elf": {}, - "debug/elf/testdata": {}, - "debug/gosym": {}, - "debug/gosym/testdata": {}, - "debug/macho": {}, - "debug/macho/testdata": {}, - "debug/pe": {}, - "debug/pe/testdata": {}, - "debug/plan9obj": {}, - "debug/plan9obj/testdata": {}, - "embed": {}, - "embed/internal": {}, - "embed/internal/embedtest": {}, - "embed/internal/embedtest/testdata": {}, - "embed/internal/embedtest/testdata/-not-hidden": {}, - "embed/internal/embedtest/testdata/.hidden": {}, + "runtime/testdata/testwinlibsignal": {}, + "crypto/elliptic": {}, + "crypto/rsa/testdata": {}, + "crypto/sha1": {}, + "crypto/sha256": {}, + "encoding/csv": {}, + "go/importer": {}, + "net/http/httptrace": {}, + "testing/internal/testdeps": {}, + "compress/gzip": {}, "embed/internal/embedtest/testdata/.hidden/.more": {}, - "embed/internal/embedtest/testdata/.hidden/_more": {}, - "embed/internal/embedtest/testdata/.hidden/more": {}, - "embed/internal/embedtest/testdata/_hidden": {}, - "embed/internal/embedtest/testdata/i": {}, - "embed/internal/embedtest/testdata/i/j": {}, - "embed/internal/embedtest/testdata/i/j/k": {}, - "encoding": {}, - "encoding/ascii85": {}, - "encoding/asn1": {}, - "encoding/base32": {}, - "encoding/base64": {}, - "encoding/binary": {}, - "encoding/csv": {}, - "encoding/gob": {}, - "encoding/hex": {}, - "encoding/json": {}, - "encoding/json/testdata": {}, - "encoding/pem": {}, - "encoding/xml": {}, - "errors": {}, - "expvar": {}, - "flag": {}, - "fmt": {}, - "go": {}, - "go/ast": {}, - "go/build": {}, - "go/build/constraint": {}, - "go/build/testdata": {}, - "go/build/testdata/alltags": {}, - "go/build/testdata/bads": {}, - "go/build/testdata/cgo_disabled": {}, - "go/build/testdata/directives": {}, - "go/build/testdata/doc": {}, - "go/build/testdata/empty": {}, - "go/build/testdata/multi": {}, - "go/build/testdata/non_source_tags": {}, - "go/build/testdata/other": {}, - "go/build/testdata/other/file": {}, - "go/build/testdata/withvendor": {}, - "go/build/testdata/withvendor/src": {}, - "go/build/testdata/withvendor/src/a": {}, - "go/build/testdata/withvendor/src/a/b": {}, - "go/build/testdata/withvendor/src/a/vendor": {}, - "go/build/testdata/withvendor/src/a/vendor/c": {}, - "go/build/testdata/withvendor/src/a/vendor/c/d": {}, - "go/constant": {}, - "go/doc": {}, - "go/doc/comment": {}, - "go/doc/comment/testdata": {}, - "go/doc/testdata": {}, - "go/doc/testdata/examples": {}, - "go/doc/testdata/pkgdoc": {}, - "go/format": {}, - "go/importer": {}, - "go/internal": {}, - "go/internal/gccgoimporter": {}, - "go/internal/gccgoimporter/testdata": {}, - "go/internal/gcimporter": {}, - "go/internal/gcimporter/testdata": {}, - "go/internal/gcimporter/testdata/versions": {}, - "go/internal/srcimporter": {}, - "go/internal/srcimporter/testdata": {}, - "go/internal/srcimporter/testdata/issue20855": {}, - "go/internal/srcimporter/testdata/issue23092": {}, + "encoding/base32": {}, + "internal/lazyregexp": {}, + "internal/trace/v2/testdata/cmd/gotraceraw": {}, + "net/http/httputil": {}, + "internal/testenv": {}, + "internal/trace/v2/raw": {}, + "os": {}, + "compress/bzip2": {}, + "debug/gosym": {}, + "go/token": {}, + "internal/trace/v2/testdata/fuzz": {}, + "os/user": {}, + "flag": {}, + "image/gif": {}, + "internal/fmtsort": {}, + "testing/quick": {}, + "archive/tar/testdata": {}, + "crypto/tls": {}, + "errors": {}, + "io/ioutil/testdata": {}, + "testing": {}, + "compress/flate/testdata": {}, + "go/internal/srcimporter/testdata/issue23092": {}, + "internal/testlog": {}, + "internal/trace/v2/testdata": {}, + "runtime/coverage/testdata/issue56006": {}, + "crypto/subtle": {}, + "net/http/fcgi": {}, + "runtime/trace": {}, + "crypto/ecdh": {}, + "crypto/internal/boring/fipstls": {}, + "embed/internal/embedtest": {}, + "container/list": {}, + "crypto/ed25519/testdata": {}, + "go/build/testdata/withvendor/src/a/b": {}, + "hash/adler32": {}, + "unicode/utf8": {}, + "arena": {}, + "crypto/tls/fipsonly": {}, + "go/build/testdata/multi": {}, + "go/build/testdata/withvendor": {}, + "go/parser": {}, + "image": {}, + "internal/obscuretestdata": {}, + "vendor/golang.org/x/text/unicode": {}, + "crypto/internal/edwards25519/field/_asm": {}, + "go/build/testdata/doc": {}, + "math/big": {}, + "encoding/asn1": {}, + "go/constant": {}, + "internal/coverage/encodecounter": {}, + "internal/coverage/stringtab": {}, + "internal/diff": {}, + "internal/sysinfo": {}, + "internal/testpty": {}, + "runtime/internal/atomic": {}, + "internal/saferio": {}, + "vendor/golang.org/x/crypto/internal/alias": {}, + "compress/lzw": {}, + "crypto/hmac": {}, + "crypto/x509": {}, + "internal/trace/v2/testdata/generators": {}, + "internal/types/testdata/check/importdecl1": {}, + "iter": {}, + "vendor/golang.org/x/net/http/httpguts": {}, + "internal/godebug": {}, + "runtime/internal": {}, + "internal/trace/v2/internal/testgen": {}, + "compress/gzip/testdata": {}, + "debug/elf": {}, + "debug/macho": {}, + "encoding/json/testdata": {}, "go/internal/srcimporter/testdata/issue24392": {}, - "go/internal/typeparams": {}, - "go/parser": {}, - "go/parser/testdata": {}, - "go/parser/testdata/goversion": {}, - "go/parser/testdata/issue42951": {}, - "go/parser/testdata/issue42951/not_a_file.go": {}, - "go/parser/testdata/resolution": {}, - "go/printer": {}, - "go/printer/testdata": {}, - "go/scanner": {}, - "go/token": {}, - "go/types": {}, - "go/types/testdata": {}, - "go/types/testdata/local": {}, - "go/version": {}, - "hash": {}, - "hash/adler32": {}, - "hash/crc32": {}, - "hash/crc64": {}, - "hash/fnv": {}, - "hash/maphash": {}, - "html": {}, - "html/template": {}, - "html/template/testdata": {}, - "image": {}, - "image/color": {}, - "image/color/palette": {}, - "image/draw": {}, - "image/gif": {}, - "image/internal": {}, - "image/internal/imageutil": {}, - "image/jpeg": {}, "image/png": {}, - "image/png/testdata": {}, - "image/png/testdata/pngsuite": {}, - "image/testdata": {}, - "index": {}, - "index/suffixarray": {}, - "internal": {}, - "internal/abi": {}, - "internal/abi/testdata": {}, - "internal/bisect": {}, - "internal/buildcfg": {}, - "internal/bytealg": {}, - "internal/cfg": {}, - "internal/chacha8rand": {}, - "internal/coverage": {}, - "internal/coverage/calloc": {}, - "internal/coverage/cformat": {}, - "internal/coverage/cmerge": {}, - "internal/coverage/decodecounter": {}, - "internal/coverage/decodemeta": {}, - "internal/coverage/encodecounter": {}, - "internal/coverage/encodemeta": {}, - "internal/coverage/pods": {}, - "internal/coverage/rtcov": {}, - "internal/coverage/slicereader": {}, - "internal/coverage/slicewriter": {}, - "internal/coverage/stringtab": {}, - "internal/coverage/test": {}, - "internal/coverage/uleb128": {}, - "internal/cpu": {}, - "internal/dag": {}, - "internal/diff": {}, - "internal/diff/testdata": {}, - "internal/fmtsort": {}, + "internal/syscall/unix": {}, + "internal/trace/v2/testdata/cmd/gotracevalidate": {}, + "internal/trace/v2/testdata/testprog": {}, + "internal/types/testdata/check": {}, + "runtime/debug/testdata/fuzz": {}, + "runtime/testdata/testwinlib": {}, + "runtime/testdata/testwinlibthrow": {}, + "crypto/sha512": {}, + "embed/internal/embedtest/testdata/i": {}, + "internal/zstd": {}, + "mime": {}, + "net/http/httptest": {}, + "text": {}, + "vendor/golang.org/x/crypto/internal": {}, + "vendor": {}, + "vendor/golang.org/x/crypto/chacha20": {}, + "encoding/pem": {}, "internal/fuzz": {}, - "internal/goarch": {}, - "internal/godebug": {}, - "internal/godebugs": {}, - "internal/goexperiment": {}, - "internal/goos": {}, - "internal/goroot": {}, - "internal/gover": {}, - "internal/goversion": {}, - "internal/intern": {}, - "internal/itoa": {}, - "internal/lazyregexp": {}, - "internal/lazytemplate": {}, - "internal/nettrace": {}, - "internal/obscuretestdata": {}, - "internal/oserror": {}, + "net/internal": {}, + "log": {}, + "crypto/x509/pkix": {}, + "html/template": {}, + "image/color/palette": {}, "internal/pkgbits": {}, - "internal/platform": {}, - "internal/poll": {}, - "internal/profile": {}, - "internal/race": {}, + "internal/types/testdata/check/importdecl0": {}, + "internal/types/testdata/examples": {}, + "internal/xcoff/testdata": {}, + "net/http/pprof/testdata": {}, + "vendor/golang.org/x/net/http2/hpack": {}, + "crypto/ecdsa": {}, + "runtime/testdata/testfds": {}, + "internal/abi/testdata": {}, + "runtime/race/internal": {}, + "runtime/testdata/testfaketime": {}, + "crypto/internal/boring/bcache": {}, + "embed/internal/embedtest/testdata": {}, + "internal/trace/traceviewer/static": {}, + "go/build/testdata/empty": {}, + "internal/trace/v2/event": {}, + "net/http/internal/ascii": {}, + "runtime/pprof/testdata/mappingtest": {}, + "testing/iotest": {}, + "vendor/golang.org/x/net/http2": {}, + "internal/syscall": {}, + "internal/types/errors": {}, + "vendor/golang.org/x/text/unicode/norm": {}, "internal/reflectlite": {}, - "internal/safefilepath": {}, - "internal/saferio": {}, + "expvar": {}, + "internal/trace/v2": {}, + "vendor/golang.org/x/net/idna": {}, + "crypto/ed25519": {}, + "encoding/ascii85": {}, + "hash/fnv": {}, + "internal/profile": {}, "internal/singleflight": {}, - "internal/syscall": {}, - "internal/syscall/execenv": {}, - "internal/syscall/unix": {}, - "internal/syscall/windows": {}, - "internal/syscall/windows/registry": {}, - "internal/syscall/windows/sysdll": {}, - "internal/sysinfo": {}, - "internal/testenv": {}, - "internal/testlog": {}, - "internal/testpty": {}, - "internal/trace": {}, - "internal/trace/testdata": {}, - "internal/trace/traceviewer": {}, + "sort": {}, + "go/parser/testdata/issue42951/not_a_file.go": {}, + "mime/testdata": {}, + "net/mail": {}, + "runtime/race": {}, + "testing/fstest": {}, + "go/internal": {}, "internal/trace/traceviewer/format": {}, - "internal/trace/traceviewer/static": {}, - "internal/trace/v2": {}, - "internal/trace/v2/event": {}, + "net/internal/cgotest": {}, + "archive": {}, + "compress/zlib": {}, "internal/trace/v2/event/go122": {}, - "internal/trace/v2/internal": {}, - "internal/trace/v2/internal/testgen": {}, + "log/slog/internal/buffer": {}, + "net/url": {}, + "regexp/syntax": {}, + "vendor/golang.org/x/net/dns": {}, + "go/internal/gcimporter": {}, + "context": {}, + "crypto/internal/boring/syso": {}, + "debug/elf/testdata": {}, + "internal/coverage/slicereader": {}, + "vendor/golang.org/x/crypto/internal/poly1305": {}, + "cmp": {}, + "go/parser/testdata/resolution": {}, + "go/printer": {}, + "internal/bytealg": {}, + "internal/dag": {}, + "internal/syscall/windows/sysdll": {}, + "archive/zip/testdata": {}, + "vendor/golang.org/x/net": {}, + "database": {}, + "embed/internal/embedtest/testdata/-not-hidden": {}, + "os/testdata/issue37161": {}, + "plugin": {}, + "regexp/testdata": {}, + "runtime/internal/math": {}, + "os/exec": {}, + "compress/flate": {}, + "crypto/internal/edwards25519/field": {}, + "go/doc/comment": {}, + "go/scanner": {}, + "log/slog/internal/benchmarks": {}, + "math/rand/v2": {}, + "mime/quotedprintable": {}, + "os/signal": {}, + "runtime/metrics": {}, + "vendor/golang.org/x/net/lif": {}, + "container/heap": {}, + "crypto/rand": {}, + "internal/goexperiment": {}, + "log/slog/internal/slogtest": {}, + "crypto/rsa": {}, + "internal/lazytemplate": {}, + "runtime/debug/testdata": {}, + "runtime/testdata/testprogcgo": {}, + "vendor/golang.org/x/crypto/cryptobyte": {}, + "hash/crc64": {}, + "embed": {}, + "fmt": {}, + "go/build/testdata/withvendor/src/a/vendor/c/d": {}, + "go/types/testdata": {}, + "index": {}, + "internal/buildcfg": {}, + "text/tabwriter": {}, + "net/smtp": {}, + "os/testdata/dirfs": {}, + "runtime/coverage/testdata/issue59563": {}, + "vendor/golang.org": {}, + "crypto/internal/nistec/fiat": {}, + "internal/race": {}, + "internal/syscall/windows/registry": {}, + "internal/trace/v2/internal": {}, + "net/http/testdata": {}, + "vendor/golang.org/x/net/http/httpproxy": {}, + "go/build/testdata/withvendor/src": {}, + "go/doc/testdata/examples": {}, + "runtime/testdata/testwinsignal": {}, + "syscall": {}, + "vendor/golang.org/x/net/http": {}, + "container": {}, + "debug/dwarf/testdata": {}, + "go/format": {}, + "crypto/tls/testdata": {}, + "encoding/base64": {}, + "internal/syscall/execenv": {}, + "net/http/pprof": {}, + "runtime/race/testdata": {}, + "text/template/parse": {}, + "go/parser/testdata/goversion": {}, + "internal/itoa": {}, + "runtime": {}, + "internal/types/testdata/spec": {}, + "maps": {}, + "runtime/pprof": {}, + "vendor/golang.org/x/sys/cpu": {}, + "container/ring": {}, + "internal/cpu": {}, + "internal/unsafeheader": {}, + "regexp": {}, + "crypto/internal/bigmod/_asm": {}, + "embed/internal/embedtest/testdata/i/j/k": {}, + "internal/goroot": {}, + "net/netip": {}, + "archive/tar": {}, + "math/cmplx": {}, + "debug/plan9obj": {}, + "go/doc": {}, + "internal/coverage/calloc": {}, + "runtime/testdata/testsuid": {}, + "internal/coverage/slicewriter": {}, + "internal/trace/v2/version": {}, + "vendor/golang.org/x/net/nettest": {}, + "go/build/testdata/alltags": {}, + "internal/goarch": {}, + "os/exec/internal": {}, + "crypto/internal/randutil": {}, + "encoding/gob": {}, + "html/template/testdata": {}, + "math": {}, + "net/internal/socktest": {}, + "bytes": {}, + "slices": {}, + "go/build/testdata/other/file": {}, + "go/internal/gcimporter/testdata/versions": {}, + "image/jpeg": {}, + "log/internal": {}, + "debug": {}, + "internal/safefilepath": {}, + "runtime/internal/wasitest/testdata": {}, + "unsafe": {}, + "vendor/golang.org/x/text/unicode/bidi": {}, + "compress": {}, + "image/png/testdata/pngsuite": {}, + "math/rand": {}, + "go/internal/gccgoimporter/testdata": {}, + "go/internal/srcimporter/testdata/issue20855": {}, + "internal/trace/v2/testdata/fuzz/FuzzReader": {}, + "unicode": {}, + "vendor/golang.org/x/text/secure/bidirule": {}, + "go/doc/testdata": {}, + "image/draw": {}, + "runtime/testdata/testwintls": {}, + "sync": {}, + "sync/atomic": {}, + "syscall/js": {}, + "text/template/testdata": {}, + "net/testdata": {}, + "vendor/golang.org/x": {}, + "vendor/golang.org/x/text/secure": {}, + "text/template": {}, + "go/build/constraint": {}, + "internal/types/testdata": {}, + "path": {}, + "crypto/internal/alias": {}, + "image/testdata": {}, + "internal/syscall/windows": {}, + "internal/trace/testdata": {}, + "net/http/internal/testcert": {}, + "vendor/golang.org/x/net/dns/dnsmessage": {}, + "internal/types": {}, + "go/build/testdata/withvendor/src/a": {}, + "image/color": {}, + "os/testdata": {}, + "vendor/golang.org/x/crypto": {}, + "debug/gosym/testdata": {}, + "debug/macho/testdata": {}, + "go/types/testdata/local": {}, + "internal/godebugs": {}, + "internal/txtar": {}, + "runtime/internal/startlinetest": {}, + "strconv": {}, + "embed/internal": {}, + "internal/coverage/decodemeta": {}, + "internal/coverage/encodemeta": {}, + "mime/multipart/testdata": {}, + "internal/abi": {}, + "internal/coverage/test": {}, + "crypto/cipher": {}, + "crypto/internal/nistec": {}, + "embed/internal/embedtest/testdata/.hidden/more": {}, + "go/parser/testdata/issue42951": {}, + "internal/coverage/cmerge": {}, "internal/trace/v2/internal/testgen/go122": {}, - "internal/trace/v2/raw": {}, - "internal/trace/v2/testdata": {}, + "vendor/golang.org/x/net/route": {}, + "encoding/binary": {}, + "go/build/testdata/withvendor/src/a/vendor": {}, + "internal/poll": {}, + "internal/types/testdata/fixedbugs": {}, + "compress/bzip2/testdata": {}, + "go/printer/testdata": {}, + "vendor/golang.org/x/text": {}, + "reflect": {}, + "crypto/md5": {}, + "database/sql/driver": {}, + "encoding": {}, + "encoding/xml": {}, + "go/doc/testdata/pkgdoc": {}, + "go/internal/gccgoimporter": {}, + "internal/coverage/pods": {}, + "hash/crc32": {}, + "internal/trace/v2/testtrace": {}, + "io": {}, + "runtime/cgo": {}, + "time": {}, + "crypto/internal/boring/sig": {}, + "embed/internal/embedtest/testdata/i/j": {}, + "internal/coverage": {}, + "runtime/testdata/testprogcgo/windows": {}, + "internal/cfg": {}, + "strings": {}, + "go/build/testdata/bads": {}, + "internal/intern": {}, "internal/trace/v2/testdata/cmd": {}, - "internal/trace/v2/testdata/cmd/gotraceraw": {}, - "internal/trace/v2/testdata/cmd/gotracevalidate": {}, - "internal/trace/v2/testdata/fuzz": {}, - "internal/trace/v2/testdata/fuzz/FuzzReader": {}, - "internal/trace/v2/testdata/generators": {}, - "internal/trace/v2/testdata/testprog": {}, "internal/trace/v2/testdata/tests": {}, - "internal/trace/v2/testtrace": {}, - "internal/trace/v2/version": {}, - "internal/txtar": {}, - "internal/types": {}, - "internal/types/errors": {}, - "internal/types/testdata": {}, - "internal/types/testdata/check": {}, "internal/types/testdata/check/decls2": {}, - "internal/types/testdata/check/importdecl0": {}, - "internal/types/testdata/check/importdecl1": {}, - "internal/types/testdata/check/issue25008": {}, - "internal/types/testdata/examples": {}, - "internal/types/testdata/fixedbugs": {}, - "internal/types/testdata/spec": {}, - "internal/unsafeheader": {}, - "internal/xcoff": {}, - "internal/xcoff/testdata": {}, - "internal/zstd": {}, - "internal/zstd/testdata": {}, - "io": {}, - "io/fs": {}, "io/ioutil": {}, - "io/ioutil/testdata": {}, - "iter": {}, - "log": {}, - "log/internal": {}, - "log/slog": {}, + "debug/pe": {}, + "image/png/testdata": {}, + "internal/trace/traceviewer": {}, + "bufio": {}, + "crypto/x509/testdata": {}, + "embed/internal/embedtest/testdata/.hidden": {}, + "debug/dwarf": {}, + "internal/coverage/cformat": {}, + "internal/goversion": {}, "log/slog/internal": {}, - "log/slog/internal/benchmarks": {}, - "log/slog/internal/buffer": {}, - "log/slog/internal/slogtest": {}, - "log/syslog": {}, - "maps": {}, - "math": {}, - "math/big": {}, - "math/bits": {}, - "math/cmplx": {}, - "math/rand": {}, - "math/rand/v2": {}, - "mime": {}, - "mime/multipart": {}, - "mime/multipart/testdata": {}, - "mime/quotedprintable": {}, - "mime/testdata": {}, - "net": {}, + "testdata": {}, + "crypto/des": {}, "net/http": {}, - "net/http/cgi": {}, - "net/http/cookiejar": {}, - "net/http/fcgi": {}, - "net/http/httptest": {}, - "net/http/httptrace": {}, - "net/http/httputil": {}, + "runtime/internal/sys": {}, + "runtime/race/internal/amd64v3": {}, + "embed/internal/embedtest/testdata/_hidden": {}, + "internal/diff/testdata": {}, + "internal/trace": {}, "net/http/internal": {}, - "net/http/internal/ascii": {}, - "net/http/internal/testcert": {}, - "net/http/pprof": {}, - "net/http/pprof/testdata": {}, - "net/http/testdata": {}, - "net/internal": {}, - "net/internal/cgotest": {}, - "net/internal/socktest": {}, - "net/mail": {}, - "net/netip": {}, - "net/rpc": {}, - "net/rpc/jsonrpc": {}, - "net/smtp": {}, - "net/testdata": {}, - "net/textproto": {}, - "net/url": {}, - "os": {}, - "os/exec": {}, - "os/exec/internal": {}, - "os/exec/internal/fdtest": {}, - "os/signal": {}, - "os/testdata": {}, - "os/testdata/dirfs": {}, - "os/testdata/dirfs/dir": {}, - "os/testdata/issue37161": {}, - "os/user": {}, - "path": {}, - "path/filepath": {}, - "plugin": {}, - "reflect": {}, - "reflect/internal": {}, - "reflect/internal/example1": {}, - "reflect/internal/example2": {}, - "regexp": {}, - "regexp/syntax": {}, - "regexp/testdata": {}, - "runtime": {}, - "runtime/asan": {}, - "runtime/cgo": {}, - "runtime/coverage": {}, - "runtime/coverage/testdata": {}, - "runtime/coverage/testdata/issue56006": {}, - "runtime/coverage/testdata/issue59563": {}, - "runtime/debug": {}, - "runtime/debug/testdata": {}, - "runtime/debug/testdata/fuzz": {}, "runtime/debug/testdata/fuzz/FuzzParseBuildInfoRoundTrip": {}, - "runtime/internal": {}, - "runtime/internal/atomic": {}, - "runtime/internal/math": {}, - "runtime/internal/startlinetest": {}, - "runtime/internal/sys": {}, - "runtime/internal/syscall": {}, - "runtime/internal/wasitest": {}, - "runtime/internal/wasitest/testdata": {}, - "runtime/metrics": {}, - "runtime/msan": {}, - "runtime/pprof": {}, - "runtime/pprof/testdata": {}, - "runtime/pprof/testdata/mappingtest": {}, - "runtime/race": {}, - "runtime/race/internal": {}, - "runtime/race/internal/amd64v1": {}, - "runtime/race/internal/amd64v3": {}, - "runtime/race/testdata": {}, - "runtime/testdata": {}, - "runtime/testdata/testexithooks": {}, - "runtime/testdata/testfaketime": {}, - "runtime/testdata/testfds": {}, - "runtime/testdata/testprog": {}, - "runtime/testdata/testprogcgo": {}, - "runtime/testdata/testprogcgo/windows": {}, - "runtime/testdata/testprognet": {}, - "runtime/testdata/testsuid": {}, - "runtime/testdata/testwinlib": {}, - "runtime/testdata/testwinlibsignal": {}, - "runtime/testdata/testwinlibthrow": {}, - "runtime/testdata/testwinsignal": {}, - "runtime/testdata/testwintls": {}, - "runtime/trace": {}, - "slices": {}, - "sort": {}, - "strconv": {}, - "strconv/testdata": {}, - "strings": {}, - "sync": {}, - "sync/atomic": {}, - "syscall": {}, - "syscall/js": {}, - "testdata": {}, - "testing": {}, - "testing/fstest": {}, - "testing/internal": {}, - "testing/internal/testdeps": {}, - "testing/iotest": {}, - "testing/quick": {}, - "testing/slogtest": {}, - "text": {}, - "text/scanner": {}, - "text/tabwriter": {}, - "text/template": {}, - "text/template/parse": {}, - "text/template/testdata": {}, - "time": {}, - "time/testdata": {}, - "time/tzdata": {}, - "unicode": {}, - "unicode/utf16": {}, - "unicode/utf8": {}, - "unsafe": {}, - "vendor": {}, - "vendor/golang.org": {}, - "vendor/golang.org/x": {}, - "vendor/golang.org/x/crypto": {}, - "vendor/golang.org/x/crypto/chacha20": {}, - "vendor/golang.org/x/crypto/chacha20poly1305": {}, - "vendor/golang.org/x/crypto/cryptobyte": {}, - "vendor/golang.org/x/crypto/cryptobyte/asn1": {}, - "vendor/golang.org/x/crypto/hkdf": {}, - "vendor/golang.org/x/crypto/internal": {}, - "vendor/golang.org/x/crypto/internal/alias": {}, - "vendor/golang.org/x/crypto/internal/poly1305": {}, - "vendor/golang.org/x/net": {}, - "vendor/golang.org/x/net/dns": {}, - "vendor/golang.org/x/net/dns/dnsmessage": {}, - "vendor/golang.org/x/net/http": {}, - "vendor/golang.org/x/net/http/httpguts": {}, - "vendor/golang.org/x/net/http/httpproxy": {}, - "vendor/golang.org/x/net/http2": {}, - "vendor/golang.org/x/net/http2/hpack": {}, - "vendor/golang.org/x/net/idna": {}, - "vendor/golang.org/x/net/lif": {}, - "vendor/golang.org/x/net/nettest": {}, - "vendor/golang.org/x/net/route": {}, - "vendor/golang.org/x/sys": {}, - "vendor/golang.org/x/sys/cpu": {}, - "vendor/golang.org/x/text": {}, - "vendor/golang.org/x/text/secure": {}, - "vendor/golang.org/x/text/secure/bidirule": {}, - "vendor/golang.org/x/text/transform": {}, - "vendor/golang.org/x/text/unicode": {}, - "vendor/golang.org/x/text/unicode/bidi": {}, - "vendor/golang.org/x/text/unicode/norm": {}, + "go/internal/gcimporter/testdata": {}, + "net/rpc/jsonrpc": {}, + "crypto/internal": {}, + "debug/pe/testdata": {}, + "runtime/pprof/testdata": {}, + "runtime/testdata/testprognet": {}, + "time/tzdata": {}, + "crypto/aes": {}, + "crypto/x509/internal": {}, + "go/internal/srcimporter/testdata": {}, + "internal/goos": {}, + "runtime/asan": {}, + "time/testdata": {}, + "net/http/cgi": {}, + "reflect/internal/example1": {}, + "crypto/internal/edwards25519": {}, + "go": {}, + "internal/coverage/rtcov": {}, + "internal/zstd/testdata": {}, + "runtime/msan": {}, + "text/scanner": {}, + "go/build/testdata/withvendor/src/a/vendor/c": {}, + "go/doc/comment/testdata": {}, + "internal/chacha8rand": {}, + "archive/zip": {}, + "crypto/internal/bigmod": {}, + "go/build/testdata/cgo_disabled": {}, + "vendor/golang.org/x/crypto/chacha20poly1305": {}, + "vendor/golang.org/x/sys": {}, + "image/internal": {}, + "math/bits": {}, + "net/textproto": {}, + "internal/coverage/decodecounter": {}, + "net/rpc": {}, + "vendor/golang.org/x/text/transform": {}, + "go/internal/typeparams": {}, + "internal/gover": {}, + "runtime/debug": {}, + "crypto/boring": {}, + "hash/maphash": {}, + "index/suffixarray": {}, + "internal": {}, + "log/slog": {}, + "reflect/internal/example2": {}, + "crypto/ecdsa/testdata": {}, + "crypto/internal/boring": {}, + "go/build/testdata/directives": {}, + "crypto/internal/boring/bbig": {}, + "database/sql": {}, + "go/version": {}, + "html": {}, + "debug/buildinfo": {}, + "embed/internal/embedtest/testdata/.hidden/_more": {}, + "testing/slogtest": {}, + "go/build": {}, + "go/build/testdata/other": {}, + "internal/bisect": {}, + "internal/oserror": {}, + "os/testdata/dirfs/dir": {}, + "crypto/rc4": {}, + "encoding/hex": {}, + "hash": {}, + "internal/nettrace": {}, + "path/filepath": {}, + "crypto": {}, + "go/build/testdata/non_source_tags": {}, + "internal/types/testdata/check/issue25008": {}, + "runtime/coverage/testdata": {}, + "runtime/testdata": {}, + "runtime/testdata/testprog": {}, + "debug/plan9obj/testdata": {}, + "internal/xcoff": {}, + "net": {}, + "crypto/dsa": {}, + "go/build/testdata": {}, + "mime/multipart": {}, + "runtime/internal/wasitest": {}, + "unicode/utf16": {}, + "builtin": {}, + "encoding/json": {}, + "go/ast": {}, + "runtime/coverage": {}, + "net/http/cookiejar": {}, + "runtime/testdata/testexithooks": {}, + "strconv/testdata": {}, + "vendor/golang.org/x/crypto/cryptobyte/asn1": {}, + "os/exec/internal/fdtest": {}, + "go/parser/testdata": {}, + "io/fs": {}, + "go/types": {}, + "reflect/internal": {}, + "runtime/internal/syscall": {}, + "runtime/race/internal/amd64v1": {}, + "go/internal/srcimporter": {}, + "log/syslog": {}, + "compress/testdata": {}, + "crypto/x509/internal/macos": {}, + "internal/coverage/uleb128": {}, + "internal/platform": {}, + "image/internal/imageutil": {}, + "testing/internal": {}, + "vendor/golang.org/x/crypto/hkdf": {}, }