]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/go/build/deps_test.go
runtime: add execution tracer v2 behind GOEXPERIMENT=exectracer2
[gostls13.git] / src / go / build / deps_test.go
index 8779b8b8c126caeeca2dce1ba4ed7cb8dca9cade..9291c95ac17f71d5c46c196f68ea5b6c5bd62157 100644 (file)
@@ -39,22 +39,25 @@ import (
 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/cpu, internal/goarch, internal/godebugs,
          internal/goexperiment, internal/goos,
          internal/goversion, internal/nettrace, internal/platform,
-         maps, slices, unicode/utf8, unicode/utf16, unicode,
+         log/internal,
+         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/goexperiment,
+       internal/coverage/rtcov, internal/godebugs, internal/goexperiment,
        internal/goos, unsafe
        < internal/bytealg
        < internal/itoa
@@ -67,14 +70,22 @@ var depsRules = `
        < 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
@@ -120,7 +131,7 @@ var depsRules = `
        < math/cmplx;
 
        MATH
-       < math/rand;
+       < math/rand, math/rand/v2;
 
        MATH
        < runtime/metrics;
@@ -153,7 +164,7 @@ var depsRules = `
 
        unicode, fmt !< net, os, os/signal;
 
-       os/signal, STR
+       os/signal, internal/safefilepath, STR
        < path/filepath
        < io/ioutil;
 
@@ -199,7 +210,7 @@ var depsRules = `
 
        # encodings
        # core ones do not use fmt.
-       io, strconv
+       io, strconv, slices
        < encoding;
 
        encoding, reflect
@@ -225,7 +236,7 @@ var depsRules = `
 
        # compression
        FMT, encoding/binary, hash/adler32, hash/crc32
-       < compress/bzip2, compress/flate, compress/lzw
+       < compress/bzip2, compress/flate, compress/lzw, internal/zstd
        < archive/zip, compress/gzip, compress/zlib;
 
        # templates
@@ -236,21 +247,21 @@ var depsRules = `
        < 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;
 
        # executable parsing
-       FMT, encoding/binary, compress/zlib, internal/saferio
+       FMT, encoding/binary, compress/zlib, internal/saferio, internal/zstd
        < runtime/debug
        < debug/dwarf
        < debug/elf, debug/gosym, debug/macho, debug/pe, debug/plan9obj, internal/xcoff
@@ -259,32 +270,41 @@ var depsRules = `
 
        # go parser and friends.
        FMT
+       < internal/gover
+       < go/version
        < go/token
        < go/scanner
        < go/ast
-       < go/internal/typeparams
-       < go/parser;
+       < go/internal/typeparams;
 
        FMT
        < go/build/constraint, go/doc/comment;
 
-       go/build/constraint, go/doc/comment, go/parser, text/tabwriter
+       go/internal/typeparams, go/build/constraint
+       < go/parser;
+
+       go/doc/comment, go/parser, text/tabwriter
        < go/printer
        < go/format;
 
-       go/doc/comment, go/parser, internal/lazyregexp, text/template
-       < go/doc;
-
        math/big, go/token
        < go/constant;
 
-       container/heap, go/constant, go/parser, internal/types/errors, internal/lazyregexp
-       < go/types;
-
        FMT, internal/goexperiment
        < internal/buildcfg;
 
-       go/build/constraint, go/doc, go/parser, internal/buildcfg, internal/goroot, internal/goversion
+       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/types is a good chokepoint. It shouldn't use regexp, nor should anything
+       # that is low-enough level to be used by go/types.
+       regexp !< go/types;
+
+       go/doc/comment, go/parser, internal/lazyregexp, text/template
+       < go/doc;
+
+       go/build/constraint, go/doc, go/parser, internal/buildcfg, internal/goroot, internal/goversion, internal/platform
        < go/build;
 
        # databases
@@ -369,7 +389,7 @@ var depsRules = `
        < NET;
 
        # logging - most packages should not import; http and up is allowed
-       FMT
+       FMT, log/internal
        < log;
 
        log, log/slog !< crypto/tls, database/sql, go/importer, testing;
@@ -382,7 +402,7 @@ var depsRules = `
 
        FMT,
        encoding, encoding/json,
-       log,
+       log, log/internal,
        log/slog/internal, log/slog/internal/buffer,
        slices
        < log/slog
@@ -546,7 +566,7 @@ var depsRules = `
        < net/rpc/jsonrpc;
 
        # System Information
-       internal/cpu, sync
+       bufio, bytes, internal/cpu, io, os, strings, sync
        < internal/sysinfo;
 
        # Test-only
@@ -560,6 +580,9 @@ var depsRules = `
        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;
@@ -582,12 +605,35 @@ var depsRules = `
        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,
@@ -603,6 +649,10 @@ var depsRules = `
        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,