OXIESEC PANEL
- Current Dir:
/
/
opt
/
golang
/
1.19.4
/
src
/
runtime
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
12/01/2022 06:13:58 PM
rwxr-xr-x
📄
HACKING.md
15.29 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
Makefile
178 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
abi_test.go
2.83 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
alg.go
9.45 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
align_runtime_test.go
2.73 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
align_test.go
5.26 KB
12/01/2022 06:12:59 PM
rw-r--r--
📁
asan
-
12/01/2022 06:13:56 PM
rwxr-xr-x
📄
asan.go
1.55 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asan0.go
761 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
asan_amd64.s
2.46 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asan_arm64.s
2.15 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asan_riscv64.s
1.92 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm.s
278 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm_386.s
40.43 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm_amd64.h
411 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm_amd64.s
57.44 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm_arm.s
30.2 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm_arm64.s
41.41 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm_loong64.s
21.79 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm_mips64x.s
22.43 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm_mipsx.s
24.41 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm_ppc64x.h
1023 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm_ppc64x.s
35.21 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm_riscv64.s
26.43 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm_s390x.s
26.08 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
asm_wasm.s
9.38 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
atomic_arm64.s
259 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
atomic_loong64.s
245 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
atomic_mips64x.s
300 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
atomic_mipsx.s
262 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
atomic_pointer.go
2.62 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
atomic_ppc64x.s
437 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
atomic_riscv64.s
275 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
auxv_none.go
298 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
callers_test.go
8.44 KB
12/01/2022 06:12:59 PM
rw-r--r--
📁
cgo
-
12/01/2022 06:13:56 PM
rwxr-xr-x
📄
cgo.go
2 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
cgo_mmap.go
2.4 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
cgo_ppc64x.go
418 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
cgo_sigaction.go
3.28 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
cgocall.go
19.12 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
cgocallback.go
317 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
cgocheck.go
6.86 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
chan.go
23.73 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
chan_test.go
23.37 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
chanbarrier_test.go
1.4 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
checkptr.go
3.29 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
checkptr_test.go
2.73 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
closure_test.go
937 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
compiler.go
410 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
complex.go
1.59 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
complex_test.go
1.05 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
conv_wasm_test.go
2.96 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
cpuflags.go
810 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
cpuflags_amd64.go
533 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
cpuflags_arm64.go
334 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
cpuprof.go
7.78 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
cputicks.go
449 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
crash_cgo_test.go
18.14 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
crash_test.go
21.77 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
crash_unix_test.go
8.39 KB
12/01/2022 06:12:59 PM
rw-r--r--
📁
debug
-
12/01/2022 06:13:56 PM
rwxr-xr-x
📄
debug.go
3.23 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
debug_test.go
7.98 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
debugcall.go
6.19 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
debuglog.go
17.87 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
debuglog_off.go
357 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
debuglog_on.go
1.09 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
debuglog_test.go
4.56 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defer_test.go
11.56 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs1_linux.go
845 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs1_netbsd_386.go
2.83 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs1_netbsd_amd64.go
3.06 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs1_netbsd_arm.go
2.94 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs1_netbsd_arm64.go
3.17 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs1_solaris_amd64.go
4 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs2_linux.go
3.51 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs3_linux.go
1.09 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_aix.go
4.16 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_aix_ppc64.go
3.61 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_arm_linux.go
2.67 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_darwin.go
3.78 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_darwin_amd64.go
6.07 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_darwin_arm64.go
3.89 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_dragonfly.go
2.59 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_dragonfly_amd64.go
3.29 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_freebsd.go
3.82 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_freebsd_386.go
4.36 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_freebsd_amd64.go
4.63 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_freebsd_arm.go
3.69 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_freebsd_arm64.go
4.01 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_illumos_amd64.go
285 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_linux.go
3.25 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_linux_386.go
4.42 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_linux_amd64.go
4.93 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_linux_arm.go
4.11 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_linux_arm64.go
3.86 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_linux_loong64.go
3.68 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_linux_mips64x.go
3.85 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_linux_mipsx.go
3.83 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_linux_ppc64.go
3.93 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_linux_ppc64le.go
3.93 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_linux_riscv64.go
4.06 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_linux_s390x.go
3.41 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_netbsd.go
2.72 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_netbsd_386.go
855 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_netbsd_amd64.go
1.01 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_netbsd_arm.go
764 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_openbsd.go
3.09 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_openbsd_386.go
2.87 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_openbsd_amd64.go
3.07 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_openbsd_arm.go
2.99 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_openbsd_arm64.go
2.74 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_openbsd_mips64.go
2.64 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_plan9_386.go
1.63 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_plan9_amd64.go
1.82 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_plan9_arm.go
1.73 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_solaris.go
3.31 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_solaris_amd64.go
1004 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_windows.go
2.09 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_windows_386.go
1.98 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_windows_amd64.go
2.71 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_windows_arm.go
2.11 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
defs_windows_arm64.go
2.63 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
duff_386.s
8.24 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
duff_amd64.s
5.62 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
duff_arm.s
7.11 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
duff_arm64.s
5.27 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
duff_loong64.s
12 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
duff_mips64x.s
11.28 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
duff_ppc64x.s
7.06 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
duff_riscv64.s
11.4 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
duff_s390x.s
507 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
env_plan9.go
3 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
env_posix.go
1.79 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
env_test.go
1.16 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
error.go
9.21 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
example_test.go
1.55 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_aix_test.go
234 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_arm_test.go
226 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_darwin_test.go
382 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_debug_amd64_test.go
3.6 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_debug_arm64_test.go
3.49 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_debug_test.go
5.05 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_debuglog_test.go
1.24 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_linux_test.go
550 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_mmap_test.go
429 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_pipe2_test.go
310 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_pipe_test.go
219 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_solaris_test.go
282 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_test.go
38.87 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_unix_test.go
2.18 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
export_windows_test.go
677 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
extern.go
13.62 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
fastlog2.go
1.22 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
fastlog2_test.go
784 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
fastlog2table.go
904 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
float.go
1.35 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
float_test.go
699 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
funcdata.h
2.55 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
gc_test.go
20.04 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
gcinfo_test.go
5.59 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
go_tls.h
366 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
hash32.go
1.58 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
hash64.go
1.95 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
hash_test.go
16.77 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
heapdump.go
17.65 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
histogram.go
6.19 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
histogram_test.go
3.42 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
iface.go
15.66 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
iface_test.go
7.45 KB
12/01/2022 06:12:59 PM
rw-r--r--
📁
internal
-
12/01/2022 06:13:56 PM
rwxr-xr-x
📄
lfstack.go
1.77 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
lfstack_32bit.go
532 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
lfstack_64bit.go
2.18 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
lfstack_test.go
2.77 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
libfuzzer.go
6.5 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
libfuzzer_amd64.s
5.01 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
libfuzzer_arm64.s
3.15 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
lock_futex.go
5.19 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
lock_js.go
6.14 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
lock_sema.go
6.74 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
lockrank.go
13.26 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
lockrank_off.go
1.14 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
lockrank_on.go
9.83 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
lockrank_test.go
1.15 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
malloc.go
51.01 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
malloc_test.go
10.78 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
map.go
43.52 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
map_benchmark_test.go
10.48 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
map_fast32.go
12.72 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
map_fast64.go
12.91 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
map_faststr.go
14.3 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
map_test.go
27.44 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mbarrier.go
12.43 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mbitmap.go
66.08 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mcache.go
10 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mcentral.go
7.9 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mcheckmark.go
2.81 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mem.go
6.23 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mem_aix.go
1.9 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mem_bsd.go
2.03 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mem_darwin.go
1.84 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mem_js.go
2.25 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mem_linux.go
6.15 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mem_plan9.go
4.32 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mem_windows.go
3.76 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memclr_386.s
2.38 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memclr_amd64.s
4.91 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memclr_arm.s
2.6 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memclr_arm64.s
3.62 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memclr_loong64.s
778 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
memclr_mips64x.s
1.72 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memclr_mipsx.s
1.32 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memclr_plan9_386.s
983 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
memclr_plan9_amd64.s
511 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
memclr_ppc64x.s
4.23 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memclr_riscv64.s
978 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
memclr_s390x.s
1.96 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memclr_wasm.s
622 bytes
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_386.s
4.42 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_amd64.s
12.48 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_arm.s
5.9 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_arm64.s
5.96 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_linux_amd64_test.go
1.6 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_loong64.s
1.8 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_mips64x.s
1.83 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_mipsx.s
4.4 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_plan9_386.s
3.06 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_plan9_amd64.s
3.04 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_ppc64x.s
4.58 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_riscv64.s
1.86 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_s390x.s
2.92 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_test.go
14.03 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
memmove_wasm.s
1.74 KB
12/01/2022 06:12:59 PM
rw-r--r--
📁
metrics
-
12/01/2022 06:13:56 PM
rwxr-xr-x
📄
metrics.go
18.71 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
metrics_test.go
14.74 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mfinal.go
16.34 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mfinal_test.go
6.19 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mfixalloc.go
3.07 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mgc.go
56.37 KB
12/01/2022 06:12:59 PM
rw-r--r--
📄
mgclimit.go
17.26 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mgclimit_test.go
9.02 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mgcmark.go
47.47 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mgcpacer.go
60.12 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mgcpacer_test.go
40.43 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mgcscavenge.go
41.29 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mgcscavenge_test.go
20.33 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mgcstack.go
10.58 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mgcsweep.go
27.89 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mgcwork.go
12.86 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mheap.go
69.14 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mkduff.go
8.01 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mkfastlog2table.go
3.08 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mkpreempt.go
15.12 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mksizeclasses.go
9.3 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mmap.go
821 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
mpagealloc.go
36.84 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mpagealloc_32bit.go
3.81 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mpagealloc_64bit.go
9.44 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mpagealloc_test.go
32.59 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mpagecache.go
5.46 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mpagecache_test.go
10.79 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mpallocbits.go
12.6 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mpallocbits_test.go
13.69 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mprof.go
38.51 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mranges.go
13.64 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mranges_test.go
5.68 KB
12/01/2022 06:13:00 PM
rw-r--r--
📁
msan
-
12/01/2022 06:13:56 PM
rwxr-xr-x
📄
msan.go
1.5 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
msan0.go
725 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
msan_amd64.s
2.31 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
msan_arm64.s
1.99 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
msize.go
777 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
mspanset.go
12.21 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mstats.go
30.07 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
mwbbuf.go
9.28 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
nbpipe_fcntl_libc_test.go
470 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
nbpipe_fcntl_unix_test.go
458 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
nbpipe_pipe.go
405 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
nbpipe_pipe2.go
344 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
nbpipe_pipe_test.go
706 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
nbpipe_test.go
1.68 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
net_plan9.go
645 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
netpoll.go
18.27 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
netpoll_aix.go
4.83 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
netpoll_epoll.go
4.16 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
netpoll_fake.go
652 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
netpoll_kqueue.go
4.56 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
netpoll_os_test.go
360 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
netpoll_solaris.go
10.76 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
netpoll_stub.go
1.41 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
netpoll_windows.go
3.75 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
norace_linux_test.go
915 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
norace_test.go
983 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
numcpu_freebsd_test.go
381 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os2_aix.go
20.45 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os2_freebsd.go
302 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os2_openbsd.go
296 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os2_plan9.go
1.48 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os2_solaris.go
320 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os3_plan9.go
3.93 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os3_solaris.go
17.22 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_aix.go
8.61 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_android.go
463 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_darwin.go
12 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_darwin_arm64.go
416 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_dragonfly.go
6.96 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_freebsd.go
11.61 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_freebsd2.go
603 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_freebsd_amd64.go
658 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_freebsd_arm.go
1.32 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_freebsd_arm64.go
398 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_freebsd_noauxv.go
241 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_illumos.go
3.93 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_js.go
3.28 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux.go
26.14 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux_arm.go
1.35 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux_arm64.go
556 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux_be64.go
824 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux_generic.go
888 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux_loong64.go
485 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux_mips64x.go
1.07 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux_mipsx.go
1.06 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux_noauxv.go
337 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux_novdso.go
347 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux_ppc64x.go
526 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux_riscv64.go
198 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux_s390x.go
316 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_linux_x86.go
234 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_netbsd.go
9.8 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_netbsd_386.go
617 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_netbsd_amd64.go
614 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_netbsd_arm.go
1.16 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_netbsd_arm64.go
856 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_nonopenbsd.go
437 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_only_solaris.go
357 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_openbsd.go
6.55 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_openbsd_arm.go
749 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_openbsd_arm64.go
416 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_openbsd_libc.go
1.71 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_openbsd_mips64.go
416 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_openbsd_syscall.go
1.27 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_openbsd_syscall1.go
441 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_openbsd_syscall2.go
2.46 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_plan9.go
10.3 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_plan9_arm.go
462 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_solaris.go
6.55 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_windows.go
44.43 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_windows_arm.go
511 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
os_windows_arm64.go
339 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
panic.go
40.25 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
panic32.go
4.8 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
panic_test.go
1.71 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
plugin.go
4.26 KB
12/01/2022 06:13:00 PM
rw-r--r--
📁
pprof
-
12/01/2022 06:13:56 PM
rwxr-xr-x
📄
preempt.go
15.21 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
preempt_386.s
824 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
preempt_amd64.s
1.62 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
preempt_arm.s
1.48 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
preempt_arm64.s
1.97 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
preempt_loong64.s
2.35 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
preempt_mips64x.s
2.72 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
preempt_mipsx.s
2.68 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
preempt_nonwindows.go
290 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
preempt_ppc64x.s
2.72 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
preempt_riscv64.s
2.26 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
preempt_s390x.s
1.01 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
preempt_wasm.s
176 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
print.go
5.95 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
proc.go
176.84 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
proc_runtime_test.go
1.38 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
proc_test.go
25.66 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
profbuf.go
18.26 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
profbuf_test.go
8.65 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
proflabel.go
1.52 KB
12/01/2022 06:13:00 PM
rw-r--r--
📁
race
-
12/01/2022 06:13:56 PM
rwxr-xr-x
📄
race.go
18.58 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
race0.go
2.79 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
race_amd64.s
13.82 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
race_arm64.s
14.21 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
race_ppc64le.s
17.89 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
race_s390x.s
12 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
rand_test.go
907 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rdebug.go
553 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
relax_stub.go
598 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_aix_ppc64.s
4.33 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_android_386.s
822 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_android_amd64.s
754 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_android_arm.s
843 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_android_arm64.s
941 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_darwin_amd64.s
399 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_darwin_arm64.s
1.69 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_dragonfly_amd64.s
448 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_freebsd_386.s
454 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_freebsd_amd64.s
442 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_freebsd_arm.s
298 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_freebsd_arm64.s
1.88 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_illumos_amd64.s
311 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_ios_amd64.s
425 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_ios_arm64.s
425 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_js_wasm.s
2.3 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_linux_386.s
450 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_linux_amd64.s
307 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_linux_arm.s
1007 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_linux_arm64.s
1.81 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_linux_loong64.s
716 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_linux_mips64x.s
1014 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_linux_mipsx.s
797 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_linux_ppc64.s
928 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_linux_ppc64le.s
4.35 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_linux_riscv64.s
2.65 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_linux_s390x.s
676 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_netbsd_386.s
452 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_netbsd_amd64.s
309 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_netbsd_arm.s
296 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_netbsd_arm64.s
1.8 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_openbsd_386.s
454 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_openbsd_amd64.s
311 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_openbsd_arm.s
298 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_openbsd_arm64.s
1.96 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_openbsd_mips64.s
976 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_plan9_386.s
523 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_plan9_amd64.s
481 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_plan9_arm.s
397 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_solaris_amd64.s
311 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_windows_386.s
1.28 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_windows_amd64.s
986 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_windows_arm.s
386 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
rt0_windows_arm64.s
725 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
runtime-gdb.py
15.33 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
runtime-gdb_test.go
20.93 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
runtime-lldb_test.go
4.95 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
runtime.go
1.45 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
runtime1.go
13.06 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
runtime2.go
43.07 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
runtime_boring.go
606 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
runtime_linux_test.go
1.95 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
runtime_mmap_test.go
1.77 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
runtime_test.go
11.79 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
runtime_unix_test.go
1.22 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
rwmutex.go
3.53 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
rwmutex_test.go
4.19 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
select.go
14.84 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sema.go
16.16 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sema_test.go
4.21 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
semasleep_test.go
3.05 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sigaction.go
489 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_386.go
1.72 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_aix_ppc64.go
3.55 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_amd64.go
2.73 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_arm.go
2.54 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_arm64.go
3.21 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_darwin.go
2.13 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_darwin_amd64.go
4 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_darwin_arm64.go
3.6 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_dragonfly.go
2.17 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_dragonfly_amd64.go
2.01 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_freebsd.go
2.2 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_freebsd_386.go
1.55 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_freebsd_amd64.go
2.03 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_freebsd_arm.go
2.18 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_freebsd_arm64.go
3.23 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_linux_386.go
1.59 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_linux_amd64.go
2.05 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_linux_arm.go
2.12 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_linux_arm64.go
2.95 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_linux_loong64.go
3.22 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_linux_mips64x.go
3.35 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_linux_mipsx.go
3.67 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_linux_ppc64x.go
3.42 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_linux_riscv64.go
2.92 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_linux_s390x.go
4.49 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_loong64.go
3.09 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_mips64x.go
3.18 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_mipsx.go
3.06 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_netbsd.go
2.18 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_netbsd_386.go
1.76 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_netbsd_amd64.go
2.33 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_netbsd_arm.go
2.3 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_netbsd_arm64.go
3.4 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_openbsd.go
2.18 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_openbsd_386.go
1.58 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_openbsd_amd64.go
2.04 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_openbsd_arm.go
2.12 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_openbsd_arm64.go
3.38 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_openbsd_mips64.go
3.28 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_plan9.go
1.93 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_ppc64x.go
3.64 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_riscv64.go
2.89 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_solaris.go
4.5 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_solaris_amd64.go
2.47 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_unix.go
41.88 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_windows.go
9.27 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
signal_windows_test.go
5.29 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sigqueue.go
7.66 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sigqueue_note.go
648 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
sigqueue_plan9.go
3.25 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sigtab_aix.go
11.3 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sigtab_linux_generic.go
3.52 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sigtab_linux_mipsx.go
5.95 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sizeclasses.go
9.14 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sizeof_test.go
893 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
slice.go
9.87 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
slice_test.go
10.32 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
softfloat64.go
11.54 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
softfloat64_test.go
4.04 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
stack.go
45.05 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
stack_test.go
22.39 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
string.go
13.18 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
string_test.go
12.61 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs.go
19.37 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs2.go
1.13 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs3.go
274 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs_386.go
550 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs_amd64.go
1.2 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs_arm.go
531 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs_arm64.go
555 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs_linux.go
650 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs_loong64.go
276 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs_mips64x.go
364 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs_mipsx.go
283 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs_nonlinux.go
298 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs_ppc64.go
301 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs_ppc64x.go
453 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs_riscv64.go
460 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
stubs_s390x.go
256 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
symtab.go
35.81 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
symtab_test.go
7.48 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_aix_ppc64.s
7.42 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_arm.go
521 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_arm64.go
469 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_darwin.go
17.92 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_darwin_amd64.s
19.12 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_darwin_arm64.go
1.74 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_darwin_arm64.s
15.95 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_dragonfly_amd64.s
8.03 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_freebsd_386.s
8.41 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_freebsd_amd64.s
10.7 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_freebsd_arm.s
10.12 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_freebsd_arm64.s
9.4 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_libc.go
1.84 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_linux_386.s
18.31 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_linux_amd64.s
16.57 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_linux_arm.s
16.12 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_linux_arm64.s
18.09 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_linux_loong64.s
12.15 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_linux_mips64x.s
13.5 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_linux_mipsx.s
11.09 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_linux_ppc64x.s
22.1 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_linux_riscv64.s
12.59 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_linux_s390x.s
13.78 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_loong64.go
489 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_mips64x.go
500 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_mipsx.go
496 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_netbsd_386.s
9.55 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_netbsd_amd64.s
9.51 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_netbsd_arm.s
10.41 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_netbsd_arm64.s
9.38 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_nonppc64x.go
245 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_openbsd.go
2.59 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_openbsd1.go
1.23 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_openbsd2.go
8.36 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_openbsd3.go
3.37 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_openbsd_386.s
20.03 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_openbsd_amd64.s
16.64 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_openbsd_arm.s
18.15 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_openbsd_arm64.s
14.84 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_openbsd_mips64.s
8.6 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_plan9_386.s
4.48 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_plan9_amd64.s
4.55 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_plan9_arm.s
7.03 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_ppc64x.go
532 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_riscv64.go
469 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_s390x.go
469 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_solaris_amd64.s
6.42 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_wasm.go
754 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_wasm.s
2.65 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_windows_386.s
7.65 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_windows_amd64.s
8.88 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_windows_arm.s
11.97 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_windows_arm64.s
11.45 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
sys_x86.go
552 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
syscall2_solaris.go
1.65 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
syscall_aix.go
6 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
syscall_solaris.go
8.01 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
syscall_windows.go
16.95 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
syscall_windows_test.go
32.96 KB
12/01/2022 06:13:00 PM
rw-r--r--
📁
testdata
-
12/01/2022 06:13:56 PM
rwxr-xr-x
📄
textflag.h
1.52 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
time.go
30.75 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
time_fake.go
2.5 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
time_linux_amd64.s
2.02 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
time_nofake.go
709 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
time_test.go
2.03 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
time_windows.h
753 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
time_windows_386.s
1.79 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
time_windows_amd64.s
871 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
time_windows_arm.s
2.1 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
time_windows_arm64.s
1021 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
timeasm.go
418 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
timestub.go
532 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
timestub2.go
314 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
tls_arm.s
3.45 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
tls_arm64.h
1.1 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
tls_arm64.s
1.2 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
tls_loong64.s
589 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
tls_mips64x.s
733 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
tls_mipsx.s
709 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
tls_ppc64x.s
1.5 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
tls_riscv64.s
726 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
tls_s390x.s
1.55 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
tls_stub.go
260 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
tls_windows_amd64.go
294 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📁
trace
-
12/01/2022 06:13:56 PM
rwxr-xr-x
📄
trace.go
45.8 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
traceback.go
48.18 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
traceback_test.go
11.64 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
type.go
17.43 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
typekind.go
742 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
utf8.go
3.39 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_elf32.go
2.76 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_elf64.go
2.84 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_freebsd.go
2.44 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_freebsd_arm.go
454 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_freebsd_arm64.go
443 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_freebsd_x86.go
1.85 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_in_none.go
443 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_linux.go
7.77 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_linux_386.go
669 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_linux_amd64.go
685 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_linux_arm.go
669 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_linux_arm64.go
670 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_linux_loong64.go
793 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_linux_mips64x.go
850 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_linux_ppc64x.go
672 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_linux_riscv64.go
666 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
vdso_linux_s390x.go
681 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
vlop_386.s
2.02 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
vlop_arm.s
7.06 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
vlop_arm_test.go
3.75 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
vlrt.go
6.71 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
wincallback.go
3.45 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
write_err.go
291 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
write_err_android.go
4.65 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
zcallback_windows.go
155 bytes
12/01/2022 06:13:00 PM
rw-r--r--
📄
zcallback_windows.s
63.02 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
zcallback_windows_arm.s
89.32 KB
12/01/2022 06:13:00 PM
rw-r--r--
📄
zcallback_windows_arm64.s
89.32 KB
12/01/2022 06:13:00 PM
rw-r--r--
Editing: hash_test.go
Close
// Copyright 2013 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package runtime_test import ( "fmt" "math" "math/rand" . "runtime" "strings" "testing" "unsafe" ) func TestMemHash32Equality(t *testing.T) { if *UseAeshash { t.Skip("skipping since AES hash implementation is used") } var b [4]byte r := rand.New(rand.NewSource(1234)) seed := uintptr(r.Uint64()) for i := 0; i < 100; i++ { randBytes(r, b[:]) got := MemHash32(unsafe.Pointer(&b), seed) want := MemHash(unsafe.Pointer(&b), seed, 4) if got != want { t.Errorf("MemHash32(%x, %v) = %v; want %v", b, seed, got, want) } } } func TestMemHash64Equality(t *testing.T) { if *UseAeshash { t.Skip("skipping since AES hash implementation is used") } var b [8]byte r := rand.New(rand.NewSource(1234)) seed := uintptr(r.Uint64()) for i := 0; i < 100; i++ { randBytes(r, b[:]) got := MemHash64(unsafe.Pointer(&b), seed) want := MemHash(unsafe.Pointer(&b), seed, 8) if got != want { t.Errorf("MemHash64(%x, %v) = %v; want %v", b, seed, got, want) } } } // Smhasher is a torture test for hash functions. // https://code.google.com/p/smhasher/ // This code is a port of some of the Smhasher tests to Go. // // The current AES hash function passes Smhasher. Our fallback // hash functions don't, so we only enable the difficult tests when // we know the AES implementation is available. // Sanity checks. // hash should not depend on values outside key. // hash should not depend on alignment. func TestSmhasherSanity(t *testing.T) { r := rand.New(rand.NewSource(1234)) const REP = 10 const KEYMAX = 128 const PAD = 16 const OFFMAX = 16 for k := 0; k < REP; k++ { for n := 0; n < KEYMAX; n++ { for i := 0; i < OFFMAX; i++ { var b [KEYMAX + OFFMAX + 2*PAD]byte var c [KEYMAX + OFFMAX + 2*PAD]byte randBytes(r, b[:]) randBytes(r, c[:]) copy(c[PAD+i:PAD+i+n], b[PAD:PAD+n]) if BytesHash(b[PAD:PAD+n], 0) != BytesHash(c[PAD+i:PAD+i+n], 0) { t.Errorf("hash depends on bytes outside key") } } } } } type HashSet struct { m map[uintptr]struct{} // set of hashes added n int // number of hashes added } func newHashSet() *HashSet { return &HashSet{make(map[uintptr]struct{}), 0} } func (s *HashSet) add(h uintptr) { s.m[h] = struct{}{} s.n++ } func (s *HashSet) addS(x string) { s.add(StringHash(x, 0)) } func (s *HashSet) addB(x []byte) { s.add(BytesHash(x, 0)) } func (s *HashSet) addS_seed(x string, seed uintptr) { s.add(StringHash(x, seed)) } func (s *HashSet) check(t *testing.T) { const SLOP = 50.0 collisions := s.n - len(s.m) pairs := int64(s.n) * int64(s.n-1) / 2 expected := float64(pairs) / math.Pow(2.0, float64(hashSize)) stddev := math.Sqrt(expected) if float64(collisions) > expected+SLOP*(3*stddev+1) { t.Errorf("unexpected number of collisions: got=%d mean=%f stddev=%f threshold=%f", collisions, expected, stddev, expected+SLOP*(3*stddev+1)) } } // a string plus adding zeros must make distinct hashes func TestSmhasherAppendedZeros(t *testing.T) { s := "hello" + strings.Repeat("\x00", 256) h := newHashSet() for i := 0; i <= len(s); i++ { h.addS(s[:i]) } h.check(t) } // All 0-3 byte strings have distinct hashes. func TestSmhasherSmallKeys(t *testing.T) { h := newHashSet() var b [3]byte for i := 0; i < 256; i++ { b[0] = byte(i) h.addB(b[:1]) for j := 0; j < 256; j++ { b[1] = byte(j) h.addB(b[:2]) if !testing.Short() { for k := 0; k < 256; k++ { b[2] = byte(k) h.addB(b[:3]) } } } } h.check(t) } // Different length strings of all zeros have distinct hashes. func TestSmhasherZeros(t *testing.T) { N := 256 * 1024 if testing.Short() { N = 1024 } h := newHashSet() b := make([]byte, N) for i := 0; i <= N; i++ { h.addB(b[:i]) } h.check(t) } // Strings with up to two nonzero bytes all have distinct hashes. func TestSmhasherTwoNonzero(t *testing.T) { if GOARCH == "wasm" { t.Skip("Too slow on wasm") } if testing.Short() { t.Skip("Skipping in short mode") } h := newHashSet() for n := 2; n <= 16; n++ { twoNonZero(h, n) } h.check(t) } func twoNonZero(h *HashSet, n int) { b := make([]byte, n) // all zero h.addB(b) // one non-zero byte for i := 0; i < n; i++ { for x := 1; x < 256; x++ { b[i] = byte(x) h.addB(b) b[i] = 0 } } // two non-zero bytes for i := 0; i < n; i++ { for x := 1; x < 256; x++ { b[i] = byte(x) for j := i + 1; j < n; j++ { for y := 1; y < 256; y++ { b[j] = byte(y) h.addB(b) b[j] = 0 } } b[i] = 0 } } } // Test strings with repeats, like "abcdabcdabcdabcd..." func TestSmhasherCyclic(t *testing.T) { if testing.Short() { t.Skip("Skipping in short mode") } r := rand.New(rand.NewSource(1234)) const REPEAT = 8 const N = 1000000 for n := 4; n <= 12; n++ { h := newHashSet() b := make([]byte, REPEAT*n) for i := 0; i < N; i++ { b[0] = byte(i * 79 % 97) b[1] = byte(i * 43 % 137) b[2] = byte(i * 151 % 197) b[3] = byte(i * 199 % 251) randBytes(r, b[4:n]) for j := n; j < n*REPEAT; j++ { b[j] = b[j-n] } h.addB(b) } h.check(t) } } // Test strings with only a few bits set func TestSmhasherSparse(t *testing.T) { if GOARCH == "wasm" { t.Skip("Too slow on wasm") } if testing.Short() { t.Skip("Skipping in short mode") } sparse(t, 32, 6) sparse(t, 40, 6) sparse(t, 48, 5) sparse(t, 56, 5) sparse(t, 64, 5) sparse(t, 96, 4) sparse(t, 256, 3) sparse(t, 2048, 2) } func sparse(t *testing.T, n int, k int) { b := make([]byte, n/8) h := newHashSet() setbits(h, b, 0, k) h.check(t) } // set up to k bits at index i and greater func setbits(h *HashSet, b []byte, i int, k int) { h.addB(b) if k == 0 { return } for j := i; j < len(b)*8; j++ { b[j/8] |= byte(1 << uint(j&7)) setbits(h, b, j+1, k-1) b[j/8] &= byte(^(1 << uint(j&7))) } } // Test all possible combinations of n blocks from the set s. // "permutation" is a bad name here, but it is what Smhasher uses. func TestSmhasherPermutation(t *testing.T) { if GOARCH == "wasm" { t.Skip("Too slow on wasm") } if testing.Short() { t.Skip("Skipping in short mode") } permutation(t, []uint32{0, 1, 2, 3, 4, 5, 6, 7}, 8) permutation(t, []uint32{0, 1 << 29, 2 << 29, 3 << 29, 4 << 29, 5 << 29, 6 << 29, 7 << 29}, 8) permutation(t, []uint32{0, 1}, 20) permutation(t, []uint32{0, 1 << 31}, 20) permutation(t, []uint32{0, 1, 2, 3, 4, 5, 6, 7, 1 << 29, 2 << 29, 3 << 29, 4 << 29, 5 << 29, 6 << 29, 7 << 29}, 6) } func permutation(t *testing.T, s []uint32, n int) { b := make([]byte, n*4) h := newHashSet() genPerm(h, b, s, 0) h.check(t) } func genPerm(h *HashSet, b []byte, s []uint32, n int) { h.addB(b[:n]) if n == len(b) { return } for _, v := range s { b[n] = byte(v) b[n+1] = byte(v >> 8) b[n+2] = byte(v >> 16) b[n+3] = byte(v >> 24) genPerm(h, b, s, n+4) } } type Key interface { clear() // set bits all to 0 random(r *rand.Rand) // set key to something random bits() int // how many bits key has flipBit(i int) // flip bit i of the key hash() uintptr // hash the key name() string // for error reporting } type BytesKey struct { b []byte } func (k *BytesKey) clear() { for i := range k.b { k.b[i] = 0 } } func (k *BytesKey) random(r *rand.Rand) { randBytes(r, k.b) } func (k *BytesKey) bits() int { return len(k.b) * 8 } func (k *BytesKey) flipBit(i int) { k.b[i>>3] ^= byte(1 << uint(i&7)) } func (k *BytesKey) hash() uintptr { return BytesHash(k.b, 0) } func (k *BytesKey) name() string { return fmt.Sprintf("bytes%d", len(k.b)) } type Int32Key struct { i uint32 } func (k *Int32Key) clear() { k.i = 0 } func (k *Int32Key) random(r *rand.Rand) { k.i = r.Uint32() } func (k *Int32Key) bits() int { return 32 } func (k *Int32Key) flipBit(i int) { k.i ^= 1 << uint(i) } func (k *Int32Key) hash() uintptr { return Int32Hash(k.i, 0) } func (k *Int32Key) name() string { return "int32" } type Int64Key struct { i uint64 } func (k *Int64Key) clear() { k.i = 0 } func (k *Int64Key) random(r *rand.Rand) { k.i = uint64(r.Uint32()) + uint64(r.Uint32())<<32 } func (k *Int64Key) bits() int { return 64 } func (k *Int64Key) flipBit(i int) { k.i ^= 1 << uint(i) } func (k *Int64Key) hash() uintptr { return Int64Hash(k.i, 0) } func (k *Int64Key) name() string { return "int64" } type EfaceKey struct { i any } func (k *EfaceKey) clear() { k.i = nil } func (k *EfaceKey) random(r *rand.Rand) { k.i = uint64(r.Int63()) } func (k *EfaceKey) bits() int { // use 64 bits. This tests inlined interfaces // on 64-bit targets and indirect interfaces on // 32-bit targets. return 64 } func (k *EfaceKey) flipBit(i int) { k.i = k.i.(uint64) ^ uint64(1)<<uint(i) } func (k *EfaceKey) hash() uintptr { return EfaceHash(k.i, 0) } func (k *EfaceKey) name() string { return "Eface" } type IfaceKey struct { i interface { F() } } type fInter uint64 func (x fInter) F() { } func (k *IfaceKey) clear() { k.i = nil } func (k *IfaceKey) random(r *rand.Rand) { k.i = fInter(r.Int63()) } func (k *IfaceKey) bits() int { // use 64 bits. This tests inlined interfaces // on 64-bit targets and indirect interfaces on // 32-bit targets. return 64 } func (k *IfaceKey) flipBit(i int) { k.i = k.i.(fInter) ^ fInter(1)<<uint(i) } func (k *IfaceKey) hash() uintptr { return IfaceHash(k.i, 0) } func (k *IfaceKey) name() string { return "Iface" } // Flipping a single bit of a key should flip each output bit with 50% probability. func TestSmhasherAvalanche(t *testing.T) { if GOARCH == "wasm" { t.Skip("Too slow on wasm") } if testing.Short() { t.Skip("Skipping in short mode") } avalancheTest1(t, &BytesKey{make([]byte, 2)}) avalancheTest1(t, &BytesKey{make([]byte, 4)}) avalancheTest1(t, &BytesKey{make([]byte, 8)}) avalancheTest1(t, &BytesKey{make([]byte, 16)}) avalancheTest1(t, &BytesKey{make([]byte, 32)}) avalancheTest1(t, &BytesKey{make([]byte, 200)}) avalancheTest1(t, &Int32Key{}) avalancheTest1(t, &Int64Key{}) avalancheTest1(t, &EfaceKey{}) avalancheTest1(t, &IfaceKey{}) } func avalancheTest1(t *testing.T, k Key) { const REP = 100000 r := rand.New(rand.NewSource(1234)) n := k.bits() // grid[i][j] is a count of whether flipping // input bit i affects output bit j. grid := make([][hashSize]int, n) for z := 0; z < REP; z++ { // pick a random key, hash it k.random(r) h := k.hash() // flip each bit, hash & compare the results for i := 0; i < n; i++ { k.flipBit(i) d := h ^ k.hash() k.flipBit(i) // record the effects of that bit flip g := &grid[i] for j := 0; j < hashSize; j++ { g[j] += int(d & 1) d >>= 1 } } } // Each entry in the grid should be about REP/2. // More precisely, we did N = k.bits() * hashSize experiments where // each is the sum of REP coin flips. We want to find bounds on the // sum of coin flips such that a truly random experiment would have // all sums inside those bounds with 99% probability. N := n * hashSize var c float64 // find c such that Prob(mean-c*stddev < x < mean+c*stddev)^N > .9999 for c = 0.0; math.Pow(math.Erf(c/math.Sqrt(2)), float64(N)) < .9999; c += .1 { } c *= 4.0 // allowed slack - we don't need to be perfectly random mean := .5 * REP stddev := .5 * math.Sqrt(REP) low := int(mean - c*stddev) high := int(mean + c*stddev) for i := 0; i < n; i++ { for j := 0; j < hashSize; j++ { x := grid[i][j] if x < low || x > high { t.Errorf("bad bias for %s bit %d -> bit %d: %d/%d\n", k.name(), i, j, x, REP) } } } } // All bit rotations of a set of distinct keys func TestSmhasherWindowed(t *testing.T) { t.Logf("32 bit keys") windowed(t, &Int32Key{}) t.Logf("64 bit keys") windowed(t, &Int64Key{}) t.Logf("string keys") windowed(t, &BytesKey{make([]byte, 128)}) } func windowed(t *testing.T, k Key) { if GOARCH == "wasm" { t.Skip("Too slow on wasm") } if PtrSize == 4 { // This test tends to be flaky on 32-bit systems. // There's not enough bits in the hash output, so we // expect a nontrivial number of collisions, and it is // often quite a bit higher than expected. See issue 43130. t.Skip("Flaky on 32-bit systems") } if testing.Short() { t.Skip("Skipping in short mode") } const BITS = 16 for r := 0; r < k.bits(); r++ { h := newHashSet() for i := 0; i < 1<<BITS; i++ { k.clear() for j := 0; j < BITS; j++ { if i>>uint(j)&1 != 0 { k.flipBit((j + r) % k.bits()) } } h.add(k.hash()) } h.check(t) } } // All keys of the form prefix + [A-Za-z0-9]*N + suffix. func TestSmhasherText(t *testing.T) { if testing.Short() { t.Skip("Skipping in short mode") } text(t, "Foo", "Bar") text(t, "FooBar", "") text(t, "", "FooBar") } func text(t *testing.T, prefix, suffix string) { const N = 4 const S = "ABCDEFGHIJKLMNOPQRSTabcdefghijklmnopqrst0123456789" const L = len(S) b := make([]byte, len(prefix)+N+len(suffix)) copy(b, prefix) copy(b[len(prefix)+N:], suffix) h := newHashSet() c := b[len(prefix):] for i := 0; i < L; i++ { c[0] = S[i] for j := 0; j < L; j++ { c[1] = S[j] for k := 0; k < L; k++ { c[2] = S[k] for x := 0; x < L; x++ { c[3] = S[x] h.addB(b) } } } } h.check(t) } // Make sure different seed values generate different hashes. func TestSmhasherSeed(t *testing.T) { h := newHashSet() const N = 100000 s := "hello" for i := 0; i < N; i++ { h.addS_seed(s, uintptr(i)) } h.check(t) } // size of the hash output (32 or 64 bits) const hashSize = 32 + int(^uintptr(0)>>63<<5) func randBytes(r *rand.Rand, b []byte) { for i := range b { b[i] = byte(r.Uint32()) } } func benchmarkHash(b *testing.B, n int) { s := strings.Repeat("A", n) for i := 0; i < b.N; i++ { StringHash(s, 0) } b.SetBytes(int64(n)) } func BenchmarkHash5(b *testing.B) { benchmarkHash(b, 5) } func BenchmarkHash16(b *testing.B) { benchmarkHash(b, 16) } func BenchmarkHash64(b *testing.B) { benchmarkHash(b, 64) } func BenchmarkHash1024(b *testing.B) { benchmarkHash(b, 1024) } func BenchmarkHash65536(b *testing.B) { benchmarkHash(b, 65536) } func TestArrayHash(t *testing.T) { // Make sure that "" in arrays hash correctly. The hash // should at least scramble the input seed so that, e.g., // {"","foo"} and {"foo",""} have different hashes. // If the hash is bad, then all (8 choose 4) = 70 keys // have the same hash. If so, we allocate 70/8 = 8 // overflow buckets. If the hash is good we don't // normally allocate any overflow buckets, and the // probability of even one or two overflows goes down rapidly. // (There is always 1 allocation of the bucket array. The map // header is allocated on the stack.) f := func() { // Make the key type at most 128 bytes. Otherwise, // we get an allocation per key. type key [8]string m := make(map[key]bool, 70) // fill m with keys that have 4 "foo"s and 4 ""s. for i := 0; i < 256; i++ { var k key cnt := 0 for j := uint(0); j < 8; j++ { if i>>j&1 != 0 { k[j] = "foo" cnt++ } } if cnt == 4 { m[k] = true } } if len(m) != 70 { t.Errorf("bad test: (8 choose 4) should be 70, not %d", len(m)) } } if n := testing.AllocsPerRun(10, f); n > 6 { t.Errorf("too many allocs %f - hash not balanced", n) } } func TestStructHash(t *testing.T) { // See the comment in TestArrayHash. f := func() { type key struct { a, b, c, d, e, f, g, h string } m := make(map[key]bool, 70) // fill m with keys that have 4 "foo"s and 4 ""s. for i := 0; i < 256; i++ { var k key cnt := 0 if i&1 != 0 { k.a = "foo" cnt++ } if i&2 != 0 { k.b = "foo" cnt++ } if i&4 != 0 { k.c = "foo" cnt++ } if i&8 != 0 { k.d = "foo" cnt++ } if i&16 != 0 { k.e = "foo" cnt++ } if i&32 != 0 { k.f = "foo" cnt++ } if i&64 != 0 { k.g = "foo" cnt++ } if i&128 != 0 { k.h = "foo" cnt++ } if cnt == 4 { m[k] = true } } if len(m) != 70 { t.Errorf("bad test: (8 choose 4) should be 70, not %d", len(m)) } } if n := testing.AllocsPerRun(10, f); n > 6 { t.Errorf("too many allocs %f - hash not balanced", n) } } var sink uint64 func BenchmarkAlignedLoad(b *testing.B) { var buf [16]byte p := unsafe.Pointer(&buf[0]) var s uint64 for i := 0; i < b.N; i++ { s += ReadUnaligned64(p) } sink = s } func BenchmarkUnalignedLoad(b *testing.B) { var buf [16]byte p := unsafe.Pointer(&buf[1]) var s uint64 for i := 0; i < b.N; i++ { s += ReadUnaligned64(p) } sink = s } func TestCollisions(t *testing.T) { if testing.Short() { t.Skip("Skipping in short mode") } for i := 0; i < 16; i++ { for j := 0; j < 16; j++ { if j == i { continue } var a [16]byte m := make(map[uint16]struct{}, 1<<16) for n := 0; n < 1<<16; n++ { a[i] = byte(n) a[j] = byte(n >> 8) m[uint16(BytesHash(a[:], 0))] = struct{}{} } if len(m) <= 1<<15 { t.Errorf("too many collisions i=%d j=%d outputs=%d out of 65536\n", i, j, len(m)) } } } }