tailscale/cmd/tailscaled
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>
2024-02-09 15:19:27 -08:00
..
childproc all: update copyright and license headers 2023-01-27 15:36:29 -08:00
debug.go net/netmon: make ChangeFunc's signature take new ChangeDelta, not bool 2023-08-23 10:42:14 -07:00
depaware.txt util/rands: add Shuffle and Perm functions with on-stack RNG state 2024-02-09 15:19:27 -08:00
generate.go cmd/mkmanifest, cmd/tailscale, cmd/tailscaled: remove Windows arm32 resources from OSS 2023-03-01 15:45:12 -07:00
install_darwin.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
install_windows.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
manifest_windows_386.syso cmd/{tailscale,tailscaled}: embed manifest into Windows binaries 2022-11-21 18:15:51 -05:00
manifest_windows_amd64.syso cmd/{tailscale,tailscaled}: embed manifest into Windows binaries 2022-11-21 18:15:51 -05:00
manifest_windows_arm64.syso cmd/{tailscale,tailscaled}: embed manifest into Windows binaries 2022-11-21 18:15:51 -05:00
proxy.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
required_version.go all: require Go 1.21 2023-08-08 21:15:08 -07:00
sigpipe.go all: adjust some build tags for plan9 2023-08-24 15:42:35 -07:00
ssh.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
taildrop.go taildrop: remove breaking abstraction layers for apple (#10728) 2024-01-09 14:11:34 -06:00
tailscaled_bird.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
tailscaled_notwindows.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
tailscaled_test.go util/linuxfw: remove yet-unused code to fix linux/arm64 crash 2023-07-20 23:18:40 -07:00
tailscaled_windows.go cmd/tailscaled, util/winutil: changes to process and token APIs in winutil 2023-11-15 12:07:19 -07:00
tailscaled.defaults cmd/tailscaled: rename relaynode reference in defaults file comment 2020-03-13 14:38:04 -07:00
tailscaled.go tailfs: initial implementation 2024-02-09 09:13:51 -06:00
tailscaled.openrc tstest/integration/vms: use an in-process logcatcher (#2360) 2021-07-08 14:39:45 -04:00
tailscaled.service cmd/tailscaled: use explicit equal sign in --port=$PORT in tailscaled.service 2022-09-22 11:54:22 -07:00
windows-manifest.xml cmd/{tailscale,tailscaled}: embed manifest into Windows binaries 2022-11-21 18:15:51 -05:00
with_cli.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00