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": {},
}