bumping golang.org/x/tools 11c692e...cc29c91:
> cc29c91 go.mod: update golang.org/x dependencies
> 397fef9 gopls/internal/protocol: add links to LSP spec
> e2a352c internal/refactor/inline: extensible API
> c16c816 go/analysis/passes/stdversion: test *.go < go.mod version
> 629a7be go/analysis/analysistest: stricter errors and GOWORK setting
> 4db1697 go/packages/packagestest: fold modules_111.go into modules.go
> ccdef3c gopls/internal/golang: fix nil panic in InlayHint
> 74c9cfe go/analysis: add Pass.ReadFile
> 5ef4fc9 gopls/internal/golang/completion: fix the isEmptyInterface predicate
> 77f691b internal/gcimporter: use Alias.Rhs, not unsafe hack
> 0b45163 gopls/internal/cache: use language versions when validating Go version
> 3c49bb7 gopls: normalize logging attributes
> 2fa621c gopls/internal/golang: fix resolution of in-package implementations
> bcec099 internal/refactor/inline: remove eta abstraction inlining assignments
> fcea13b toolstash: errors output should match errors guarded
> b00d49e internal/refactor/inline: don't assume strings.Index calls internal/bytealg
> 1523441 gopls/internal/cache: add more assertions for golang/go# 60890
> 440f3c3 internal/aliases: expose Enabled
> a363d11 go/types/typeutil: replace interface{} with any (cleanup)
> e8c9d81 go/analysis/passes/tests: Use ReportRangef to refactor some code in checkTest
> 97ea816 all: fix some typos in comments
> 8db95b7 gopls/internal/golang: check the comment range before emiting semantic tokens
> daf9460 Revert "gopls/internal/test/integration/misc: reenable staticcheck test"
> 618670d gopls/internal/test/integration/misc: reenable staticcheck test
> 2debfbe internal/testfiles: add a helper package for test files
> c17402c gopls: fix a couple places where temporary files are not removed
> ee61fb0 go/packages: fix issue number typo in TestIssue37629
> 3735585 gopls/internal/settings: deprecate "allowImplicitNetworkAccess"
> f4888c5 gopls/internal/settings: remove support for "allowModfileModifications"
> d857e85 gopls/internal/settings: enable semantic tokens by default
> 3f74dc5 gopls/internal/settings: remove experiments
> e716599 cmd/goimports: support workspace vendoring
> 7c7d7db gopls/internal/golang: allow "query" CodeActions on generated files
> cb134f5 gopls/internal/golang: RenderPkgDoc: elide parameters 4+ in index
> c5094cc internal/imports: a step towards making tests hermetic
> 5e04895 gopls/internal/settings: update stale documentation for "symbolScope"
> 0c3722a doc: enforce gotypesalias=0 behavior until go1.23
> dd0410f go/packages: stop loading packages when context is done
> dcccb2d x/tools: make tests agnostic as to whether gotypesalias="" => 0 or 1
> 46a0401 gopls: eliminate the hooks package
> e388fff gopls/internal/server: don't reset views if configuration did not change
> d034ae1 gopls/internal/cmd: check: print RelatedInformation
> 3c000ca gopls/doc: relnote for hover & definition over doc links
> c859ee9 gopls/internal/test/marker: fix {hover/def}/comment tests
> 9cef8b1 go/callgraph/cha: more precise resolution of unexported methods
> 0cc2ffd gopls/internal/cache: fail loudly on command-line-arguments modules
> c3c5164 gopls/internal/golang: support hover and definition operations over doc links
> da3408b go/analysis/passes/printf: elaborate the documentation
> 198a0a8 imports: prefer math/rand/v2 over math/rand
> 79df971 gopls/internal/server: avoid duplicate diagnoses and loads
> bcd607e gopls/internal/cache: don't log packages when selectively reloading
> 6f92c83 gopls: reduce noisy error messages
> c4c0bf9 gopls/internal/test: skip integration tests on linux-ppc64-power9osu
> b4b8186 internal/apidiff: support materialized aliases
> 3520955 go/types/typeutil: implement correct hashing of aliases
> f6298eb gopls/internal/cache: add debug assertions to refine golang/go# 66732
> f41d27e gopls/internal/cache: avoid panic when the primary diagnostic is broken
> c0ab013 go/packages: doc: type symbols are consistent only within one Load
> 564c0e9 gopls/internal/telemetry/cmd/stacks: improve summary
> de6db98 internal/check: filter out too-new Go versions for type checking
> 5c3c2ff gopls/internal/golang: RenderPkgDoc: fix anchors for promoted methods
> 8a0c6e2 gopls/internal/server: report HTTP panics via telemetry
> c7b6b8d gopls/internal/cache: analysis: repair start/end and refine bug report
> cb3eb43 internal/test/integration: parse flags earlier
> 4794229 gopls/internal/golang: RenderPkgDoc: add <title> element
> 2db5a34 gopls/internal/golang: RenderPkgDoc: navigational <select>
bumping google.golang.org/api 707b9b2...6feeaaf:
> 6feeaaf chore(main): release 0.180.0 (# 2579)
> e92e3ed chore: regen libraries (# 2580)
> 6604a5d feat(all): auto-regenerate discovery clients (# 2578)
> 9fdd500 chore(main): release 0.179.0 (# 2574)
> 090ff6c fix: bump auth to v0.4.1 (# 2577)
> a784ae0 feat(all): auto-regenerate discovery clients (# 2575)
> 887c564 feat(all): auto-regenerate discovery clients (# 2573)
> 64ed0f8 chore(main): release 0.178.0 (# 2562)
> 0c976dc feat(all): auto-regenerate discovery clients (# 2571)
> 8c74bb8 feat(gen): Add internaloption.EnableNewAuthLibrary (# 2519)
> b5ae946 chore(all): update all (# 2569)
> f2da582 feat(all): auto-regenerate discovery clients (# 2570)
> d922e3b feat(all): auto-regenerate discovery clients (# 2568)
> 76b27f1 feat(all): auto-regenerate discovery clients (# 2567)
> 5e44215 docs: update commit style in CONTRIBUTING (# 2566)
> 0843d21 feat(all): auto-regenerate discovery clients (# 2565)
> fe54ffd feat(google-api-go-client): add x-goog-api-version header (# 2563)
> b313e4b feat(all): auto-regenerate discovery clients (# 2564)
> 2d22d11 feat(all): auto-regenerate discovery clients (# 2561)
> a11ef60 chore(main): release 0.177.0 (# 2545)
> e6e5ac5 chore(all): update all (# 2552)
> 3eb92f1 fix: temp patch cloud.google.com/go ambiguity (# 2560)
> 1b6db6c fix: split large compute file up (# 2546)
> fb153c0 feat(all): auto-regenerate discovery clients (# 2556)
> a5d7734 chore(deps): disable otel updates until Go 1.21 (# 2554)
> 2f46e14 feat(all): auto-regenerate discovery clients (# 2553)
> 4418f5f feat(all): auto-regenerate discovery clients (# 2551)
> f9bf96d feat(all): auto-regenerate discovery clients (# 2550)
> 32a5d10 feat(all): auto-regenerate discovery clients (# 2548)
> 2f2505b feat: reduce code size by 29% (# 2544)
> 64f40ff chore(main): release 0.176.1 (# 2542)
> 8d0b2b5 fix(transport/http): pass through base transport (# 2541)
> 81ccc7e chore(main): release 0.176.0 (# 2536)
> 6825bb8 feat(all): auto-regenerate discovery clients (# 2540)
> 30d8c87 feat(all): auto-regenerate discovery clients (# 2538)
> 773fe01 feat(all): auto-regenerate discovery clients (# 2537)
> 5a78abe fix: default defaultEndpointTemplate (# 2535)
> 67a5d6d chore(main): release 0.175.0 (# 2527)
> d64b1d0 fix: various auth transition bugs (# 2533)
> 9622a0d feat(all): auto-regenerate discovery clients (# 2529)
> f662ab7 fix: bump auth deps (# 2528)
> ec3a580 feat(all): auto-regenerate discovery clients (# 2526)
> f8960e3 chore(main): release 0.174.0 (# 2521)
> 0f0a2f0 fix(internal): set scopes for new auth flow (# 2525)
> f49960d feat(all): auto-regenerate discovery clients (# 2524)
> 4054271 feat: add hooks in for new auth library (# 2228)
> 46fc56a chore(main): release 0.173.0 (# 2495)
> 053d45a chore(all): update module github.com/google/go-github/v59 to v61 (# 2512)
> bf1c054 feat(all): auto-regenerate discovery clients (# 2520)
> 85b4e90 feat(all): auto-regenerate discovery clients (# 2516)
> b71b80f feat(all): auto-regenerate discovery clients (# 2515)
> 4826df4 feat(all): auto-regenerate discovery clients (# 2514)
> 3e03de3 feat(all): auto-regenerate discovery clients (# 2513)
> 4e450ec feat(option): add support for env var GOOGLE_CLOUD_UNIVERSE_DOMAIN (# 2509)
> 0ff027b feat(all): auto-regenerate discovery clients (# 2510)
> caf5b3f feat(all): auto-regenerate discovery clients (# 2508)
> 3daccec feat(all): auto-regenerate discovery clients (# 2506)
> baa809b feat(all): auto-regenerate discovery clients (# 2505)
> 7ec3ef8 feat(all): auto-regenerate discovery clients (# 2504)
> c786111 chore(all): update all to 454cdb8 (# 2502)
> 6ee6a57 feat(all): auto-regenerate discovery clients (# 2503)
> cdac273 feat(all): auto-regenerate discovery clients (# 2501)
> 5b9019f feat(all): auto-regenerate discovery clients (# 2500)
> 4ebe65e feat(all): auto-regenerate discovery clients (# 2499)
> a48e9de feat(all): auto-regenerate discovery clients (# 2494)
bumping golang.org/x/term 5b15d26...46c790f:
> 46c790f go.mod: update golang.org/x dependencies
bumping github.com/prometheus/client_golang 77d4003...6e3f4b1:
> 6e3f4b1 Cut 1.19.1 (# 1494)
> cad1bfa Merge pull request # 1454 from prometheus/small-nits
> 0aa8c9f Rephrase incompatibility with common v0.48.0
bumping knative.dev/networking 979f637...25012a4:
> 25012a4 upgrade to latest dependencies (# 979)
> 8167799 upgrade to latest dependencies (# 977)
> a282917 Update community files (# 978)
> d2ba339 upgrade to latest dependencies (# 976)
> 6886f78 Update community files (# 975)
> 9188dac Remove requestDelay flag for tests (# 972)
> 24ed062 Update test dialer to use ip when available (# 970)
> 5f9768c Update community files (# 969)
bumping golang.org/x/oauth2 d0e617c...84cb9f7:
> 84cb9f7 oauth2: fix typo in comment
> 4b7f0bd go.mod: update cloud.google.com/go/compute/metadata dependency
> e11eea8 microsoft: added DeviceAuthURL to AzureADEndpoint
bumping google.golang.org/genproto/googleapis/rpc 94a12d6...8cf5692:
> 8cf5692 chore(all): update all (# 1122)
> 8c6c420 chore(all): update all to 7cd4c1c (# 1111)
> 79826c8 chore(all): auto-regenerate .pb.go files (# 1112)
> 7cd4c1c chore(all): auto-regenerate .pb.go files (# 1110)
> 26222e5 chore(all): update all (# 1109)
> 6f501c4 chore(all): auto-regenerate .pb.go files (# 1107)
> c3f9821 chore(all): update all (# 1108)
> 454cdb8 chore(all): auto-regenerate .pb.go files (# 1106)
> beb30f4 chore(all): auto-regenerate .pb.go files (# 1101)
> 64ea030 chore(all): update all (# 1105)
bumping google.golang.org/protobuf ec47fd1...4a76e11:
> 4a76e11 all: release v1.34.1
> 9d9d8d3 encoding/proto[json|text]: accept lower case names for group-like fields
> 6c3ebca all: update to protobuf 27.0-rc1 and regenerate protos
> 2939520 all: start v1.34.0-devel
> 242df22 all: release v1.34.0
> c2b76ee all: fix deprecated
> e4ad8f9 types/gofeaturespb: move go_feature.proto to be consistent with out languages
> c2a26e7 encoding/{protojson,prototext}: strengthen wording on stability
> d0f77ae proto: ensure MarshalOptions are plumbed to all Size calls
>
|
||
|---|---|---|
| .. | ||
| .gitignore | ||
| README.md | ||
| affinity_linux.go | ||
| aliases.go | ||
| asm_aix_ppc64.s | ||
| asm_bsd_386.s | ||
| asm_bsd_amd64.s | ||
| asm_bsd_arm.s | ||
| asm_bsd_arm64.s | ||
| asm_bsd_ppc64.s | ||
| asm_bsd_riscv64.s | ||
| asm_linux_386.s | ||
| asm_linux_amd64.s | ||
| asm_linux_arm.s | ||
| asm_linux_arm64.s | ||
| asm_linux_loong64.s | ||
| asm_linux_mips64x.s | ||
| asm_linux_mipsx.s | ||
| asm_linux_ppc64x.s | ||
| asm_linux_riscv64.s | ||
| asm_linux_s390x.s | ||
| asm_openbsd_mips64.s | ||
| asm_solaris_amd64.s | ||
| asm_zos_s390x.s | ||
| bluetooth_linux.go | ||
| bpxsvc_zos.go | ||
| bpxsvc_zos.s | ||
| cap_freebsd.go | ||
| constants.go | ||
| dev_aix_ppc.go | ||
| dev_aix_ppc64.go | ||
| dev_darwin.go | ||
| dev_dragonfly.go | ||
| dev_freebsd.go | ||
| dev_linux.go | ||
| dev_netbsd.go | ||
| dev_openbsd.go | ||
| dev_zos.go | ||
| dirent.go | ||
| endian_big.go | ||
| endian_little.go | ||
| env_unix.go | ||
| fcntl.go | ||
| fcntl_darwin.go | ||
| fcntl_linux_32bit.go | ||
| fdset.go | ||
| gccgo.go | ||
| gccgo_c.c | ||
| gccgo_linux_amd64.go | ||
| ifreq_linux.go | ||
| ioctl_linux.go | ||
| ioctl_signed.go | ||
| ioctl_unsigned.go | ||
| ioctl_zos.go | ||
| mkall.sh | ||
| mkerrors.sh | ||
| mmap_nomremap.go | ||
| mremap.go | ||
| pagesize_unix.go | ||
| pledge_openbsd.go | ||
| ptrace_darwin.go | ||
| ptrace_ios.go | ||
| race.go | ||
| race0.go | ||
| readdirent_getdents.go | ||
| readdirent_getdirentries.go | ||
| sockcmsg_dragonfly.go | ||
| sockcmsg_linux.go | ||
| sockcmsg_unix.go | ||
| sockcmsg_unix_other.go | ||
| sockcmsg_zos.go | ||
| symaddr_zos_s390x.s | ||
| syscall.go | ||
| syscall_aix.go | ||
| syscall_aix_ppc.go | ||
| syscall_aix_ppc64.go | ||
| syscall_bsd.go | ||
| syscall_darwin.go | ||
| syscall_darwin_amd64.go | ||
| syscall_darwin_arm64.go | ||
| syscall_darwin_libSystem.go | ||
| syscall_dragonfly.go | ||
| syscall_dragonfly_amd64.go | ||
| syscall_freebsd.go | ||
| syscall_freebsd_386.go | ||
| syscall_freebsd_amd64.go | ||
| syscall_freebsd_arm.go | ||
| syscall_freebsd_arm64.go | ||
| syscall_freebsd_riscv64.go | ||
| syscall_hurd.go | ||
| syscall_hurd_386.go | ||
| syscall_illumos.go | ||
| syscall_linux.go | ||
| syscall_linux_386.go | ||
| syscall_linux_alarm.go | ||
| syscall_linux_amd64.go | ||
| syscall_linux_amd64_gc.go | ||
| syscall_linux_arm.go | ||
| syscall_linux_arm64.go | ||
| syscall_linux_gc.go | ||
| syscall_linux_gc_386.go | ||
| syscall_linux_gc_arm.go | ||
| syscall_linux_gccgo_386.go | ||
| syscall_linux_gccgo_arm.go | ||
| syscall_linux_loong64.go | ||
| syscall_linux_mips64x.go | ||
| syscall_linux_mipsx.go | ||
| syscall_linux_ppc.go | ||
| syscall_linux_ppc64x.go | ||
| syscall_linux_riscv64.go | ||
| syscall_linux_s390x.go | ||
| syscall_linux_sparc64.go | ||
| syscall_netbsd.go | ||
| syscall_netbsd_386.go | ||
| syscall_netbsd_amd64.go | ||
| syscall_netbsd_arm.go | ||
| syscall_netbsd_arm64.go | ||
| syscall_openbsd.go | ||
| syscall_openbsd_386.go | ||
| syscall_openbsd_amd64.go | ||
| syscall_openbsd_arm.go | ||
| syscall_openbsd_arm64.go | ||
| syscall_openbsd_libc.go | ||
| syscall_openbsd_mips64.go | ||
| syscall_openbsd_ppc64.go | ||
| syscall_openbsd_riscv64.go | ||
| syscall_solaris.go | ||
| syscall_solaris_amd64.go | ||
| syscall_unix.go | ||
| syscall_unix_gc.go | ||
| syscall_unix_gc_ppc64x.go | ||
| syscall_zos_s390x.go | ||
| sysvshm_linux.go | ||
| sysvshm_unix.go | ||
| sysvshm_unix_other.go | ||
| timestruct.go | ||
| unveil_openbsd.go | ||
| xattr_bsd.go | ||
| zerrors_aix_ppc.go | ||
| zerrors_aix_ppc64.go | ||
| zerrors_darwin_amd64.go | ||
| zerrors_darwin_arm64.go | ||
| zerrors_dragonfly_amd64.go | ||
| zerrors_freebsd_386.go | ||
| zerrors_freebsd_amd64.go | ||
| zerrors_freebsd_arm.go | ||
| zerrors_freebsd_arm64.go | ||
| zerrors_freebsd_riscv64.go | ||
| zerrors_linux.go | ||
| zerrors_linux_386.go | ||
| zerrors_linux_amd64.go | ||
| zerrors_linux_arm.go | ||
| zerrors_linux_arm64.go | ||
| zerrors_linux_loong64.go | ||
| zerrors_linux_mips.go | ||
| zerrors_linux_mips64.go | ||
| zerrors_linux_mips64le.go | ||
| zerrors_linux_mipsle.go | ||
| zerrors_linux_ppc.go | ||
| zerrors_linux_ppc64.go | ||
| zerrors_linux_ppc64le.go | ||
| zerrors_linux_riscv64.go | ||
| zerrors_linux_s390x.go | ||
| zerrors_linux_sparc64.go | ||
| zerrors_netbsd_386.go | ||
| zerrors_netbsd_amd64.go | ||
| zerrors_netbsd_arm.go | ||
| zerrors_netbsd_arm64.go | ||
| zerrors_openbsd_386.go | ||
| zerrors_openbsd_amd64.go | ||
| zerrors_openbsd_arm.go | ||
| zerrors_openbsd_arm64.go | ||
| zerrors_openbsd_mips64.go | ||
| zerrors_openbsd_ppc64.go | ||
| zerrors_openbsd_riscv64.go | ||
| zerrors_solaris_amd64.go | ||
| zerrors_zos_s390x.go | ||
| zptrace_armnn_linux.go | ||
| zptrace_linux_arm64.go | ||
| zptrace_mipsnn_linux.go | ||
| zptrace_mipsnnle_linux.go | ||
| zptrace_x86_linux.go | ||
| zsymaddr_zos_s390x.s | ||
| zsyscall_aix_ppc.go | ||
| zsyscall_aix_ppc64.go | ||
| zsyscall_aix_ppc64_gc.go | ||
| zsyscall_aix_ppc64_gccgo.go | ||
| zsyscall_darwin_amd64.go | ||
| zsyscall_darwin_amd64.s | ||
| zsyscall_darwin_arm64.go | ||
| zsyscall_darwin_arm64.s | ||
| zsyscall_dragonfly_amd64.go | ||
| zsyscall_freebsd_386.go | ||
| zsyscall_freebsd_amd64.go | ||
| zsyscall_freebsd_arm.go | ||
| zsyscall_freebsd_arm64.go | ||
| zsyscall_freebsd_riscv64.go | ||
| zsyscall_illumos_amd64.go | ||
| zsyscall_linux.go | ||
| zsyscall_linux_386.go | ||
| zsyscall_linux_amd64.go | ||
| zsyscall_linux_arm.go | ||
| zsyscall_linux_arm64.go | ||
| zsyscall_linux_loong64.go | ||
| zsyscall_linux_mips.go | ||
| zsyscall_linux_mips64.go | ||
| zsyscall_linux_mips64le.go | ||
| zsyscall_linux_mipsle.go | ||
| zsyscall_linux_ppc.go | ||
| zsyscall_linux_ppc64.go | ||
| zsyscall_linux_ppc64le.go | ||
| zsyscall_linux_riscv64.go | ||
| zsyscall_linux_s390x.go | ||
| zsyscall_linux_sparc64.go | ||
| zsyscall_netbsd_386.go | ||
| zsyscall_netbsd_amd64.go | ||
| zsyscall_netbsd_arm.go | ||
| zsyscall_netbsd_arm64.go | ||
| zsyscall_openbsd_386.go | ||
| zsyscall_openbsd_386.s | ||
| zsyscall_openbsd_amd64.go | ||
| zsyscall_openbsd_amd64.s | ||
| zsyscall_openbsd_arm.go | ||
| zsyscall_openbsd_arm.s | ||
| zsyscall_openbsd_arm64.go | ||
| zsyscall_openbsd_arm64.s | ||
| zsyscall_openbsd_mips64.go | ||
| zsyscall_openbsd_mips64.s | ||
| zsyscall_openbsd_ppc64.go | ||
| zsyscall_openbsd_ppc64.s | ||
| zsyscall_openbsd_riscv64.go | ||
| zsyscall_openbsd_riscv64.s | ||
| zsyscall_solaris_amd64.go | ||
| zsyscall_zos_s390x.go | ||
| zsysctl_openbsd_386.go | ||
| zsysctl_openbsd_amd64.go | ||
| zsysctl_openbsd_arm.go | ||
| zsysctl_openbsd_arm64.go | ||
| zsysctl_openbsd_mips64.go | ||
| zsysctl_openbsd_ppc64.go | ||
| zsysctl_openbsd_riscv64.go | ||
| zsysnum_darwin_amd64.go | ||
| zsysnum_darwin_arm64.go | ||
| zsysnum_dragonfly_amd64.go | ||
| zsysnum_freebsd_386.go | ||
| zsysnum_freebsd_amd64.go | ||
| zsysnum_freebsd_arm.go | ||
| zsysnum_freebsd_arm64.go | ||
| zsysnum_freebsd_riscv64.go | ||
| zsysnum_linux_386.go | ||
| zsysnum_linux_amd64.go | ||
| zsysnum_linux_arm.go | ||
| zsysnum_linux_arm64.go | ||
| zsysnum_linux_loong64.go | ||
| zsysnum_linux_mips.go | ||
| zsysnum_linux_mips64.go | ||
| zsysnum_linux_mips64le.go | ||
| zsysnum_linux_mipsle.go | ||
| zsysnum_linux_ppc.go | ||
| zsysnum_linux_ppc64.go | ||
| zsysnum_linux_ppc64le.go | ||
| zsysnum_linux_riscv64.go | ||
| zsysnum_linux_s390x.go | ||
| zsysnum_linux_sparc64.go | ||
| zsysnum_netbsd_386.go | ||
| zsysnum_netbsd_amd64.go | ||
| zsysnum_netbsd_arm.go | ||
| zsysnum_netbsd_arm64.go | ||
| zsysnum_openbsd_386.go | ||
| zsysnum_openbsd_amd64.go | ||
| zsysnum_openbsd_arm.go | ||
| zsysnum_openbsd_arm64.go | ||
| zsysnum_openbsd_mips64.go | ||
| zsysnum_openbsd_ppc64.go | ||
| zsysnum_openbsd_riscv64.go | ||
| zsysnum_zos_s390x.go | ||
| ztypes_aix_ppc.go | ||
| ztypes_aix_ppc64.go | ||
| ztypes_darwin_amd64.go | ||
| ztypes_darwin_arm64.go | ||
| ztypes_dragonfly_amd64.go | ||
| ztypes_freebsd_386.go | ||
| ztypes_freebsd_amd64.go | ||
| ztypes_freebsd_arm.go | ||
| ztypes_freebsd_arm64.go | ||
| ztypes_freebsd_riscv64.go | ||
| ztypes_linux.go | ||
| ztypes_linux_386.go | ||
| ztypes_linux_amd64.go | ||
| ztypes_linux_arm.go | ||
| ztypes_linux_arm64.go | ||
| ztypes_linux_loong64.go | ||
| ztypes_linux_mips.go | ||
| ztypes_linux_mips64.go | ||
| ztypes_linux_mips64le.go | ||
| ztypes_linux_mipsle.go | ||
| ztypes_linux_ppc.go | ||
| ztypes_linux_ppc64.go | ||
| ztypes_linux_ppc64le.go | ||
| ztypes_linux_riscv64.go | ||
| ztypes_linux_s390x.go | ||
| ztypes_linux_sparc64.go | ||
| ztypes_netbsd_386.go | ||
| ztypes_netbsd_amd64.go | ||
| ztypes_netbsd_arm.go | ||
| ztypes_netbsd_arm64.go | ||
| ztypes_openbsd_386.go | ||
| ztypes_openbsd_amd64.go | ||
| ztypes_openbsd_arm.go | ||
| ztypes_openbsd_arm64.go | ||
| ztypes_openbsd_mips64.go | ||
| ztypes_openbsd_ppc64.go | ||
| ztypes_openbsd_riscv64.go | ||
| ztypes_solaris_amd64.go | ||
| ztypes_zos_s390x.go | ||
README.md
Building sys/unix
The sys/unix package provides access to the raw system call interface of the underlying operating system. See: https://godoc.org/golang.org/x/sys/unix
Porting Go to a new architecture/OS combination or adding syscalls, types, or constants to an existing architecture/OS pair requires some manual effort; however, there are tools that automate much of the process.
Build Systems
There are currently two ways we generate the necessary files. We are currently migrating the build system to use containers so the builds are reproducible. This is being done on an OS-by-OS basis. Please update this documentation as components of the build system change.
Old Build System (currently for GOOS != "linux")
The old build system generates the Go files based on the C header files present on your system. This means that files for a given GOOS/GOARCH pair must be generated on a system with that OS and architecture. This also means that the generated code can differ from system to system, based on differences in the header files.
To avoid this, if you are using the old build system, only generate the Go files on an installation with unmodified header files. It is also important to keep track of which version of the OS the files were generated from (ex. Darwin 14 vs Darwin 15). This makes it easier to track the progress of changes and have each OS upgrade correspond to a single change.
To build the files for your current OS and architecture, make sure GOOS and
GOARCH are set correctly and run mkall.sh. This will generate the files for
your specific system. Running mkall.sh -n shows the commands that will be run.
Requirements: bash, go
New Build System (currently for GOOS == "linux")
The new build system uses a Docker container to generate the go files directly from source checkouts of the kernel and various system libraries. This means that on any platform that supports Docker, all the files using the new build system can be generated at once, and generated files will not change based on what the person running the scripts has installed on their computer.
The OS specific files for the new build system are located in the ${GOOS}
directory, and the build is coordinated by the ${GOOS}/mkall.go program. When
the kernel or system library updates, modify the Dockerfile at
${GOOS}/Dockerfile to checkout the new release of the source.
To build all the files under the new build system, you must be on an amd64/Linux
system and have your GOOS and GOARCH set accordingly. Running mkall.sh will
then generate all of the files for all of the GOOS/GOARCH pairs in the new build
system. Running mkall.sh -n shows the commands that will be run.
Requirements: bash, go, docker
Component files
This section describes the various files used in the code generation process. It also contains instructions on how to modify these files to add a new architecture/OS or to add additional syscalls, types, or constants. Note that if you are using the new build system, the scripts/programs cannot be called normally. They must be called from within the docker container.
asm files
The hand-written assembly file at asm_${GOOS}_${GOARCH}.s implements system
call dispatch. There are three entry points:
func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)
func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)
The first and second are the standard ones; they differ only in how many arguments can be passed to the kernel. The third is for low-level use by the ForkExec wrapper. Unlike the first two, it does not call into the scheduler to let it know that a system call is running.
When porting Go to a new architecture/OS, this file must be implemented for each GOOS/GOARCH pair.
mksysnum
Mksysnum is a Go program located at ${GOOS}/mksysnum.go (or mksysnum_${GOOS}.go
for the old system). This program takes in a list of header files containing the
syscall number declarations and parses them to produce the corresponding list of
Go numeric constants. See zsysnum_${GOOS}_${GOARCH}.go for the generated
constants.
Adding new syscall numbers is mostly done by running the build on a sufficiently new installation of the target OS (or updating the source checkouts for the new build system). However, depending on the OS, you may need to update the parsing in mksysnum.
mksyscall.go
The syscall.go, syscall_${GOOS}.go, syscall_${GOOS}_${GOARCH}.go are
hand-written Go files which implement system calls (for unix, the specific OS,
or the specific OS/Architecture pair respectively) that need special handling
and list //sys comments giving prototypes for ones that can be generated.
The mksyscall.go program takes the //sys and //sysnb comments and converts
them into syscalls. This requires the name of the prototype in the comment to
match a syscall number in the zsysnum_${GOOS}_${GOARCH}.go file. The function
prototype can be exported (capitalized) or not.
Adding a new syscall often just requires adding a new //sys function prototype
with the desired arguments and a capitalized name so it is exported. However, if
you want the interface to the syscall to be different, often one will make an
unexported //sys prototype, and then write a custom wrapper in
syscall_${GOOS}.go.
types files
For each OS, there is a hand-written Go file at ${GOOS}/types.go (or
types_${GOOS}.go on the old system). This file includes standard C headers and
creates Go type aliases to the corresponding C types. The file is then fed
through godef to get the Go compatible definitions. Finally, the generated code
is fed though mkpost.go to format the code correctly and remove any hidden or
private identifiers. This cleaned-up code is written to
ztypes_${GOOS}_${GOARCH}.go.
The hardest part about preparing this file is figuring out which headers to
include and which symbols need to be #defined to get the actual data
structures that pass through to the kernel system calls. Some C libraries
preset alternate versions for binary compatibility and translate them on the
way in and out of system calls, but there is almost always a #define that can
get the real ones.
See types_darwin.go and linux/types.go for examples.
To add a new type, add in the necessary include statement at the top of the
file (if it is not already there) and add in a type alias line. Note that if
your type is significantly different on different architectures, you may need
some #if/#elif macros in your include statements.
mkerrors.sh
This script is used to generate the system's various constants. This doesn't
just include the error numbers and error strings, but also the signal numbers
and a wide variety of miscellaneous constants. The constants come from the list
of include files in the includes_${uname} variable. A regex then picks out
the desired #define statements, and generates the corresponding Go constants.
The error numbers and strings are generated from #include <errno.h>, and the
signal numbers and strings are generated from #include <signal.h>. All of
these constants are written to zerrors_${GOOS}_${GOARCH}.go via a C program,
_errors.c, which prints out all the constants.
To add a constant, add the header that includes it to the appropriate variable. Then, edit the regex (if necessary) to match the desired constant. Avoid making the regex too broad to avoid matching unintended constants.
internal/mkmerge
This program is used to extract duplicate const, func, and type declarations from the generated architecture-specific files listed below, and merge these into a common file for each OS.
The merge is performed in the following steps:
- Construct the set of common code that is idential in all architecture-specific files.
- Write this common code to the merged file.
- Remove the common code from all architecture-specific files.
Generated files
zerrors_${GOOS}_${GOARCH}.go
A file containing all of the system's generated error numbers, error strings,
signal numbers, and constants. Generated by mkerrors.sh (see above).
zsyscall_${GOOS}_${GOARCH}.go
A file containing all the generated syscalls for a specific GOOS and GOARCH.
Generated by mksyscall.go (see above).
zsysnum_${GOOS}_${GOARCH}.go
A list of numeric constants for all the syscall number of the specific GOOS and GOARCH. Generated by mksysnum (see above).
ztypes_${GOOS}_${GOARCH}.go
A file containing Go types for passing into (or returning from) syscalls. Generated by godefs and the types file (see above).