Repository navigation
Merged
Conversation
…1-CPU VM) With 300 ms idle and a line every 100 ms, one sleep overrunning by 200 ms failed the test: 16 of 20 runs on an Arch container with one CPU at host load 45, 0 of 20 at load 25. shortIdle now takes the timeout; the silent command test keeps 300 ms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
go-yenc-simd v0.1.2 decodes with NEON on arm64 (about 5-8 GB/s on an Apple M1 or a Neoverse N2, from its README), x86 unchanged (re-measured on the EPYC: Go/C ratio 1.42, was 1.43). The release notes no longer say ARM has no SIMD, and the rapidyenc Linux files need glibc 2.34 (not 2.35: both binaries reference symbols up to GLIBC_2.34 and run on AlmaLinux/Rocky 9). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tested distros The rapidyenc .deb declared no dependencies, so dpkg would install it where the binary can't start (Debian 11, glibc 2.31). purego stays without Depends (static). README: on Alpine take purego, the rapidyenc Linux files need glibc 2.34 and libstdc++; the C variant builds on musl from source; the distros it was built and tested on (18 VMs); gcc 7 drops rapidyenc's VBMI2 kernel. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… add whole-article speed Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
For v0.2.2.
Crash fix (from go-yenc-simd v0.1.2): the purego builds of v0.0.8 to v0.2.1 crash with SIGILL when decoding on x86-64 CPUs that have AVX but not AVX2: Intel Sandy Bridge/Ivy Bridge, AMD Bulldozer/Piledriver/Steamroller and Jaguar, which are common in older NAS boxes and home servers. Those builds use
GOEXPERIMENT=simd, and go-yenc-simd's AVX kernel built its constants withVPBROADCASTB, an AVX2 instruction. Checked by disassembly: v0.2.1 and v0.0.8 built from their tags have 6 and 7 of them insteps16; this branch has 0. The rapidyenc builds were hit only with-yencgoor-benchmark. AVX2 and AVX-512 CPUs were never affected.go-yenc-simd v0.1.2: NEON on arm64: on an Apple M1 or a Neoverse N2 the decode kernel does about 5–8 GB/s on random data, a whole article with CRC 2–3.4 GB/s (figures from go-yenc-simd's README). The release notes quote no x86 speedups. The release notes' "Which file?" text no longer says ARM has no SIMD.
rapidyenc .deb: now
Depends: libc6 (>= 2.34), libstdc++6. It had no dependencies, so dpkg would install it on systems where the binary can't start (Debian 11, glibc 2.31). purego stays without dependencies (static). Checked:apt install ./…rapidyenc.debon Debian 13.glibc 2.34, not 2.35: both rapidyenc Linux binaries (amd64, arm64) use symbols up to GLIBC_2.34 and run on AlmaLinux/Rocky/CentOS 9. The release notes and README say so; on Alpine (musl) take purego.
Distro test, 18 VMs (amd64, AVX2): AlmaLinux 9/10, Alpine 3.22–3.24, Arch, CentOS Stream 9/10, Debian 13, Gentoo, openEuler 25.03, openSUSE Leap 15.6/16.0, Rocky 9/10, Ubuntu 24.04/25.04/26.04. On each:
go test ./...for both;-benchmark;Everything passes, except the rapidyenc release binary on Alpine (glibc-only, expected). With gcc 7 (Leap 15.6), rapidyenc builds without its AVX-512 VBMI2 kernel; the README mentions it.
Test fix:
TestIdleTimeoutKeepsSlowTransferfailed in 16 of 20 runs on a 1-CPU container at host load 45 (300 ms idle timeout, a line every 100 ms). It now uses a 1 s timeout; 0 of 20 fail.Tests:
go test ./...with and without-tags rapidyenc(GOEXPERIMENT=simd),go vet,go mod verify; built both .debs withDEB=1 scripts/build-release.sh.🤖 Generated with Claude Code