From deb593dac639679cd658bf52f62763f3996679af Mon Sep 17 00:00:00 2001 From: Michael Primeaux Date: Fri, 16 Jan 2026 14:25:14 -0600 Subject: [PATCH] debt: Upgraded to Go 1.25.6 and nanoid 1.60.0 --- .goreleaser.yaml | 6 +- CHANGELOG/CHANGELOG-1.x.md | 18 +- README.md | 4 +- go.mod | 8 +- go.sum | 16 +- .../sixafter/nanoid/.goreleaser.yaml | 6 +- vendor/github.com/sixafter/nanoid/README.md | 4 +- vendor/github.com/sixafter/nanoid/config.go | 2 +- vendor/golang.org/x/sys/cpu/cpu_x86.go | 174 +++++++++++++----- vendor/modules.txt | 8 +- 10 files changed, 168 insertions(+), 78 deletions(-) diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 1d89df4..3d3ef99 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -85,13 +85,13 @@ changelog: - title: "🎉 Features" regexp: '(?i)^.*?feature(\([[:word:]]+\))??!?:.+$' order: 0 - - title: "🐛 Defects" + - title: "🛠 Defects" regexp: '(?i)^.*?defect(\([[:word:]]+\))??!?:.+$' order: 1 - - title: "🛠 Technical Debt" + - title: "⚖️ Technical Debt" regexp: '(?i)^.*?debt(\([[:word:]]+\))??!?:.+$' order: 1 - - title: "🚀 Technical Risk" + - title: "⚠️ Technical Risk" regexp: '(?i)^.*?risk(\([[:word:]]+\))??!?:.+$' order: 1 - title: Others diff --git a/CHANGELOG/CHANGELOG-1.x.md b/CHANGELOG/CHANGELOG-1.x.md index 91e9d45..3848322 100644 --- a/CHANGELOG/CHANGELOG-1.x.md +++ b/CHANGELOG/CHANGELOG-1.x.md @@ -19,6 +19,21 @@ Date format: `YYYY-MM-DD` --- +## [1.45.0] - 2026-01-16 + +### Added +### Changed +- **debt:** Upgraded dependencies to their latest stable versions. +- **debt:** Upgraded to [Go 1.25.6](https://go.dev/doc/devel/release#go1.25.6). +- **debt:** Upgraded to [sixafter/nanoid@v1.60.0](https://github.com/sixafter/nanoid/releases/tag/v1.60.0). + +### Deprecated +### Removed +### Fixed +### Security + +--- + ## [1.44.0] - 2025-12-29 ### Added @@ -724,7 +739,8 @@ Date format: `YYYY-MM-DD` ### Fixed ### Security -[Unreleased]: https://github.com/sixafter/nanoid-cli/compare/v1.44.0...HEAD +[Unreleased]: https://github.com/sixafter/nanoid-cli/compare/v1.45.0...HEAD +[1.45.0]: https://github.com/sixafter/nanoid-cli/compare/v1.44.0...v1.45.0 [1.44.0]: https://github.com/sixafter/nanoid-cli/compare/v1.43.0...v1.44.0 [1.43.0]: https://github.com/sixafter/nanoid-cli/compare/v1.42.0...v1.43.0 [1.42.0]: https://github.com/sixafter/nanoid-cli/compare/v1.41.0...v1.42.0 diff --git a/README.md b/README.md index ef6618f..434a4d0 100644 --- a/README.md +++ b/README.md @@ -34,10 +34,10 @@ using the [NanoID](https://github.com/sixafter/nanoid) Go implementation. To verify the integrity of the release, you can use Cosign to check the signature and checksums. Follow these steps: ```sh -# Fetch the latest release tag from GitHub API (e.g., "v1.41.0") +# Fetch the latest release tag from GitHub API (e.g., "v1.45.0") TAG=$(curl -s https://api.github.com/repos/sixafter/nanoid-cli/releases/latest | jq -r .tag_name) -# Remove leading "v" for filenames (e.g., "v1.41.0" -> "1.41.0") +# Remove leading "v" for filenames (e.g., "v1.45.0" -> "1.45.0") VERSION=${TAG#v} # --------------------------------------------------------------------- diff --git a/go.mod b/go.mod index c0a3d04..c6c4305 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ go 1.25 require ( github.com/dustin/go-humanize v1.0.1 - github.com/sixafter/nanoid v1.59.0 + github.com/sixafter/nanoid v1.60.0 github.com/sixafter/semver v1.12.0 github.com/spf13/cobra v1.10.2 github.com/stretchr/testify v1.11.1 @@ -20,9 +20,9 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/sixafter/aes-ctr-drbg v1.15.0 // indirect - github.com/sixafter/prng-chacha v1.12.0 // indirect + github.com/sixafter/prng-chacha v1.13.0 // indirect github.com/spf13/pflag v1.0.10 // indirect - golang.org/x/crypto v0.46.0 // indirect - golang.org/x/sys v0.39.0 // indirect + golang.org/x/crypto v0.47.0 // indirect + golang.org/x/sys v0.40.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 8395cdd..d9d9b39 100644 --- a/go.sum +++ b/go.sum @@ -12,10 +12,10 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sixafter/aes-ctr-drbg v1.15.0 h1:xsB6UkaMY1xyk1E+c6TjyYfJMQRuQLjpQggrxjtr2zI= github.com/sixafter/aes-ctr-drbg v1.15.0/go.mod h1:k0MnzFOGf7ks7ixN/N72wQAT/7u+lIknQWa7H9Iqew4= -github.com/sixafter/nanoid v1.59.0 h1:DywNPAnRYkHF2K0vOniFsbdtUCUb5J+TSW+1L0E4pMc= -github.com/sixafter/nanoid v1.59.0/go.mod h1:dVZXxHMZ74z+0nCCIrvgJqwaUhQLuiKj5kevHmz1EAY= -github.com/sixafter/prng-chacha v1.12.0 h1:6b2kqh7/qfNsHkT2u6ni8Tr2PO26azvQwQsk1M4JgtY= -github.com/sixafter/prng-chacha v1.12.0/go.mod h1:o0pZhHQUWC8eTFFJUBH4gp9a9fwRGrxyCf+vzMMVzmk= +github.com/sixafter/nanoid v1.60.0 h1:2pa2pnZAVaPo4DMZbKD4RZSVM6T4p8diAa5WjAPqX4c= +github.com/sixafter/nanoid v1.60.0/go.mod h1:KBt17DT93aFRlpIKc5eDBOsG0u//BUbMF51FS7/AFtQ= +github.com/sixafter/prng-chacha v1.13.0 h1:s5mfePJUXeITWn1aJ/A58P2qPcYDDdRAyuhV+J/Vg7w= +github.com/sixafter/prng-chacha v1.13.0/go.mod h1:uM3IEKbZzhBN4MatK14P+ei8l2WC9UDRlwu+ToRYwAA= github.com/sixafter/semver v1.12.0 h1:OAC3ux2sExqKOJSPnxpeBTyprEfAKHna0OBh6SdhXRQ= github.com/sixafter/semver v1.12.0/go.mod h1:kIkw1gO0r6JtGoOam9xesWKqOFUH8kfTViLVbiC4WmA= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= @@ -26,12 +26,12 @@ github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3A github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU= -golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0= +golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= +golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= golang.org/x/exp v0.0.0-20250813145105-42675adae3e6 h1:SbTAbRFnd5kjQXbczszQ0hdk3ctwYf3qBNH9jIsGclE= golang.org/x/exp v0.0.0-20250813145105-42675adae3e6/go.mod h1:4QTo5u+SEIbbKW1RacMZq1YEfOBqeXa19JeshGi+zc4= -golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= -golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= +golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/vendor/github.com/sixafter/nanoid/.goreleaser.yaml b/vendor/github.com/sixafter/nanoid/.goreleaser.yaml index ccac5f9..0300fdf 100644 --- a/vendor/github.com/sixafter/nanoid/.goreleaser.yaml +++ b/vendor/github.com/sixafter/nanoid/.goreleaser.yaml @@ -89,13 +89,13 @@ changelog: - title: "🎉 Features" regexp: '(?i)^.*?feature(\([[:word:]]+\))??!?:.+$' order: 0 - - title: "🐛 Defects" + - title: "🛠 Defects" regexp: '(?i)^.*?defect(\([[:word:]]+\))??!?:.+$' order: 1 - - title: "🛠 Technical Debt" + - title: "⚖️ Technical Debt" regexp: '(?i)^.*?debt(\([[:word:]]+\))??!?:.+$' order: 1 - - title: "🚀 Technical Risk" + - title: "⚠️ Technical Risk" regexp: '(?i)^.*?risk(\([[:word:]]+\))??!?:.+$' order: 1 - title: Others diff --git a/vendor/github.com/sixafter/nanoid/README.md b/vendor/github.com/sixafter/nanoid/README.md index 3952ffb..a12e5d6 100644 --- a/vendor/github.com/sixafter/nanoid/README.md +++ b/vendor/github.com/sixafter/nanoid/README.md @@ -65,10 +65,10 @@ Please see the [nanoid-cli](https://github.com/sixafter/nanoid-cli) for a comman To verify the integrity of the release, you can use Cosign to check the signature and checksums. Follow these steps: ```sh -# Fetch the latest release tag from GitHub API (e.g., "v1.59.0") +# Fetch the latest release tag from GitHub API (e.g., "v1.60.0") TAG=$(curl -s https://api.github.com/repos/sixafter/nanoid/releases/latest | jq -r .tag_name) -# Remove leading "v" for filenames (e.g., "v1.59.0" -> "1.59.0") +# Remove leading "v" for filenames (e.g., "v1.60.0" -> "1.60.0") VERSION=${TAG#v} # --------------------------------------------------------------------- diff --git a/vendor/github.com/sixafter/nanoid/config.go b/vendor/github.com/sixafter/nanoid/config.go index 551b387..d70296e 100644 --- a/vendor/github.com/sixafter/nanoid/config.go +++ b/vendor/github.com/sixafter/nanoid/config.go @@ -505,7 +505,7 @@ func (r *runtimeConfig) Mask() uint { // RandReader returns the source of randomness used for generating IDs. // -// It is typically a cryptographically secure random number generator (e.g., crypto/rand.Reader). +// This is typically a cryptographically secure random number generator (e.g., crypto/rand.Reader). func (r *runtimeConfig) RandReader() io.Reader { return r.randReader } diff --git a/vendor/golang.org/x/sys/cpu/cpu_x86.go b/vendor/golang.org/x/sys/cpu/cpu_x86.go index 1e642f3..f5723d4 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_x86.go +++ b/vendor/golang.org/x/sys/cpu/cpu_x86.go @@ -64,6 +64,80 @@ func initOptions() { func archInit() { + // From internal/cpu + const ( + // eax bits + cpuid_AVXVNNI = 1 << 4 + + // ecx bits + cpuid_SSE3 = 1 << 0 + cpuid_PCLMULQDQ = 1 << 1 + cpuid_AVX512VBMI = 1 << 1 + cpuid_AVX512VBMI2 = 1 << 6 + cpuid_SSSE3 = 1 << 9 + cpuid_AVX512GFNI = 1 << 8 + cpuid_AVX512VAES = 1 << 9 + cpuid_AVX512VNNI = 1 << 11 + cpuid_AVX512BITALG = 1 << 12 + cpuid_FMA = 1 << 12 + cpuid_AVX512VPOPCNTDQ = 1 << 14 + cpuid_SSE41 = 1 << 19 + cpuid_SSE42 = 1 << 20 + cpuid_POPCNT = 1 << 23 + cpuid_AES = 1 << 25 + cpuid_OSXSAVE = 1 << 27 + cpuid_AVX = 1 << 28 + + // "Extended Feature Flag" bits returned in EBX for CPUID EAX=0x7 ECX=0x0 + cpuid_BMI1 = 1 << 3 + cpuid_AVX2 = 1 << 5 + cpuid_BMI2 = 1 << 8 + cpuid_ERMS = 1 << 9 + cpuid_AVX512F = 1 << 16 + cpuid_AVX512DQ = 1 << 17 + cpuid_ADX = 1 << 19 + cpuid_AVX512CD = 1 << 28 + cpuid_SHA = 1 << 29 + cpuid_AVX512BW = 1 << 30 + cpuid_AVX512VL = 1 << 31 + + // "Extended Feature Flag" bits returned in ECX for CPUID EAX=0x7 ECX=0x0 + cpuid_AVX512_VBMI = 1 << 1 + cpuid_AVX512_VBMI2 = 1 << 6 + cpuid_GFNI = 1 << 8 + cpuid_AVX512VPCLMULQDQ = 1 << 10 + cpuid_AVX512_BITALG = 1 << 12 + + // edx bits + cpuid_FSRM = 1 << 4 + // edx bits for CPUID 0x80000001 + cpuid_RDTSCP = 1 << 27 + ) + // Additional constants not in internal/cpu + const ( + // eax=1: edx + cpuid_SSE2 = 1 << 26 + // eax=1: ecx + cpuid_CX16 = 1 << 13 + cpuid_RDRAND = 1 << 30 + // eax=7,ecx=0: ebx + cpuid_RDSEED = 1 << 18 + cpuid_AVX512IFMA = 1 << 21 + cpuid_AVX512PF = 1 << 26 + cpuid_AVX512ER = 1 << 27 + // eax=7,ecx=0: edx + cpuid_AVX5124VNNIW = 1 << 2 + cpuid_AVX5124FMAPS = 1 << 3 + cpuid_AMXBF16 = 1 << 22 + cpuid_AMXTile = 1 << 24 + cpuid_AMXInt8 = 1 << 25 + // eax=7,ecx=1: eax + cpuid_AVX512BF16 = 1 << 5 + cpuid_AVXIFMA = 1 << 23 + // eax=7,ecx=1: edx + cpuid_AVXVNNIInt8 = 1 << 4 + ) + Initialized = true maxID, _, _, _ := cpuid(0, 0) @@ -73,90 +147,90 @@ func archInit() { } _, _, ecx1, edx1 := cpuid(1, 0) - X86.HasSSE2 = isSet(26, edx1) - - X86.HasSSE3 = isSet(0, ecx1) - X86.HasPCLMULQDQ = isSet(1, ecx1) - X86.HasSSSE3 = isSet(9, ecx1) - X86.HasFMA = isSet(12, ecx1) - X86.HasCX16 = isSet(13, ecx1) - X86.HasSSE41 = isSet(19, ecx1) - X86.HasSSE42 = isSet(20, ecx1) - X86.HasPOPCNT = isSet(23, ecx1) - X86.HasAES = isSet(25, ecx1) - X86.HasOSXSAVE = isSet(27, ecx1) - X86.HasRDRAND = isSet(30, ecx1) + X86.HasSSE2 = isSet(edx1, cpuid_SSE2) + + X86.HasSSE3 = isSet(ecx1, cpuid_SSE3) + X86.HasPCLMULQDQ = isSet(ecx1, cpuid_PCLMULQDQ) + X86.HasSSSE3 = isSet(ecx1, cpuid_SSSE3) + X86.HasFMA = isSet(ecx1, cpuid_FMA) + X86.HasCX16 = isSet(ecx1, cpuid_CX16) + X86.HasSSE41 = isSet(ecx1, cpuid_SSE41) + X86.HasSSE42 = isSet(ecx1, cpuid_SSE42) + X86.HasPOPCNT = isSet(ecx1, cpuid_POPCNT) + X86.HasAES = isSet(ecx1, cpuid_AES) + X86.HasOSXSAVE = isSet(ecx1, cpuid_OSXSAVE) + X86.HasRDRAND = isSet(ecx1, cpuid_RDRAND) var osSupportsAVX, osSupportsAVX512 bool // For XGETBV, OSXSAVE bit is required and sufficient. if X86.HasOSXSAVE { eax, _ := xgetbv() // Check if XMM and YMM registers have OS support. - osSupportsAVX = isSet(1, eax) && isSet(2, eax) + osSupportsAVX = isSet(eax, 1<<1) && isSet(eax, 1<<2) if runtime.GOOS == "darwin" { // Darwin requires special AVX512 checks, see cpu_darwin_x86.go osSupportsAVX512 = osSupportsAVX && darwinSupportsAVX512() } else { // Check if OPMASK and ZMM registers have OS support. - osSupportsAVX512 = osSupportsAVX && isSet(5, eax) && isSet(6, eax) && isSet(7, eax) + osSupportsAVX512 = osSupportsAVX && isSet(eax, 1<<5) && isSet(eax, 1<<6) && isSet(eax, 1<<7) } } - X86.HasAVX = isSet(28, ecx1) && osSupportsAVX + X86.HasAVX = isSet(ecx1, cpuid_AVX) && osSupportsAVX if maxID < 7 { return } eax7, ebx7, ecx7, edx7 := cpuid(7, 0) - X86.HasBMI1 = isSet(3, ebx7) - X86.HasAVX2 = isSet(5, ebx7) && osSupportsAVX - X86.HasBMI2 = isSet(8, ebx7) - X86.HasERMS = isSet(9, ebx7) - X86.HasRDSEED = isSet(18, ebx7) - X86.HasADX = isSet(19, ebx7) - - X86.HasAVX512 = isSet(16, ebx7) && osSupportsAVX512 // Because avx-512 foundation is the core required extension + X86.HasBMI1 = isSet(ebx7, cpuid_BMI1) + X86.HasAVX2 = isSet(ebx7, cpuid_AVX2) && osSupportsAVX + X86.HasBMI2 = isSet(ebx7, cpuid_BMI2) + X86.HasERMS = isSet(ebx7, cpuid_ERMS) + X86.HasRDSEED = isSet(ebx7, cpuid_RDSEED) + X86.HasADX = isSet(ebx7, cpuid_ADX) + + X86.HasAVX512 = isSet(ebx7, cpuid_AVX512F) && osSupportsAVX512 // Because avx-512 foundation is the core required extension if X86.HasAVX512 { X86.HasAVX512F = true - X86.HasAVX512CD = isSet(28, ebx7) - X86.HasAVX512ER = isSet(27, ebx7) - X86.HasAVX512PF = isSet(26, ebx7) - X86.HasAVX512VL = isSet(31, ebx7) - X86.HasAVX512BW = isSet(30, ebx7) - X86.HasAVX512DQ = isSet(17, ebx7) - X86.HasAVX512IFMA = isSet(21, ebx7) - X86.HasAVX512VBMI = isSet(1, ecx7) - X86.HasAVX5124VNNIW = isSet(2, edx7) - X86.HasAVX5124FMAPS = isSet(3, edx7) - X86.HasAVX512VPOPCNTDQ = isSet(14, ecx7) - X86.HasAVX512VPCLMULQDQ = isSet(10, ecx7) - X86.HasAVX512VNNI = isSet(11, ecx7) - X86.HasAVX512GFNI = isSet(8, ecx7) - X86.HasAVX512VAES = isSet(9, ecx7) - X86.HasAVX512VBMI2 = isSet(6, ecx7) - X86.HasAVX512BITALG = isSet(12, ecx7) + X86.HasAVX512CD = isSet(ebx7, cpuid_AVX512CD) + X86.HasAVX512ER = isSet(ebx7, cpuid_AVX512ER) + X86.HasAVX512PF = isSet(ebx7, cpuid_AVX512PF) + X86.HasAVX512VL = isSet(ebx7, cpuid_AVX512VL) + X86.HasAVX512BW = isSet(ebx7, cpuid_AVX512BW) + X86.HasAVX512DQ = isSet(ebx7, cpuid_AVX512DQ) + X86.HasAVX512IFMA = isSet(ebx7, cpuid_AVX512IFMA) + X86.HasAVX512VBMI = isSet(ecx7, cpuid_AVX512_VBMI) + X86.HasAVX5124VNNIW = isSet(edx7, cpuid_AVX5124VNNIW) + X86.HasAVX5124FMAPS = isSet(edx7, cpuid_AVX5124FMAPS) + X86.HasAVX512VPOPCNTDQ = isSet(ecx7, cpuid_AVX512VPOPCNTDQ) + X86.HasAVX512VPCLMULQDQ = isSet(ecx7, cpuid_AVX512VPCLMULQDQ) + X86.HasAVX512VNNI = isSet(ecx7, cpuid_AVX512VNNI) + X86.HasAVX512GFNI = isSet(ecx7, cpuid_AVX512GFNI) + X86.HasAVX512VAES = isSet(ecx7, cpuid_AVX512VAES) + X86.HasAVX512VBMI2 = isSet(ecx7, cpuid_AVX512VBMI2) + X86.HasAVX512BITALG = isSet(ecx7, cpuid_AVX512BITALG) } - X86.HasAMXTile = isSet(24, edx7) - X86.HasAMXInt8 = isSet(25, edx7) - X86.HasAMXBF16 = isSet(22, edx7) + X86.HasAMXTile = isSet(edx7, cpuid_AMXTile) + X86.HasAMXInt8 = isSet(edx7, cpuid_AMXInt8) + X86.HasAMXBF16 = isSet(edx7, cpuid_AMXBF16) // These features depend on the second level of extended features. if eax7 >= 1 { eax71, _, _, edx71 := cpuid(7, 1) if X86.HasAVX512 { - X86.HasAVX512BF16 = isSet(5, eax71) + X86.HasAVX512BF16 = isSet(eax71, cpuid_AVX512BF16) } if X86.HasAVX { - X86.HasAVXIFMA = isSet(23, eax71) - X86.HasAVXVNNI = isSet(4, eax71) - X86.HasAVXVNNIInt8 = isSet(4, edx71) + X86.HasAVXIFMA = isSet(eax71, cpuid_AVXIFMA) + X86.HasAVXVNNI = isSet(eax71, cpuid_AVXVNNI) + X86.HasAVXVNNIInt8 = isSet(edx71, cpuid_AVXVNNIInt8) } } } -func isSet(bitpos uint, value uint32) bool { - return value&(1<