Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/compile: short tests are not short enough #26469

Closed
rsc opened this issue Jul 19, 2018 · 17 comments

Comments

Projects
None yet
9 participants
@rsc
Copy link
Contributor

commented Jul 19, 2018

Running all.bash (which does go test -short std cmd), my target is usually that individual tests should run in under 1 second.

These tests take quite a bit longer:

ok  	cmd/compile	17.195s
ok  	cmd/compile/internal/gc	24.281s

Can these be dialed back, either actually shortened or just have parts skipped when testing.Short() is true?

/cc @aclements @griesemer @randall77

@rsc rsc added this to the Go1.12 milestone Jul 19, 2018

@randall77

This comment has been minimized.

Copy link
Contributor

commented Jul 19, 2018

cmd/compile has only one test:

--- PASS: TestFormats (3.77s)

we could maybe run this in non-short mode only. @griesemer

Slow compiler tests (>.1 sec):

--- PASS: TestGenFlowGraph (4.02s)
--- PASS: TestArithmeticConst (0.42s)
--- PASS: TestArithmetic (0.41s)
--- PASS: TestTypeAssertion (0.40s)
--- PASS: TestCopy (0.40s)
--- PASS: TestCompound (0.40s)
--- PASS: TestArithmeticBoundary (0.40s)
--- PASS: TestPhi (0.39s)
--- PASS: TestLoadStore (0.39s)
--- PASS: TestComparisonsConst (0.38s)
--- PASS: TestMap (0.36s)
--- PASS: TestAppend (0.35s)
--- PASS: TestZero (0.34s)
--- PASS: TestFPSoftFloat (0.34s)
--- PASS: TestUnsafe (0.33s)
--- PASS: TestFP (0.33s)
--- PASS: TestChan (0.33s)
--- PASS: TestAddressed (0.33s)
--- PASS: TestDuplicateLoad (0.32s)
--- PASS: TestBuiltin (0.32s)
--- PASS: TestNamedReturn (0.31s)
--- PASS: TestClosure (0.31s)
--- PASS: TestSqrt (0.30s)
--- PASS: TestSlice (0.29s)
--- PASS: TestScanfRemoval (0.28s)
--- PASS: TestDashS (0.26s)
--- PASS: TestString (0.25s)
--- PASS: TestCtl (0.25s)
--- PASS: TestShortCircuit (0.22s)
--- PASS: TestBreakContinue (0.21s)
--- PASS: TestArray (0.19s)
--- PASS: TestRegalloc (0.17s)
--- PASS: TestScopeRanges (0.16s)
--- PASS: TestEmptyDwarfRanges (0.14s)

The first one we should fix @dr2chase .
All the ones around 0.30 sec just invoke the compiler and run the result. Some of the files are largeish, but most aren't (map.go for TestMap is 45 lines, for example). Maybe there's some way we could batch all these tests into a single compile to amortize the cost of invoking the compiler (&linker?).

@dr2chase

This comment has been minimized.

Copy link
Contributor

commented Jul 19, 2018

TestGenFlowGraph generates 766 functions, compiles that, and runs it. For each function the runner first interprets it up to 4096 steps (it depends on the function, most are 512) and if that terminates, calls the function and compares the results.

One way to speed it up would be to quit testing it for GO_SSA_PHI_LOC_CUTOFF=0, because it turns out that we ignore that parameter now.

	runGenTest(t, "flowgraph_generator1.go", "ssa_fg_tmp1")
	if runtime.GOOS != "windows" {
		runGenTest(t, "flowgraph_generator1.go", "ssa_fg_tmp2", "GO_SSA_PHI_LOC_CUTOFF=0")
	}

That cuts the test time in half with no loss of information....

@gopherbot

This comment has been minimized.

Copy link

commented Jul 19, 2018

Change https://golang.org/cl/125075 mentions this issue: cmd/compile: don't run gc/ssa_test/TestGenFlowGraph in short mode

gopherbot pushed a commit that referenced this issue Jul 19, 2018

cmd/compile: don't run gc/ssa_test/TestGenFlowGraph in short mode
The test runs far too long for -short mode (4 seconds).

Also removed useless test of now-disconnected knob
(GO_SSA_PHI_LOC_CUTOFF), which cuts 4 seconds to 2 seconds (which
is still too long), and finished removing the disconnected knob.

Updates #26469.

Change-Id: I6c594227c4a5aaffee46832049bdbbf570d86e60
Reviewed-on: https://go-review.googlesource.com/125075
Run-TryBot: David Chase <drchase@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
@griesemer

This comment has been minimized.

Copy link
Contributor

commented Jul 19, 2018

The TestFormats test could be run in non-short mode only as long as we run it from time to time. It does verify that the various format strings used in compiler errors use the correct format strings, etc.

@randall77

This comment has been minimized.

Copy link
Contributor

commented Jul 19, 2018

@griesemer: we have a longtest builder which will run this test on every commit.

@gopherbot

This comment has been minimized.

Copy link

commented Jul 19, 2018

Change https://golang.org/cl/125037 mentions this issue: cmd/compile: run fmt test only in long mode

gopherbot pushed a commit that referenced this issue Jul 19, 2018

cmd/compile: run fmt test only in long mode
Update #26469

Change-Id: Id8b8d1c0db48374d5d3dc663a77187a73f60c9a5
Reviewed-on: https://go-review.googlesource.com/125037
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
@ysmolsky

This comment has been minimized.

Copy link
Member

commented Jul 19, 2018

Should we put a general recommendation about wether test falls under short category somewhere. Is threshold on 1 second or 0.1 seconds?

@alexbrainman

This comment has been minimized.

Copy link
Member

commented Jul 20, 2018

: we have a longtest builder which will run this test on every commit.

@randall77 are you sure? Do you have windows longtest builder? Most changes to Go repo and tools are developed on non-Windows computers. So Go Team developers do not see Windows problems that their changes introduce.

Alex

@randall77

This comment has been minimized.

Copy link
Contributor

commented Jul 21, 2018

Yes, we run the longtest builder on every commit. The longtest builder is linux/amd64, there's no windows one (or arm, or ...).
The TestFormats test isn't architecture-dependent (except that it doesn't (or may not? not sure) test files which are excluded on linux/amd64).

@alexbrainman

This comment has been minimized.

Copy link
Member

commented Jul 21, 2018

Yes, we run the longtest builder on every commit. The longtest builder is linux/amd64, there's no windows one (or arm, or ...).

I doubt anyone checks long tests on windows. I rarely do it myself, because I hardly have time for short tests. Just as an exercise, I run long test for cmd/go for current tip:

c:\>go test cmd/go
--- FAIL: TestGcflagsPatterns (0.15s)
    go_test.go:5649: running testgo [build -n -v -gcflags=
         -e fmt]
    go_test.go:5649: standard error:
    go_test.go:5649:
        #
        # errors
        #

        errors
        mkdir -p $WORK\b002\
        cat >$WORK\b002\importcfg << 'EOF' # internal
        # import config
        EOF
        cd c:\users\alex\dev\go\src\errors
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b002\\_pkg_.a" -trimpath "$WORK\\b002" -p errors -std -complete -buildid hsG-GkoT20-NWTQZwJDz/hsG-GkoT20-NWTQZwJDz -D "" -importcfg "$WORK\\b002\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\errors\\errors.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b002\\_pkg_.a" # internal

        #
        # internal/race
        #

        internal/race
        mkdir -p $WORK\b005\
        cat >$WORK\b005\importcfg << 'EOF' # internal
        # import config
        EOF
        cd c:\users\alex\dev\go\src\internal\race
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b005\\_pkg_.a" -trimpath "$WORK\\b005" -p internal/race -std -complete -buildid OxalO0YXZX2h50DA33kI/OxalO0YXZX2h50DA33kI -D "" -importcfg "$WORK\\b005\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\internal\\race\\doc.go" "c:\\users\\alex\\dev\\go\\src\\internal\\race\\norace.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b005\\_pkg_.a" # internal

        #
        # internal/cpu
        #

        internal/cpu
        mkdir -p $WORK\b009\
        cat >$WORK\b009\importcfg << 'EOF' # internal
        # import config
        EOF
        cd c:\users\alex\dev\go\src\internal\cpu
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b009\\_pkg_.a" -trimpath "$WORK\\b009" -p internal/cpu -std -+ -buildid PgCf2xN1cKSz2K2KoQei/PgCf2xN1cKSz2K2KoQei -D "" -importcfg "$WORK\\b009\\importcfg" -pack -asmhdr "$WORK\\b009\\go_asm.h" -c=4 "c:\\users\\alex\\dev\\go\\src\\internal\\cpu\\cpu.go" "c:\\users\\alex\\dev\\go\\src\\internal\\cpu\\cpu_amd64.go" "c:\\users\\alex\\dev\\go\\src\\internal\\cpu\\cpu_x86.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b009" -I "$WORK\\b009\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b009\\cpu_x86.o" "c:\\users\\alex\\dev\\go\\src\\internal\\cpu\\cpu_x86.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\pack.exe" r "$WORK\\b009\\_pkg_.a" "$WORK\\b009\\cpu_x86.o" # internal
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b009\\_pkg_.a" # internal

        #
        # internal/bytealg
        #

        internal/bytealg
        mkdir -p $WORK\b008\
        cat >$WORK\b008\importcfg << 'EOF' # internal
        # import config
        packagefile internal/cpu=$WORK\b009\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\internal\bytealg
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b008\\_pkg_.a" -trimpath "$WORK\\b008" -p internal/bytealg -std -+ -buildid mr02xEeI7kpkgTao1DkF/mr02xEeI7kpkgTao1DkF -D "" -importcfg "$WORK\\b008\\importcfg" -pack -asmhdr "$WORK\\b008\\go_asm.h" -c=4 "c:\\users\\alex\\dev\\go\\src\\internal\\bytealg\\bytealg.go" "c:\\users\\alex\\dev\\go\\src\\internal\\bytealg\\compare_native.go" "c:\\users\\alex\\dev\\go\\src\\internal\\bytealg\\count_native.go" "c:\\users\\alex\\dev\\go\\src\\internal\\bytealg\\equal_native.go" "c:\\users\\alex\\dev\\go\\src\\internal\\bytealg\\index_amd64.go" "c:\\users\\alex\\dev\\go\\src\\internal\\bytealg\\index_native.go" "c:\\users\\alex\\dev\\go\\src\\internal\\bytealg\\indexbyte_native.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b008" -I "$WORK\\b008\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b008\\compare_amd64.o" "c:\\users\\alex\\dev\\go\\src\\internal\\bytealg\\compare_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b008" -I "$WORK\\b008\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b008\\count_amd64.o" "c:\\users\\alex\\dev\\go\\src\\internal\\bytealg\\count_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b008" -I "$WORK\\b008\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b008\\equal_amd64.o" "c:\\users\\alex\\dev\\go\\src\\internal\\bytealg\\equal_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b008" -I "$WORK\\b008\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b008\\index_amd64.o" "c:\\users\\alex\\dev\\go\\src\\internal\\bytealg\\index_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b008" -I "$WORK\\b008\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b008\\indexbyte_amd64.o" "c:\\users\\alex\\dev\\go\\src\\internal\\bytealg\\indexbyte_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\pack.exe" r "$WORK\\b008\\_pkg_.a" "$WORK\\b008\\compare_amd64.o" "$WORK\\b008\\count_amd64.o" "$WORK\\b008\\equal_amd64.o" "$WORK\\b008\\index_amd64.o" "$WORK\\b008\\indexbyte_amd64.o" # internal
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b008\\_pkg_.a" # internal

        #
        # runtime/internal/atomic
        #

        runtime/internal/atomic
        mkdir -p $WORK\b010\
        cat >$WORK\b010\importcfg << 'EOF' # internal
        # import config
        EOF
        cd c:\users\alex\dev\go\src\runtime\internal\atomic
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b010\\_pkg_.a" -trimpath "$WORK\\b010" -p runtime/internal/atomic -std -+ -buildid xWgYrRFNUtZ5AAOiHeiQ/xWgYrRFNUtZ5AAOiHeiQ -D "" -importcfg "$WORK\\b010\\importcfg" -pack -asmhdr "$WORK\\b010\\go_asm.h" -c=4 "c:\\users\\alex\\dev\\go\\src\\runtime\\internal\\atomic\\atomic_amd64x.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\internal\\atomic\\stubs.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b010" -I "$WORK\\b010\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b010\\asm_amd64.o" "c:\\users\\alex\\dev\\go\\src\\runtime\\internal\\atomic\\asm_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\pack.exe" r "$WORK\\b010\\_pkg_.a" "$WORK\\b010\\asm_amd64.o" # internal
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b010\\_pkg_.a" # internal

        #
        # runtime/internal/sys
        #

        runtime/internal/sys
        mkdir -p $WORK\b011\
        cat >$WORK\b011\importcfg << 'EOF' # internal
        # import config
        EOF
        cd c:\users\alex\dev\go\src\runtime\internal\sys
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b011\\_pkg_.a" -trimpath "$WORK\\b011" -p runtime/internal/sys -std -+ -complete -buildid NUCcn-OpaXBlpjNtVrFf/NUCcn-OpaXBlpjNtVrFf -D "" -importcfg "$WORK\\b011\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\runtime\\internal\\sys\\arch.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\internal\\sys\\arch_amd64.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\internal\\sys\\intrinsics.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\internal\\sys\\stubs.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\internal\\sys\\sys.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\internal\\sys\\zgoarch_amd64.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\internal\\sys\\zgoos_windows.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\internal\\sys\\zversion.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b011\\_pkg_.a" # internal

        #
        # runtime
        #

        runtime
        mkdir -p $WORK\b007\
        cat >$WORK\b007\importcfg << 'EOF' # internal
        # import config
        packagefile internal/bytealg=$WORK\b008\_pkg_.a
        packagefile internal/cpu=$WORK\b009\_pkg_.a
        packagefile runtime/internal/atomic=$WORK\b010\_pkg_.a
        packagefile runtime/internal/sys=$WORK\b011\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\runtime
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b007\\_pkg_.a" -trimpath "$WORK\\b007" -p runtime -std -+ -buildid gOo4DCI8xy2sL4vPGBD_/gOo4DCI8xy2sL4vPGBD_ -D "" -importcfg "$WORK\\b007\\importcfg" -pack -asmhdr "$WORK\\b007\\go_asm.h" -c=4 "c:\\users\\alex\\dev\\go\\src\\runtime\\alg.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\atomic_pointer.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\auxv_none.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\cgo.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\cgocall.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\cgocallback.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\cgocheck.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\chan.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\compiler.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\complex.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\cpuflags_amd64.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\cpuprof.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\cputicks.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\debug.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\debugcall.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\defs_windows_amd64.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\env_posix.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\error.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\extern.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\fastlog2.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\fastlog2table.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\float.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\hash64.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\heapdump.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\iface.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\lfstack.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\lfstack_64bit.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\lock_sema.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\malloc.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\map.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\map_fast32.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\map_fast64.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\map_faststr.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mbarrier.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mbitmap.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mcache.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mcentral.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mem_windows.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mfinal.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mfixalloc.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mgc.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mgclarge.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mgcmark.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mgcsweep.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mgcsweepbuf.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mgcwork.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mheap.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mprof.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\msan0.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\msize.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mstats.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\mwbbuf.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\netpoll.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\netpoll_windows.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\os_nonopenbsd.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\os_windows.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\panic.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\plugin.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\print.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\proc.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\profbuf.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\proflabel.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\race0.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\rdebug.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\runtime.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\runtime1.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\runtime2.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\rwmutex.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\select.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\sema.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\signal_windows.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\sigqueue.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\sizeclasses.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\slice.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\softfloat64.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\stack.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\string.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\stubs.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\stubs_nonlinux.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\stubs_x86.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\symtab.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\sys_nonppc64x.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\sys_x86.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\syscall_windows.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\time.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\timeasm.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\trace.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\traceback.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\type.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\typekind.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\unaligned1.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\utf8.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\vdso_in_none.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\write_err.go" "c:\\users\\alex\\dev\\go\\src\\runtime\\zcallback_windows.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b007" -I "$WORK\\b007\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b007\\asm.o" "c:\\users\\alex\\dev\\go\\src\\runtime\\asm.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b007" -I "$WORK\\b007\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b007\\asm_amd64.o" "c:\\users\\alex\\dev\\go\\src\\runtime\\asm_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b007" -I "$WORK\\b007\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b007\\duff_amd64.o" "c:\\users\\alex\\dev\\go\\src\\runtime\\duff_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b007" -I "$WORK\\b007\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b007\\memclr_amd64.o" "c:\\users\\alex\\dev\\go\\src\\runtime\\memclr_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b007" -I "$WORK\\b007\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b007\\memmove_amd64.o" "c:\\users\\alex\\dev\\go\\src\\runtime\\memmove_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b007" -I "$WORK\\b007\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b007\\rt0_windows_amd64.o" "c:\\users\\alex\\dev\\go\\src\\runtime\\rt0_windows_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b007" -I "$WORK\\b007\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b007\\sys_windows_amd64.o" "c:\\users\\alex\\dev\\go\\src\\runtime\\sys_windows_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b007" -I "$WORK\\b007\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b007\\zcallback_windows.o" "c:\\users\\alex\\dev\\go\\src\\runtime\\zcallback_windows.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\pack.exe" r "$WORK\\b007\\_pkg_.a" "$WORK\\b007\\asm.o" "$WORK\\b007\\asm_amd64.o" "$WORK\\b007\\duff_amd64.o" "$WORK\\b007\\memclr_amd64.o" "$WORK\\b007\\memmove_amd64.o" "$WORK\\b007\\rt0_windows_amd64.o" "$WORK\\b007\\sys_windows_amd64.o" "$WORK\\b007\\zcallback_windows.o" # internal
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b007\\_pkg_.a" # internal

        #
        # sync/atomic
        #

        sync/atomic
        mkdir -p $WORK\b012\
        cat >$WORK\b012\importcfg << 'EOF' # internal
        # import config
        EOF
        cd c:\users\alex\dev\go\src\sync\atomic
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b012\\_pkg_.a" -trimpath "$WORK\\b012" -p sync/atomic -std -buildid ezquNSdZF_wjDxSMux2c/ezquNSdZF_wjDxSMux2c -D "" -importcfg "$WORK\\b012\\importcfg" -pack -asmhdr "$WORK\\b012\\go_asm.h" -c=4 "c:\\users\\alex\\dev\\go\\src\\sync\\atomic\\doc.go" "c:\\users\\alex\\dev\\go\\src\\sync\\atomic\\value.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b012" -I "$WORK\\b012\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b012\\asm.o" "c:\\users\\alex\\dev\\go\\src\\sync\\atomic\\asm.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\pack.exe" r "$WORK\\b012\\_pkg_.a" "$WORK\\b012\\asm.o" # internal
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b012\\_pkg_.a" # internal

        #
        # sync
        #

        sync
        mkdir -p $WORK\b004\
        cat >$WORK\b004\importcfg << 'EOF' # internal
        # import config
        packagefile internal/race=$WORK\b005\_pkg_.a
        packagefile runtime=$WORK\b007\_pkg_.a
        packagefile sync/atomic=$WORK\b012\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\sync
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b004\\_pkg_.a" -trimpath "$WORK\\b004" -p sync -std -buildid IV28RCS068NtJNr6AgD8/IV28RCS068NtJNr6AgD8 -D "" -importcfg "$WORK\\b004\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\sync\\cond.go" "c:\\users\\alex\\dev\\go\\src\\sync\\map.go" "c:\\users\\alex\\dev\\go\\src\\sync\\mutex.go" "c:\\users\\alex\\dev\\go\\src\\sync\\once.go" "c:\\users\\alex\\dev\\go\\src\\sync\\pool.go" "c:\\users\\alex\\dev\\go\\src\\sync\\runtime.go" "c:\\users\\alex\\dev\\go\\src\\sync\\rwmutex.go" "c:\\users\\alex\\dev\\go\\src\\sync\\waitgroup.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b004\\_pkg_.a" # internal

        #
        # io
        #

        io
        mkdir -p $WORK\b003\
        cat >$WORK\b003\importcfg << 'EOF' # internal
        # import config
        packagefile errors=$WORK\b002\_pkg_.a
        packagefile sync=$WORK\b004\_pkg_.a
        packagefile sync/atomic=$WORK\b012\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\io
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b003\\_pkg_.a" -trimpath "$WORK\\b003" -p io -std -complete -buildid KzKkk-FVgS_Im8o5PHli/KzKkk-FVgS_Im8o5PHli -D "" -importcfg "$WORK\\b003\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\io\\io.go" "c:\\users\\alex\\dev\\go\\src\\io\\multi.go" "c:\\users\\alex\\dev\\go\\src\\io\\pipe.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b003\\_pkg_.a" # internal

        #
        # math
        #

        math
        mkdir -p $WORK\b013\
        cat >$WORK\b013\importcfg << 'EOF' # internal
        # import config
        packagefile internal/cpu=$WORK\b009\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\math
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b013\\_pkg_.a" -trimpath "$WORK\\b013" -p math -std -buildid MrZorpGsfFk2w4KwiPER/MrZorpGsfFk2w4KwiPER -D "" -importcfg "$WORK\\b013\\importcfg" -pack -asmhdr "$WORK\\b013\\go_asm.h" -c=4 "c:\\users\\alex\\dev\\go\\src\\math\\abs.go" "c:\\users\\alex\\dev\\go\\src\\math\\acosh.go" "c:\\users\\alex\\dev\\go\\src\\math\\asin.go" "c:\\users\\alex\\dev\\go\\src\\math\\asinh.go" "c:\\users\\alex\\dev\\go\\src\\math\\atan.go" "c:\\users\\alex\\dev\\go\\src\\math\\atan2.go" "c:\\users\\alex\\dev\\go\\src\\math\\atanh.go" "c:\\users\\alex\\dev\\go\\src\\math\\bits.go" "c:\\users\\alex\\dev\\go\\src\\math\\cbrt.go" "c:\\users\\alex\\dev\\go\\src\\math\\const.go" "c:\\users\\alex\\dev\\go\\src\\math\\copysign.go" "c:\\users\\alex\\dev\\go\\src\\math\\dim.go" "c:\\users\\alex\\dev\\go\\src\\math\\erf.go" "c:\\users\\alex\\dev\\go\\src\\math\\erfinv.go" "c:\\users\\alex\\dev\\go\\src\\math\\exp.go" "c:\\users\\alex\\dev\\go\\src\\math\\exp_asm.go" "c:\\users\\alex\\dev\\go\\src\\math\\expm1.go" "c:\\users\\alex\\dev\\go\\src\\math\\floor.go" "c:\\users\\alex\\dev\\go\\src\\math\\frexp.go" "c:\\users\\alex\\dev\\go\\src\\math\\gamma.go" "c:\\users\\alex\\dev\\go\\src\\math\\hypot.go" "c:\\users\\alex\\dev\\go\\src\\math\\j0.go" "c:\\users\\alex\\dev\\go\\src\\math\\j1.go" "c:\\users\\alex\\dev\\go\\src\\math\\jn.go" "c:\\users\\alex\\dev\\go\\src\\math\\ldexp.go" "c:\\users\\alex\\dev\\go\\src\\math\\lgamma.go" "c:\\users\\alex\\dev\\go\\src\\math\\log.go" "c:\\users\\alex\\dev\\go\\src\\math\\log10.go" "c:\\users\\alex\\dev\\go\\src\\math\\log1p.go" "c:\\users\\alex\\dev\\go\\src\\math\\logb.go" "c:\\users\\alex\\dev\\go\\src\\math\\mod.go" "c:\\users\\alex\\dev\\go\\src\\math\\modf.go" "c:\\users\\alex\\dev\\go\\src\\math\\nextafter.go" "c:\\users\\alex\\dev\\go\\src\\math\\pow.go" "c:\\users\\alex\\dev\\go\\src\\math\\pow10.go" "c:\\users\\alex\\dev\\go\\src\\math\\remainder.go" "c:\\users\\alex\\dev\\go\\src\\math\\signbit.go" "c:\\users\\alex\\dev\\go\\src\\math\\sin.go" "c:\\users\\alex\\dev\\go\\src\\math\\sincos.go" "c:\\users\\alex\\dev\\go\\src\\math\\sinh.go" "c:\\users\\alex\\dev\\go\\src\\math\\sqrt.go" "c:\\users\\alex\\dev\\go\\src\\math\\tan.go" "c:\\users\\alex\\dev\\go\\src\\math\\tanh.go" "c:\\users\\alex\\dev\\go\\src\\math\\unsafe.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\asin_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\asin_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\asinh_stub.o" "c:\\users\\alex\\dev\\go\\src\\math\\asinh_stub.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\atan2_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\atan2_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\atan_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\atan_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\cbrt_stub.o" "c:\\users\\alex\\dev\\go\\src\\math\\cbrt_stub.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\dim_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\dim_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\erf_stub.o" "c:\\users\\alex\\dev\\go\\src\\math\\erf_stub.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\exp2_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\exp2_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\exp_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\exp_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\expm1_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\expm1_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\floor_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\floor_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\frexp_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\frexp_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\hypot_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\hypot_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\ldexp_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\ldexp_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\log10_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\log10_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\log1p_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\log1p_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\log_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\log_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\mod_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\mod_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\modf_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\modf_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\pow_stub.o" "c:\\users\\alex\\dev\\go\\src\\math\\pow_stub.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\remainder_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\remainder_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\sin_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\sin_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\sinh_stub.o" "c:\\users\\alex\\dev\\go\\src\\math\\sinh_stub.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\sqrt_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\sqrt_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b013" -I "$WORK\\b013\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b013\\tan_amd64.o" "c:\\users\\alex\\dev\\go\\src\\math\\tan_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\pack.exe" r "$WORK\\b013\\_pkg_.a" "$WORK\\b013\\asin_amd64.o" "$WORK\\b013\\asinh_stub.o" "$WORK\\b013\\atan2_amd64.o" "$WORK\\b013\\atan_amd64.o" "$WORK\\b013\\cbrt_stub.o" "$WORK\\b013\\dim_amd64.o" "$WORK\\b013\\erf_stub.o" "$WORK\\b013\\exp2_amd64.o" "$WORK\\b013\\exp_amd64.o" "$WORK\\b013\\expm1_amd64.o" "$WORK\\b013\\floor_amd64.o" "$WORK\\b013\\frexp_amd64.o" "$WORK\\b013\\hypot_amd64.o" "$WORK\\b013\\ldexp_amd64.o" "$WORK\\b013\\log10_amd64.o" "$WORK\\b013\\log1p_amd64.o" "$WORK\\b013\\log_amd64.o" "$WORK\\b013\\mod_amd64.o" "$WORK\\b013\\modf_amd64.o" "$WORK\\b013\\pow_stub.o" "$WORK\\b013\\remainder_amd64.o" "$WORK\\b013\\sin_amd64.o" "$WORK\\b013\\sinh_stub.o" "$WORK\\b013\\sqrt_amd64.o" "$WORK\\b013\\tan_amd64.o" # internal
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b013\\_pkg_.a" # internal

        #
        # internal/syscall/windows/sysdll
        #

        internal/syscall/windows/sysdll
        mkdir -p $WORK\b017\
        cat >$WORK\b017\importcfg << 'EOF' # internal
        # import config
        EOF
        cd c:\users\alex\dev\go\src\internal\syscall\windows\sysdll
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b017\\_pkg_.a" -trimpath "$WORK\\b017" -p internal/syscall/windows/sysdll -std -complete -buildid G3xc0HOgVFgIcPjx2eVe/G3xc0HOgVFgIcPjx2eVe -D "" -importcfg "$WORK\\b017\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\internal\\syscall\\windows\\sysdll\\sysdll.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b017\\_pkg_.a" # internal

        #
        # unicode/utf16
        #

        unicode/utf16
        mkdir -p $WORK\b019\
        cat >$WORK\b019\importcfg << 'EOF' # internal
        # import config
        EOF
        cd c:\users\alex\dev\go\src\unicode\utf16
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b019\\_pkg_.a" -trimpath "$WORK\\b019" -p unicode/utf16 -std -complete -buildid qxY4cN7qQqo7Pl2hBtUE/qxY4cN7qQqo7Pl2hBtUE -D "" -importcfg "$WORK\\b019\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\unicode\\utf16\\utf16.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b019\\_pkg_.a" # internal

        #
        # syscall
        #

        syscall
        mkdir -p $WORK\b018\
        cat >$WORK\b018\importcfg << 'EOF' # internal
        # import config
        packagefile errors=$WORK\b002\_pkg_.a
        packagefile internal/race=$WORK\b005\_pkg_.a
        packagefile internal/syscall/windows/sysdll=$WORK\b017\_pkg_.a
        packagefile sync=$WORK\b004\_pkg_.a
        packagefile sync/atomic=$WORK\b012\_pkg_.a
        packagefile unicode/utf16=$WORK\b019\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\syscall
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b018\\_pkg_.a" -trimpath "$WORK\\b018" -p syscall -std -buildid 9VY9H2IiuEcMlGC-wviX/9VY9H2IiuEcMlGC-wviX -D "" -importcfg "$WORK\\b018\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\syscall\\dll_windows.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\endian_little.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\env_windows.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\exec_windows.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\msan0.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\net.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\security_windows.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\str.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\syscall.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\syscall_windows.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\syscall_windows_amd64.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\types_windows.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\types_windows_amd64.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\zerrors_windows.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\zerrors_windows_amd64.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\zsyscall_windows.go" "c:\\users\\alex\\dev\\go\\src\\syscall\\zsysnum_windows_amd64.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b018\\_pkg_.a" # internal

        #
        # internal/syscall/windows
        #

        internal/syscall/windows
        mkdir -p $WORK\b016\
        cat >$WORK\b016\importcfg << 'EOF' # internal
        # import config
        packagefile internal/syscall/windows/sysdll=$WORK\b017\_pkg_.a
        packagefile sync=$WORK\b004\_pkg_.a
        packagefile syscall=$WORK\b018\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\internal\syscall\windows
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b016\\_pkg_.a" -trimpath "$WORK\\b016" -p internal/syscall/windows -std -complete -buildid Lxy6Scmr_aJspj0WzjCF/Lxy6Scmr_aJspj0WzjCF -D "" -importcfg "$WORK\\b016\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\internal\\syscall\\windows\\mksyscall.go" "c:\\users\\alex\\dev\\go\\src\\internal\\syscall\\windows\\psapi_windows.go" "c:\\users\\alex\\dev\\go\\src\\internal\\syscall\\windows\\reparse_windows.go" "c:\\users\\alex\\dev\\go\\src\\internal\\syscall\\windows\\security_windows.go" "c:\\users\\alex\\dev\\go\\src\\internal\\syscall\\windows\\symlink_windows.go" "c:\\users\\alex\\dev\\go\\src\\internal\\syscall\\windows\\syscall_windows.go" "c:\\users\\alex\\dev\\go\\src\\internal\\syscall\\windows\\zsyscall_windows.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b016\\_pkg_.a" # internal

        #
        # internal/syscall/windows/registry
        #

        internal/syscall/windows/registry
        mkdir -p $WORK\b021\
        cat >$WORK\b021\importcfg << 'EOF' # internal
        # import config
        packagefile errors=$WORK\b002\_pkg_.a
        packagefile internal/syscall/windows/sysdll=$WORK\b017\_pkg_.a
        packagefile io=$WORK\b003\_pkg_.a
        packagefile syscall=$WORK\b018\_pkg_.a
        packagefile unicode/utf16=$WORK\b019\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\internal\syscall\windows\registry
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b021\\_pkg_.a" -trimpath "$WORK\\b021" -p internal/syscall/windows/registry -std -complete -buildid lKS3yLaCfkEqnV12pcrX/lKS3yLaCfkEqnV12pcrX -D "" -importcfg "$WORK\\b021\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\internal\\syscall\\windows\\registry\\key.go" "c:\\users\\alex\\dev\\go\\src\\internal\\syscall\\windows\\registry\\mksyscall.go" "c:\\users\\alex\\dev\\go\\src\\internal\\syscall\\windows\\registry\\syscall.go" "c:\\users\\alex\\dev\\go\\src\\internal\\syscall\\windows\\registry\\value.go" "c:\\users\\alex\\dev\\go\\src\\internal\\syscall\\windows\\registry\\zsyscall_windows.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b021\\_pkg_.a" # internal

        #
        # time
        #

        time
        mkdir -p $WORK\b020\
        cat >$WORK\b020\importcfg << 'EOF' # internal
        # import config
        packagefile errors=$WORK\b002\_pkg_.a
        packagefile internal/syscall/windows/registry=$WORK\b021\_pkg_.a
        packagefile runtime=$WORK\b007\_pkg_.a
        packagefile sync=$WORK\b004\_pkg_.a
        packagefile syscall=$WORK\b018\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\time
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b020\\_pkg_.a" -trimpath "$WORK\\b020" -p time -std -buildid CPjOIksol6sFszgO_HJ9/CPjOIksol6sFszgO_HJ9 -D "" -importcfg "$WORK\\b020\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\time\\format.go" "c:\\users\\alex\\dev\\go\\src\\time\\sleep.go" "c:\\users\\alex\\dev\\go\\src\\time\\sys_windows.go" "c:\\users\\alex\\dev\\go\\src\\time\\tick.go" "c:\\users\\alex\\dev\\go\\src\\time\\time.go" "c:\\users\\alex\\dev\\go\\src\\time\\zoneinfo.go" "c:\\users\\alex\\dev\\go\\src\\time\\zoneinfo_abbrs_windows.go" "c:\\users\\alex\\dev\\go\\src\\time\\zoneinfo_read.go" "c:\\users\\alex\\dev\\go\\src\\time\\zoneinfo_windows.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b020\\_pkg_.a" # internal

        #
        # unicode/utf8
        #

        unicode/utf8
        mkdir -p $WORK\b022\
        cat >$WORK\b022\importcfg << 'EOF' # internal
        # import config
        EOF
        cd c:\users\alex\dev\go\src\unicode\utf8
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b022\\_pkg_.a" -trimpath "$WORK\\b022" -p unicode/utf8 -std -complete -buildid 3itYZH7HFg1ByxDySYpZ/3itYZH7HFg1ByxDySYpZ -D "" -importcfg "$WORK\\b022\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\unicode\\utf8\\utf8.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b022\\_pkg_.a" # internal

        #
        # internal/poll
        #

        internal/poll
        mkdir -p $WORK\b015\
        cat >$WORK\b015\importcfg << 'EOF' # internal
        # import config
        packagefile errors=$WORK\b002\_pkg_.a
        packagefile internal/race=$WORK\b005\_pkg_.a
        packagefile internal/syscall/windows=$WORK\b016\_pkg_.a
        packagefile io=$WORK\b003\_pkg_.a
        packagefile runtime=$WORK\b007\_pkg_.a
        packagefile sync=$WORK\b004\_pkg_.a
        packagefile sync/atomic=$WORK\b012\_pkg_.a
        packagefile syscall=$WORK\b018\_pkg_.a
        packagefile time=$WORK\b020\_pkg_.a
        packagefile unicode/utf16=$WORK\b019\_pkg_.a
        packagefile unicode/utf8=$WORK\b022\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\internal\poll
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b015\\_pkg_.a" -trimpath "$WORK\\b015" -p internal/poll -std -buildid J0GLRpKls-ADheREH5rN/J0GLRpKls-ADheREH5rN -D "" -importcfg "$WORK\\b015\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\internal\\poll\\fd.go" "c:\\users\\alex\\dev\\go\\src\\internal\\poll\\fd_mutex.go" "c:\\users\\alex\\dev\\go\\src\\internal\\poll\\fd_poll_runtime.go" "c:\\users\\alex\\dev\\go\\src\\internal\\poll\\fd_posix.go" "c:\\users\\alex\\dev\\go\\src\\internal\\poll\\fd_windows.go" "c:\\users\\alex\\dev\\go\\src\\internal\\poll\\hook_windows.go" "c:\\users\\alex\\dev\\go\\src\\internal\\poll\\sendfile_windows.go" "c:\\users\\alex\\dev\\go\\src\\internal\\poll\\sockopt.go" "c:\\users\\alex\\dev\\go\\src\\internal\\poll\\sockopt_windows.go" "c:\\users\\alex\\dev\\go\\src\\internal\\poll\\sockoptip.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b015\\_pkg_.a" # internal

        #
        # internal/testlog
        #

        internal/testlog
        mkdir -p $WORK\b023\
        cat >$WORK\b023\importcfg << 'EOF' # internal
        # import config
        packagefile sync/atomic=$WORK\b012\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\internal\testlog
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b023\\_pkg_.a" -trimpath "$WORK\\b023" -p internal/testlog -std -complete -buildid bC_2DSBEEQRZpLd7JXXy/bC_2DSBEEQRZpLd7JXXy -D "" -importcfg "$WORK\\b023\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\internal\\testlog\\log.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b023\\_pkg_.a" # internal

        #
        # os
        #

        os
        mkdir -p $WORK\b014\
        cat >$WORK\b014\importcfg << 'EOF' # internal
        # import config
        packagefile errors=$WORK\b002\_pkg_.a
        packagefile internal/poll=$WORK\b015\_pkg_.a
        packagefile internal/syscall/windows=$WORK\b016\_pkg_.a
        packagefile internal/testlog=$WORK\b023\_pkg_.a
        packagefile io=$WORK\b003\_pkg_.a
        packagefile runtime=$WORK\b007\_pkg_.a
        packagefile sync=$WORK\b004\_pkg_.a
        packagefile sync/atomic=$WORK\b012\_pkg_.a
        packagefile syscall=$WORK\b018\_pkg_.a
        packagefile time=$WORK\b020\_pkg_.a
        packagefile unicode/utf16=$WORK\b019\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\os
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b014\\_pkg_.a" -trimpath "$WORK\\b014" -p os -std -buildid 2eiVAjtHJw1RmM0LAKWD/2eiVAjtHJw1RmM0LAKWD -D "" -importcfg "$WORK\\b014\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\os\\dir.go" "c:\\users\\alex\\dev\\go\\src\\os\\dir_windows.go" "c:\\users\\alex\\dev\\go\\src\\os\\env.go" "c:\\users\\alex\\dev\\go\\src\\os\\error.go" "c:\\users\\alex\\dev\\go\\src\\os\\error_posix.go" "c:\\users\\alex\\dev\\go\\src\\os\\error_windows.go" "c:\\users\\alex\\dev\\go\\src\\os\\exec.go" "c:\\users\\alex\\dev\\go\\src\\os\\exec_posix.go" "c:\\users\\alex\\dev\\go\\src\\os\\exec_windows.go" "c:\\users\\alex\\dev\\go\\src\\os\\executable.go" "c:\\users\\alex\\dev\\go\\src\\os\\executable_windows.go" "c:\\users\\alex\\dev\\go\\src\\os\\file.go" "c:\\users\\alex\\dev\\go\\src\\os\\file_posix.go" "c:\\users\\alex\\dev\\go\\src\\os\\file_windows.go" "c:\\users\\alex\\dev\\go\\src\\os\\getwd.go" "c:\\users\\alex\\dev\\go\\src\\os\\path.go" "c:\\users\\alex\\dev\\go\\src\\os\\path_windows.go" "c:\\users\\alex\\dev\\go\\src\\os\\proc.go" "c:\\users\\alex\\dev\\go\\src\\os\\stat.go" "c:\\users\\alex\\dev\\go\\src\\os\\stat_windows.go" "c:\\users\\alex\\dev\\go\\src\\os\\sticky_notbsd.go" "c:\\users\\alex\\dev\\go\\src\\os\\str.go" "c:\\users\\alex\\dev\\go\\src\\os\\sys.go" "c:\\users\\alex\\dev\\go\\src\\os\\sys_windows.go" "c:\\users\\alex\\dev\\go\\src\\os\\types.go" "c:\\users\\alex\\dev\\go\\src\\os\\types_windows.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b014\\_pkg_.a" # internal

        #
        # math/bits
        #

        math/bits
        mkdir -p $WORK\b026\
        cat >$WORK\b026\importcfg << 'EOF' # internal
        # import config
        EOF
        cd c:\users\alex\dev\go\src\math\bits
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b026\\_pkg_.a" -trimpath "$WORK\\b026" -p math/bits -std -complete -buildid Zc6CDKoOIwJW8dwxIrzB/Zc6CDKoOIwJW8dwxIrzB -D "" -importcfg "$WORK\\b026\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\math\\bits\\bits.go" "c:\\users\\alex\\dev\\go\\src\\math\\bits\\bits_tables.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b026\\_pkg_.a" # internal

        #
        # strconv
        #

        strconv
        mkdir -p $WORK\b025\
        cat >$WORK\b025\importcfg << 'EOF' # internal
        # import config
        packagefile errors=$WORK\b002\_pkg_.a
        packagefile math=$WORK\b013\_pkg_.a
        packagefile math/bits=$WORK\b026\_pkg_.a
        packagefile unicode/utf8=$WORK\b022\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\strconv
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b025\\_pkg_.a" -trimpath "$WORK\\b025" -p strconv -std -complete -buildid WfiPc5isnvP_UrPR81UZ/WfiPc5isnvP_UrPR81UZ -D "" -importcfg "$WORK\\b025\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\strconv\\atob.go" "c:\\users\\alex\\dev\\go\\src\\strconv\\atof.go" "c:\\users\\alex\\dev\\go\\src\\strconv\\atoi.go" "c:\\users\\alex\\dev\\go\\src\\strconv\\decimal.go" "c:\\users\\alex\\dev\\go\\src\\strconv\\doc.go" "c:\\users\\alex\\dev\\go\\src\\strconv\\extfloat.go" "c:\\users\\alex\\dev\\go\\src\\strconv\\ftoa.go" "c:\\users\\alex\\dev\\go\\src\\strconv\\isprint.go" "c:\\users\\alex\\dev\\go\\src\\strconv\\itoa.go" "c:\\users\\alex\\dev\\go\\src\\strconv\\quote.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b025\\_pkg_.a" # internal

        #
        # unicode
        #

        unicode
        mkdir -p $WORK\b027\
        cat >$WORK\b027\importcfg << 'EOF' # internal
        # import config
        EOF
        cd c:\users\alex\dev\go\src\unicode
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b027\\_pkg_.a" -trimpath "$WORK\\b027" -p unicode -std -complete -buildid KU_p32UKFqqFZJadUCZI/KU_p32UKFqqFZJadUCZI -D "" -importcfg "$WORK\\b027\\importcfg" -pack -c=4 "c:\\users\\alex\\dev\\go\\src\\unicode\\casetables.go" "c:\\users\\alex\\dev\\go\\src\\unicode\\digit.go" "c:\\users\\alex\\dev\\go\\src\\unicode\\graphic.go" "c:\\users\\alex\\dev\\go\\src\\unicode\\letter.go" "c:\\users\\alex\\dev\\go\\src\\unicode\\tables.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b027\\_pkg_.a" # internal

        #
        # reflect
        #

        reflect
        mkdir -p $WORK\b024\
        cat >$WORK\b024\importcfg << 'EOF' # internal
        # import config
        packagefile math=$WORK\b013\_pkg_.a
        packagefile runtime=$WORK\b007\_pkg_.a
        packagefile strconv=$WORK\b025\_pkg_.a
        packagefile sync=$WORK\b004\_pkg_.a
        packagefile unicode=$WORK\b027\_pkg_.a
        packagefile unicode/utf8=$WORK\b022\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\reflect
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b024\\_pkg_.a" -trimpath "$WORK\\b024" -p reflect -std -buildid T-ZV9tcgz208jnZzbLdn/T-ZV9tcgz208jnZzbLdn -D "" -importcfg "$WORK\\b024\\importcfg" -pack -asmhdr "$WORK\\b024\\go_asm.h" -c=4 "c:\\users\\alex\\dev\\go\\src\\reflect\\deepequal.go" "c:\\users\\alex\\dev\\go\\src\\reflect\\makefunc.go" "c:\\users\\alex\\dev\\go\\src\\reflect\\swapper.go" "c:\\users\\alex\\dev\\go\\src\\reflect\\type.go" "c:\\users\\alex\\dev\\go\\src\\reflect\\value.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\asm.exe" -trimpath "$WORK\\b024" -I "$WORK\\b024\\" -I "c:\\users\\alex\\dev\\go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 -o "$WORK\\b024\\asm_amd64.o" "c:\\users\\alex\\dev\\go\\src\\reflect\\asm_amd64.s"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\pack.exe" r "$WORK\\b024\\_pkg_.a" "$WORK\\b024\\asm_amd64.o" # internal
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b024\\_pkg_.a" # internal

        #
        # fmt
        #

        fmt
        mkdir -p $WORK\b001\
        cat >$WORK\b001\importcfg << 'EOF' # internal
        # import config
        packagefile errors=$WORK\b002\_pkg_.a
        packagefile io=$WORK\b003\_pkg_.a
        packagefile math=$WORK\b013\_pkg_.a
        packagefile os=$WORK\b014\_pkg_.a
        packagefile reflect=$WORK\b024\_pkg_.a
        packagefile strconv=$WORK\b025\_pkg_.a
        packagefile sync=$WORK\b004\_pkg_.a
        packagefile unicode/utf8=$WORK\b022\_pkg_.a
        EOF
        cd c:\users\alex\dev\go\src\fmt
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\compile.exe" -o "$WORK\\b001\\_pkg_.a" -trimpath "$WORK\\b001" -e -p fmt -std -complete -buildid HYOL6crUkirGHsVnIP-z/HYOL6crUkirGHsVnIP-z -D "" -importcfg "$WORK\\b001\\importcfg" -pack "c:\\users\\alex\\dev\\go\\src\\fmt\\doc.go" "c:\\users\\alex\\dev\\go\\src\\fmt\\format.go" "c:\\users\\alex\\dev\\go\\src\\fmt\\print.go" "c:\\users\\alex\\dev\\go\\src\\fmt\\scan.go"
        "c:\\users\\alex\\dev\\go\\pkg\\tool\\windows_amd64\\buildid.exe" -w "$WORK\\b001\\_pkg_.a" # internal

    go_test.go:5651: incorrectly rebuilt reflect
    go_test.go:5651: pattern ^# reflect found unexpectedly in standard error
go test proxy starting
go test proxy running at GOPROXY=http://127.0.0.1:64617/mod
go proxy: no archive golang.org/x/text/language 14c0d48
go proxy: no archive golang.org/x/text/language 14c0d48
go proxy: no archive golang.org/x/text/language 14c0d48
go proxy: no archive golang.org/x/text/foo 14c0d48
--- FAIL: TestAccidentalGitCheckout (1.59s)
    go_test.go:1303: running testgo [get -u vcs-test.golang.org/go/test1-svn-git]
    go_test.go:1303: standard error:
    go_test.go:1303: go: missing Subversion command. See https://golang.org/s/gogetcmd
        package vcs-test.golang.org/go/test1-svn-git: exec: "svn": executable file not found in %PATH%

    go_test.go:1303: testgo failed as expected: exit status 1
    go_test.go:1304: get did not fail for right reason
    go_test.go:1304: pattern src[\\/]vcs-test.* uses git, but parent .*src[\\/]vcs-test.* uses svn not found in standard error
*** Test killed: ran too long (10m0s).
FAIL    cmd/go  600.373s

c:\>

and the test did not even finish.

But the short test is fine:

c:\>go test -short cmd/go
ok      cmd/go  62.196s

c:\>

If you remove tests from long test, they will slowly become broken.

Alex

@gopherbot

This comment has been minimized.

Copy link

commented Jul 31, 2018

Change https://golang.org/cl/126995 mentions this issue: cmd/compile: unify compilation of compiler tests

@gopherbot

This comment has been minimized.

Copy link

commented Jul 31, 2018

Change https://golang.org/cl/127055 mentions this issue: cmd/compile: move over more compiler tests to new test infrastructure

@gopherbot

This comment has been minimized.

Copy link

commented Jul 31, 2018

Change https://golang.org/cl/127095 mentions this issue: cmd/compile: move autogenerated tests to new infrastructure

@gopherbot

This comment has been minimized.

Copy link

commented Jul 31, 2018

Change https://golang.org/cl/127115 mentions this issue: cmd/compile: move more compiler tests to new test infrastructure

@gopherbot

This comment has been minimized.

Copy link

commented Jul 31, 2018

Change https://golang.org/cl/127116 mentions this issue: cmd/compile: move last compile tests to new test infrastructure

@nightlyone

This comment has been minimized.

Copy link
Contributor

commented Aug 1, 2018

The approach taken by the last few changes that make basic arithmetic tests depend on the testing package look not really useful to me, except as a experiment.

When the logic to run the test framework works, much of the compiler and runtime are already implicitly tested. So given those are failing, the testing package probably gives segfaults first or behaves funny before any useful test code is even run.

This also makes implementing a new Go compiler step by step harder and my even make porting harder since the unit of code that needs to work before these tests now run is much bigger.

All in all this approach to testing the compiler really confuses me.

@randall77

This comment has been minimized.

Copy link
Contributor

commented Aug 1, 2018

I guess it depends on what you see these tests as being useful for.

I seem them mainly as regression tests, making sure that the compiler handles all the weird edge cases correctly. Sure the testing package wouldn't work if the compiler wasn't mostly correct already, but there's lots of wiggle room between mostly correct and all correct. For example, does testing use 16-bit right unsigned shifts?
And before incorporating the testing package, these tests still assumed that most of the runtime package compiles successfully. So it's not like they used to depend on nothing.

I can see the argument that not depending on testing makes it easier to use the tests for developing a new architecture port. I just don't think new ports happen that often, and the window between runtime working and runtime+testing working isn't that large.

gopherbot pushed a commit that referenced this issue Aug 24, 2018

cmd/compile: unify compilation of compiler tests
Before this CL we would build&run each test file individually.
Building the test takes most of the time, a significant fraction of a
second. Running the tests are really fast.

After this CL, we build all the tests at once, then run each
individually. We only have to run the compiler&linker once (or twice,
for softfloat architectures) instead of once per test.

While we're here, organize these tests to fit a bit more into the
standard testing framework.

This is just the organizational CL that changes the testing framework
and migrates 2 tests.  Future tests will follow.

R=go1.12

Update #26469

Change-Id: I1a1e7338c054b51f0c1c4c539d48d3d046b08b7d
Reviewed-on: https://go-review.googlesource.com/126995
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>

gopherbot pushed a commit that referenced this issue Aug 24, 2018

cmd/compile: move over more compiler tests to new test infrastructure
R=go1.12

Update #26469

Change-Id: Iad75edfc194f8391a8ead09bfa68d446155e84ac
Reviewed-on: https://go-review.googlesource.com/127055
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>

gopherbot pushed a commit that referenced this issue Aug 24, 2018

cmd/compile: move autogenerated tests to new infrastructure
Update #26469

R=go1.12

Change-Id: Ib9a00ee5e98371769669bb9cad58320b66127374
Reviewed-on: https://go-review.googlesource.com/127095
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>

gopherbot pushed a commit that referenced this issue Aug 24, 2018

cmd/compile: move more compiler tests to new test infrastructure
Update #26469

Change-Id: I1188e49cde1bda11506afef6b6e3f34c6ff45ea5
Reviewed-on: https://go-review.googlesource.com/127115
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>

@gopherbot gopherbot closed this in dca709d Aug 24, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.