var depsRules = `
# No dependencies allowed for any of these packages.
NONE
- < constraints, container/list, container/ring,
+ < cmp, container/list, container/ring,
internal/cfg, internal/coverage, internal/coverage/rtcov,
internal/coverage/uleb128, internal/coverage/calloc,
internal/cpu, internal/goarch, internal/godebugs,
internal/goexperiment, internal/goos,
internal/goversion, internal/nettrace, internal/platform,
log/internal,
- maps, slices, unicode/utf8, unicode/utf16, unicode,
+ unicode/utf8, unicode/utf16, unicode,
unsafe;
# These packages depend only on internal/goarch and unsafe.
internal/goarch, unsafe
< internal/abi;
+ unsafe < maps;
+
# RUNTIME is the core runtime group of packages, all of them very light-weight.
internal/abi, internal/cpu, internal/goarch,
internal/coverage/rtcov, internal/godebugs, internal/goexperiment,
< sync/atomic
< internal/race
< sync
+ < internal/bisect
< internal/godebug
< internal/reflectlite
< errors
< internal/oserror, math/bits
< RUNTIME;
- RUNTIME
- < sort
+ # slices depends on unsafe for overlapping check, cmp for comparison
+ # semantics, and math/bits for # calculating bitlength of numbers.
+ unsafe, cmp, math/bits
+ < slices;
+
+ RUNTIME, slices
+ < sort;
+
+ sort
< container/heap;
RUNTIME
< math/cmplx;
MATH
- < math/rand;
+ < math/rand, math/rand/v2;
MATH
< runtime/metrics;
unicode, fmt !< net, os, os/signal;
- os/signal, STR
+ os/signal, internal/safefilepath, STR
< path/filepath
< io/ioutil;
# encodings
# core ones do not use fmt.
- io, strconv
+ io, strconv, slices
< encoding;
encoding, reflect
< text/template
< internal/lazytemplate;
- encoding/json, html, text/template
- < html/template;
-
# regexp
FMT
< regexp/syntax
< regexp
< internal/lazyregexp;
+ encoding/json, html, text/template, regexp
+ < html/template;
+
# suffix array
encoding/binary, regexp
< index/suffixarray;
# go parser and friends.
FMT
+ < internal/gover
+ < go/version
< go/token
< go/scanner
< go/ast
math/big, go/token
< go/constant;
- container/heap, go/constant, go/parser, internal/types/errors
+ FMT, internal/goexperiment
+ < internal/buildcfg;
+
+ container/heap, go/constant, go/parser, internal/buildcfg, internal/goversion, internal/types/errors
< go/types;
# The vast majority of standard library packages should not be resorting to regexp.
go/doc/comment, go/parser, internal/lazyregexp, text/template
< go/doc;
- FMT, internal/goexperiment
- < internal/buildcfg;
-
- go/build/constraint, go/doc, go/parser, internal/buildcfg, internal/goroot, internal/goversion
+ go/build/constraint, go/doc, go/parser, internal/buildcfg, internal/goroot, internal/goversion, internal/platform
< go/build;
# databases
< net/rpc/jsonrpc;
# System Information
- internal/cpu, sync
+ bufio, bytes, internal/cpu, io, os, strings, sync
< internal/sysinfo;
# Test-only
FMT, DEBUG, flag, runtime/trace, internal/sysinfo, math/rand
< testing;
+ log/slog, testing
+ < testing/slogtest;
+
FMT, crypto/sha256, encoding/json, go/ast, go/parser, go/token,
internal/godebug, math/rand, encoding/hex, crypto/sha256
< internal/fuzz;
syscall
< os/exec/internal/fdtest;
+ FMT
+ < internal/diff, internal/txtar;
+
FMT, container/heap, math/rand
< internal/trace;
+ # v2 execution trace parser.
FMT
- < internal/diff, internal/txtar;
+ < internal/trace/v2/event;
+
+ internal/trace/v2/event
+ < internal/trace/v2/event/go122;
+ FMT, io, internal/trace/v2/event/go122
+ < internal/trace/v2/version;
+
+ FMT, encoding/binary, internal/trace/v2/version
+ < internal/trace/v2/raw;
+
+ FMT, encoding/binary, internal/trace/v2/version
+ < internal/trace/v2;
+
+ regexp, internal/trace/v2, internal/trace/v2/raw, internal/txtar
+ < internal/trace/v2/testtrace;
+
+ regexp, internal/txtar, internal/trace/v2, internal/trace/v2/raw
+ < internal/trace/v2/internal/testgen/go122;
+
+ # Coverage.
FMT, crypto/md5, encoding/binary, regexp, sort, text/tabwriter, unsafe,
internal/coverage, internal/coverage/uleb128
< internal/coverage/cmerge,
internal/coverage/cmerge
< internal/coverage/cformat;
+ internal/coverage, crypto/sha256, FMT
+ < cmd/internal/cov/covcmd;
+
+ encoding/json,
runtime/debug,
internal/coverage/calloc,
internal/coverage/cformat,