You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/cmd
James Tucker 24bac27632 util/rands: add Shuffle and Perm functions with on-stack RNG state
The new math/rand/v2 package includes an m-local global random number
generator that can not be reseeded by the user, which is suitable for
most uses without the RNG pools we have in a number of areas of the code
base.

The new API still does not have an allocation-free way of performing a
seeded operations, due to the long term compiler bug around interface
parameter escapes, and the Source interface.

This change introduces the two APIs that math/rand/v2 can not yet
replace efficiently: seeded Perm() and Shuffle() operations. This
implementation chooses to use the PCG random source from math/rand/v2,
as with sufficient compiler optimization, this source should boil down
to only two on-stack registers for random state under ideal conditions.

Updates #17243

Signed-off-by: James Tucker <james@tailscale.com>
4 months ago
..
addlicense all: update tools that manage copyright headers 1 year ago
build-webclient client/web: precompress assets 6 months ago
cloner cmd/cloner: fix typo in test type's name 9 months ago
connector-gen cmd/connector-gen: add helper tool for wide app connector configurations 6 months ago
containerboot cmd/{containerboot,k8s-operator/deploy/manifests}: optionally allow proxying cluster traffic to a cluster target via ingress proxy (#11036) 4 months ago
derper tailfs: initial implementation 4 months ago
derpprobe prober: migrate to Prometheus metric library 1 year ago
dist cmd/dist: update logs for synology builds 4 months ago
get-authkey util/cmpx: delete now that we're using Go 1.22 4 months ago
gitops-pusher cmd/gitops-pusher: only use OAuth creds if non-empty string 4 months ago
hello cmd/hello: link to the Hello KB article (#11022) 5 months ago
k8s-operator cmd/{containerboot,k8s-operator/deploy/manifests}: optionally allow proxying cluster traffic to a cluster target via ingress proxy (#11036) 4 months ago
mkmanifest cmd/mkmanifest, cmd/tailscale, cmd/tailscaled: remove Windows arm32 resources from OSS 1 year ago
mkpkg go.mod: upgrade nfpm to v2 (#8786) 11 months ago
mkversion version/mkversion: open-source version generation logic 1 year ago
nardump all: update copyright and license headers 1 year ago
netlogfmt util/cmpx: remove code that's in the stdlib now 6 months ago
nginx-auth tailcfg,all: add and use Node.IsTagged() 1 year ago
pgproxy various: add golangci-lint, fix issues (#7905) 1 year ago
printdep cmd/printdep: print correct toolchain URL 1 year ago
proxy-to-grafana tailcfg,all: add and use Node.IsTagged() 1 year ago
sniproxy appc,cmd/sniproxy,ipn/ipnlocal: split sniproxy configuration code out of appc 8 months ago
speedtest all: update copyright and license headers 1 year ago
ssh-auth-none-demo all: replace deprecated ioutil references 10 months ago
stunc all: update copyright and license headers 1 year ago
stund util/cmpx: delete now that we're using Go 1.22 4 months ago
sync-containers all: adjust some build tags for plan9 10 months ago
tailscale tailfs: initial implementation 4 months ago
tailscaled util/rands: add Shuffle and Perm functions with on-stack RNG state 4 months ago
testcontrol all: update copyright and license headers 1 year ago
testwrapper all: cleanup unused code, part 2 (#10670) 6 months ago
tsconnect tailfs: initial implementation 4 months ago
tsidp cmd/tsidp: add start of OIDC Tailscale IdP 7 months ago
tsshd all: update copyright and license headers 1 year ago
viewer cmd/cloner: add regression test for slice nil/empty semantics 9 months ago