100 Commits
Author SHA1 Message Date
andrew b11e92ee0b Merge pull request 'Move aarch64 Node16 SIMD index loads into assembly' (#76) from weaselbot/conflict-set:weaselbot/issue-68 into main
CI / pre-commit (push) Successful in 2m2s
CI / test (arm64, -DCMAKE_BUILD_TYPE=Debug -DMSAN_TOOLCHAIN_PATH=/opt/msan, 22, https://minio.weaselab.dev/public/aarch64/msan-toolchain-22.1.8.tar.zst, debug-arm64, ubuntu-latest-arm64) (push) Successful in 3m46s
CI / test (amd64, -DCMAKE_BUILD_TYPE=Debug -DMSAN_TOOLCHAIN_PATH=/opt/msan, 21, https://minio.weaselab.dev/public/x86_64/msan-toolchain-21.1.8.tar.zst, debug, ubuntu-latest-amd64) (push) Successful in 3m54s
CI / release (arm64, , ubuntu-latest-arm64) (push) Successful in 3m22s
CI / test (amd64, -DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 21, , 64-bit-versions, ubuntu-latest-amd64) (push) Successful in 3m23s
CI / test (amd64, -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, 21, , gcc, ubuntu-latest-amd64) (push) Successful in 3m17s
CI / test (amd64, -DUSE_SIMD_FALLBACK=ON, 21, , simd-fallback, ubuntu-latest-amd64) (push) Successful in 3m21s
CI / release (amd64, -DMSAN_TOOLCHAIN_PATH=/opt/msan, ubuntu-latest-amd64) (push) Successful in 5m42s
CI / coverage (push) Successful in 3m56s
Reviewed-on: #76
2026-08-03 13:42:45 +00:00
andrew b0e326aacc Merge pull request 'ci: run MSan on arm64' (#74) from weaselbot/conflict-set:weaselbot/issue-73 into main
CI / test (arm64, -DCMAKE_BUILD_TYPE=Debug -DMSAN_TOOLCHAIN_PATH=/opt/msan, 22, https://minio.weaselab.dev/public/aarch64/msan-toolchain-22.1.8.tar.zst, debug-arm64, ubuntu-latest-arm64) (push) Successful in 3m47s
CI / release (arm64, , ubuntu-latest-arm64) (push) Successful in 3m22s
CI / pre-commit (push) Successful in 2m1s
CI / test (amd64, -DCMAKE_BUILD_TYPE=Debug -DMSAN_TOOLCHAIN_PATH=/opt/msan, 21, https://minio.weaselab.dev/public/x86_64/msan-toolchain-21.1.8.tar.zst, debug, ubuntu-latest-amd64) (push) Successful in 3m49s
CI / test (amd64, -DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 21, , 64-bit-versions, ubuntu-latest-amd64) (push) Successful in 3m20s
CI / test (amd64, -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, 21, , gcc, ubuntu-latest-amd64) (push) Successful in 3m16s
CI / test (amd64, -DUSE_SIMD_FALLBACK=ON, 21, , simd-fallback, ubuntu-latest-amd64) (push) Successful in 3m20s
CI / release (amd64, -DMSAN_TOOLCHAIN_PATH=/opt/msan, ubuntu-latest-amd64) (push) Successful in 5m33s
CI / coverage (push) Successful in 3m49s
Reviewed-on: #74
2026-08-03 12:27:49 +00:00
andrew 1179c1f56e Merge pull request 'Fix ARM NEON scan helpers truncating 64-bit versions' (#75) from weaselbot/conflict-set:weaselbot/issue-69 into main
CI / pre-commit (push) Successful in 2m1s
CI / release (arm64, , ubuntu-latest-arm64) (push) Successful in 3m24s
CI / test (-DCMAKE_BUILD_TYPE=Debug -DMSAN_TOOLCHAIN_PATH=/opt/msan, debug) (push) Successful in 3m52s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m20s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m15s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m20s
CI / release (amd64, -DMSAN_TOOLCHAIN_PATH=/opt/msan, ubuntu-latest-amd64) (push) Successful in 5m36s
CI / coverage (push) Successful in 3m49s
Reviewed-on: #75
2026-08-03 12:26:03 +00:00
andrew bdbac1556d Merge pull request 'Correct rationale in simd_x86_64.S comment' (#72) from weaselbot/conflict-set:weaselbot/issue-71 into main
CI / pre-commit (push) Successful in 2m5s
CI / test (-DCMAKE_BUILD_TYPE=Debug -DMSAN_TOOLCHAIN_PATH=/opt/msan, debug) (push) Successful in 3m51s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m19s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m13s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m17s
CI / release (arm64, , ubuntu-latest-arm64) (push) Successful in 3m27s
CI / coverage (push) Successful in 3m54s
CI / release (amd64, -DMSAN_TOOLCHAIN_PATH=/opt/msan, ubuntu-latest-amd64) (push) Successful in 5m57s
Reviewed-on: #72
2026-08-03 04:59:26 +00:00
andrew 0103837488 Merge pull request 'Run valgrind in arm64 release in CI' (#70) from valgrind-in-arm into main
CI / release (arm64, , ubuntu-latest-arm64) (push) Successful in 3m19s
CI / pre-commit (push) Successful in 2m2s
CI / test (-DCMAKE_BUILD_TYPE=Debug -DMSAN_TOOLCHAIN_PATH=/opt/msan, debug) (push) Successful in 3m51s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m18s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m13s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m17s
CI / release (amd64, -DMSAN_TOOLCHAIN_PATH=/opt/msan, ubuntu-latest-amd64) (push) Successful in 5m38s
CI / coverage (push) Successful in 3m49s
Reviewed-on: #70
2026-08-03 04:34:34 +00:00
andrew 79113ecb88 Run valgrind in arm64 release in CI
CI / release (arm64, , ubuntu-latest-arm64) (push) Successful in 3m22s
CI / release (arm64, , ubuntu-latest-arm64) (pull_request) Successful in 3m21s
CI / pre-commit (push) Successful in 2m37s
CI / test (-DCMAKE_BUILD_TYPE=Debug -DMSAN_TOOLCHAIN_PATH=/opt/msan, debug) (push) Successful in 3m50s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m22s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m12s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m17s
CI / release (amd64, -DMSAN_TOOLCHAIN_PATH=/opt/msan, ubuntu-latest-amd64) (push) Successful in 5m32s
CI / coverage (push) Successful in 3m50s
CI / pre-commit (pull_request) Successful in 2m2s
CI / test (-DCMAKE_BUILD_TYPE=Debug -DMSAN_TOOLCHAIN_PATH=/opt/msan, debug) (pull_request) Successful in 3m51s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (pull_request) Successful in 3m18s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (pull_request) Successful in 3m14s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (pull_request) Successful in 3m19s
CI / release (amd64, -DMSAN_TOOLCHAIN_PATH=/opt/msan, ubuntu-latest-amd64) (pull_request) Successful in 5m39s
CI / coverage (pull_request) Successful in 3m49s
2026-08-03 02:36:45 +00:00
andrew 5c16b8ee90 Add .note.gnu.property section for CET/CFI to simd_x86_64.S
CI / release (arm64, , ubuntu-latest-arm64) (push) Successful in 2m21s
CI / pre-commit (push) Successful in 2m1s
CI / test (-DCMAKE_BUILD_TYPE=Debug -DMSAN_TOOLCHAIN_PATH=/opt/msan, debug) (push) Successful in 3m48s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m18s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m15s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m17s
CI / release (amd64, -DMSAN_TOOLCHAIN_PATH=/opt/msan, ubuntu-latest-amd64) (push) Successful in 5m33s
CI / coverage (push) Successful in 3m47s
The assembly file was missing the GNU property note that records
control-flow integrity (CET) support, causing hardening-check to
report 'Control flow integrity: no, not found!'.  Add the note
matching what clang emits with -fcf-protection.
2026-08-02 22:31:56 -04:00
andrew b19981ee3c Only pass -stdlib=libc++ for c++
CI / pre-commit (push) Successful in 2m22s
CI / release (arm64, , ubuntu-latest-arm64) (push) Successful in 2m26s
CI / test (-DCMAKE_BUILD_TYPE=Debug -DMSAN_TOOLCHAIN_PATH=/opt/msan, debug) (push) Successful in 3m48s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m20s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m14s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m19s
CI / release (amd64, -DMSAN_TOOLCHAIN_PATH=/opt/msan, ubuntu-latest-amd64) (push) Failing after 5m3s
CI / coverage (push) Successful in 3m52s
2026-08-02 21:34:22 -04:00
andrew 12650e2132 Update README.md 2026-08-02 21:16:27 -04:00
andrew 6fed133212 Remove UB from indeterminate value handling
Move SIMD operations on potentially-indeterminate Node16::index bytes
into file-level assembly, where loading and operating on indeterminate
values is well-defined (unlike C++). Restructure scalar fallback loops
to iterate [0, numChildren) instead of [0, kMaxNodes). Fix TrivialSpan
construction from indeterminate pointers in check::Job::init and
insertPointWritesOrSorted to only construct when end.len > 0.

Add MSan toolchain to the debug CI build to catch these issues going
forward.
2026-08-02 21:06:53 -04:00
andrew 9d15af772e Run msan in CI. Closes #66
CI / pre-commit (push) Successful in 2m5s
CI / release (arm64, , ubuntu-latest-arm64) (push) Successful in 2m20s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m27s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m20s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m16s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m21s
CI / release (amd64, -DMSAN_TOOLCHAIN_PATH=/opt/msan, ubuntu-latest-amd64) (push) Successful in 5m47s
CI / coverage (push) Successful in 3m54s
2026-07-23 15:16:58 -04:00
andrew 22159c38c5 Add Grafana dashboard for server bench metrics
CI / pre-commit (push) Successful in 2m4s
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 2m26s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m23s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m21s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m16s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m19s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 5m24s
CI / coverage (push) Successful in 3m59s
2026-07-23 13:38:56 -04:00
andrew 8afe5ec75b Add new coverage to corpus
CI / pre-commit (push) Successful in 2m4s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m35s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m19s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m8s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m15s
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 2m18s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 5m10s
CI / coverage (push) Successful in 3m49s
2026-07-14 14:33:51 -04:00
andrew 6eaa0799d5 Update version
CI / pre-commit (push) Successful in 2m3s
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 2m18s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m27s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 5m1s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 5m34s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 5m37s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 9m2s
CI / coverage (push) Successful in 6m10s
This branch is going to be 0.1.x now
2026-07-14 12:26:13 -04:00
andrew cf783a0cdb ci: move LaTeX/paper deps to amd64-only release step
CI / pre-commit (push) Successful in 2m7s
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 2m16s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m21s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m14s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m12s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m14s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 5m18s
CI / coverage (push) Successful in 3m50s
2026-07-14 11:57:52 -04:00
andrew 16bd98ab12 Download mc from our minio
And remove vestigial dockerfile
2026-07-14 11:54:57 -04:00
andrew 374dcf13b7 ci: trim pre-commit deps; skip LLVM install for gcc matrix 2026-07-14 11:45:05 -04:00
andrew d96d862cea Merge pull request 'Fix null pointers passed to memcmp/memcpy in skip_list' (#65) from weaselbot/conflict-set:weaselbot/issue-64 into main
CI / pre-commit (push) Successful in 2m13s
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 3m36s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m38s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m34s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m40s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m30s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 5m7s
CI / coverage (push) Successful in 3m45s
Reviewed-on: #65
2026-07-13 21:55:52 +00:00
andrew d479f16204 Merge pull request 'Return 0 instead of -1 from hash_table getBytes()' (#63) from weaselbot/conflict-set:weaselbot/issue-62 into main
CI / pre-commit (push) Successful in 2m10s
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 3m31s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m37s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m30s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m38s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m30s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 5m0s
CI / coverage (push) Successful in 3m43s
Reviewed-on: #63
2026-07-08 13:58:42 +00:00
andrew 732d19efa1 Merge pull request 'Fix RealDataBench subspan and version API contract violations' (#61) from weaselbot/conflict-set:weaselbot/issue-58 into main
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 3m25s
CI / pre-commit (push) Successful in 2m4s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m39s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m30s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m39s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m31s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 4m59s
CI / coverage (push) Successful in 3m45s
Reviewed-on: #61
2026-06-29 18:49:58 +00:00
andrew 9449190d02 Merge pull request 'Fix undefined behavior on empty input in strinc() and prefixRange()' (#60) from weaselbot/conflict-set:weaselbot/issue-59 into main
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 3m26s
CI / pre-commit (push) Successful in 2m4s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m38s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m30s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m39s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m31s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 5m7s
CI / coverage (push) Successful in 3m45s
Reviewed-on: #60
2026-06-29 18:26:04 +00:00
andrew 8f9f345c64 Merge pull request 'Keep Python wrapper key buffers alive in WriteRange/ReadRange' (#43) from weaselbot/conflict-set:weaselbot/issue-42 into main
CI / pre-commit (push) Successful in 2m10s
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 3m32s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m39s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m31s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m41s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m30s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 4m58s
CI / coverage (push) Successful in 3m43s
Reviewed-on: #43
Reviewed-by: andrew <andrew@weaselab.dev>
2026-06-23 01:17:45 +00:00
andrew b9b2d69dd5 Merge pull request 'Disallow copying ConflictSet in C++98/C++03' (#51) from weaselbot/conflict-set:weaselbot/issue-48 into main
CI / pre-commit (push) Successful in 2m8s
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 3m34s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m38s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m28s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m37s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m29s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 4m57s
CI / coverage (push) Successful in 3m42s
Reviewed-on: #51
2026-06-22 23:44:59 +00:00
andrew d3c8f4afc6 Merge pull request 'Include <sys/syscall.h> in ServerBench.cpp for SYS_perf_event_open' (#44) from weaselbot/conflict-set:weaselbot/issue-41 into main
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 3m25s
CI / pre-commit (push) Successful in 2m4s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m36s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m30s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m39s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m29s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 4m58s
CI / coverage (push) Successful in 3m42s
Reviewed-on: #44
2026-06-22 20:01:43 +00:00
andrew 549724f09e Merge pull request 'Assert return values in test_update_zero_should_commit / conflict' (#50) from weaselbot/conflict-set:weaselbot/issue-49 into main
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 3m26s
CI / pre-commit (push) Successful in 2m5s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m35s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m28s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m38s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m28s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 4m56s
CI / coverage (push) Successful in 3m44s
Reviewed-on: #50
2026-06-22 19:29:55 +00:00
andrew 52eb13cc0b Merge pull request 'Fix CMake Unix Makefiles parallel build race for conflict-set.o' (#52) from weaselbot/conflict-set:weaselbot/issue-47 into main
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 3m22s
CI / pre-commit (push) Successful in 2m5s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m37s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m31s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m39s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m28s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 4m58s
CI / coverage (push) Successful in 3m42s
Reviewed-on: #52
2026-06-22 19:08:09 +00:00
andrew f30887f280 Merge pull request 'Fix move-assignment leak and self-assignment in ConflictSet' (#55) from weaselbot/conflict-set:weaselbot/issue-54 into main
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 3m25s
CI / pre-commit (push) Successful in 2m4s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m38s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m31s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m39s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m29s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 4m58s
CI / coverage (push) Successful in 3m48s
Reviewed-on: #55
2026-06-22 18:40:25 +00:00
andrew ccd637deab We already know __cplusplus is defined
CI / release (arm64, ubuntu-latest-arm64) (pull_request) Successful in 3m21s
CI / pre-commit (pull_request) Successful in 2m6s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (pull_request) Successful in 3m35s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (pull_request) Successful in 3m27s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (pull_request) Successful in 3m39s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (pull_request) Successful in 3m34s
CI / release (amd64, ubuntu-latest-amd64) (pull_request) Successful in 4m53s
CI / coverage (pull_request) Successful in 3m36s
2026-06-22 14:18:33 -04:00
andrew e9c904a86b CMakeLists.txt: don't require hardening-check --help to exit 0
CI / pre-commit (push) Successful in 2m9s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m39s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m37s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m41s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m37s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 5m3s
CI / coverage (push) Successful in 3m54s
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 3m25s
hardening-check --help returns exit code 1, so the previous
hardening_check_help_result EQUAL 0 guard skipped parsing the help
output entirely. As a result, architecture-specific flags such as
--nobranchprotection on x86_64 were never added to the test command.

Parse the help output regardless of exit code; the option-string regex
checks are sufficient.
2026-06-22 13:05:33 -04:00
andrew 789ae8cbb9 ci: install clang/LLVM 21 in Gitea Actions workflows
CI / pre-commit (push) Successful in 2m12s
CI / release (arm64, ubuntu-latest-arm64) (push) Failing after 3m14s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m37s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m49s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m30s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 4m58s
CI / coverage (push) Successful in 3m48s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m47s
Switch all CI jobs from the distro-packaged clang to the apt.llvm.org
clang-21 / llvm-21 toolchain, and register the versioned binaries as
alternatives so that CC/CXX=clang/clang++ and tools like llvm-cov and
llvm-objcopy use the newer release automatically.
2026-06-22 12:26:19 -04:00
andrew d70e6a2455 Merge pull request 'Set restype=None for void-returning C functions' (#53) from weaselbot/conflict-set:weaselbot/issue-46 into main
CI / release (arm64, ubuntu-latest-arm64) (push) Failing after 11m28s
CI / pre-commit (push) Successful in 2m5s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m37s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m29s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m38s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m28s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 5m3s
CI / coverage (push) Failing after 3m31s
Reviewed-on: #53
2026-06-22 01:12:47 +00:00
andrew 8a5168f232 CMakeLists: only pass hardening-check arch flags the tool supports
CI / release (arm64, ubuntu-latest-arm64) (push) Failing after 11m36s
CI / pre-commit (push) Successful in 2m14s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m44s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m41s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m45s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m29s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 4m59s
CI / coverage (push) Failing after 3m21s
The amd64 CI runner's hardening-check does not recognize
--nobranchprotection, causing the hardening_check test to fail at
configure time. Query the tool's help output and only include the
architecture-specific skip flags when they are advertised.
2026-06-21 21:07:26 -04:00
andrew 6d8b939a81 Replace CI Docker image with inline apt installs
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 3m32s
CI / pre-commit (push) Successful in 2m8s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 3m39s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 3m33s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 3m39s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 3m35s
CI / release (amd64, ubuntu-latest-amd64) (push) Failing after 4m28s
CI / coverage (push) Failing after 3m21s
Drops the build-image job and the private registry dependency entirely.
Each job now installs only the packages it needs, caching /var/cache/apt/archives
keyed on the workflow file and ~/.cache/pre-commit keyed on .pre-commit-config.yaml.
2026-06-21 19:21:04 -04:00
andrew 48f9ee46cf Pin CI steps that use bashisms to bash
CI / build-image (arm64, ubuntu-latest-arm64) (push) Successful in 5m45s
CI / build-image (amd64, ubuntu-latest-amd64) (push) Successful in 5m48s
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 2m56s
CI / pre-commit (push) Successful in 2m15s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 2m42s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 2m36s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 2m46s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 2m37s
CI / release (amd64, ubuntu-latest-amd64) (push) Successful in 3m0s
CI / coverage (push) Successful in 2m47s
CI / build-image (arm64, ubuntu-latest-arm64) (pull_request) Failing after 18s
CI / build-image (amd64, ubuntu-latest-amd64) (pull_request) Failing after 48s
CI / pre-commit (pull_request) Has been skipped
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (pull_request) Has been skipped
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (pull_request) Has been skipped
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (pull_request) Has been skipped
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (pull_request) Has been skipped
CI / release (amd64, ubuntu-latest-amd64) (pull_request) Has been skipped
CI / release (arm64, ubuntu-latest-arm64) (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
2026-06-12 18:05:57 -04:00
andrew f13a30e8aa Install biber in the CI image so the paper's bibliography builds 2026-06-12 18:04:49 -04:00
andrew 1394a1a98f Print test summaries to the step log too
CI / build-image (arm64, ubuntu-latest-arm64) (push) Successful in 20s
CI / build-image (amd64, ubuntu-latest-amd64) (push) Successful in 42s
CI / pre-commit (push) Successful in 33s
CI / release (arm64, ubuntu-latest-arm64) (push) Successful in 1m22s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 2m43s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 2m36s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 2m44s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 2m36s
CI / release (amd64, ubuntu-latest-amd64) (push) Failing after 2m42s
CI / coverage (push) Failing after 2m29s
Gitea doesn't render GITHUB_STEP_SUMMARY yet
(https://github.com/go-gitea/gitea/issues/36098), so tee the summary
into the log where it's actually visible. Keep writing the summary
file so it lights up if Gitea ships the feature.
2026-06-12 17:21:49 -04:00
andrew c52339a2ba Add markdown test summaries and a coverage HTML report to CI
CI / build-image (arm64, ubuntu-latest-arm64) (push) Successful in 24s
CI / build-image (amd64, ubuntu-latest-amd64) (push) Successful in 42s
CI / pre-commit (push) Successful in 33s
CI / release (arm64, ubuntu-latest-arm64) (push) Failing after 1m4s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 2m42s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 2m37s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 2m47s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 2m36s
CI / release (amd64, ubuntu-latest-amd64) (push) Failing after 2m42s
CI / coverage (push) Has been cancelled
ctest_summary.py renders a Test.xml as markdown for
GITHUB_STEP_SUMMARY: a one-liner when everything passes, otherwise the
first few failures inline with a link to the full Test.xml on MinIO.
It's also usable locally with --all to list every failure from a
downloaded Test.xml.

The coverage job now also generates and uploads gcovr's html-details
report and links it from the step summary.
2026-06-12 17:06:31 -04:00
andrew 3a82d90914 Work around arm64 clang codegen issues breaking CI
CI / build-image (arm64, ubuntu-latest-arm64) (push) Successful in 22s
CI / build-image (amd64, ubuntu-latest-amd64) (push) Successful in 42s
CI / pre-commit (push) Successful in 34s
CI / release (arm64, ubuntu-latest-arm64) (push) Failing after 1m7s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Successful in 2m35s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Successful in 2m27s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Successful in 2m35s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Successful in 2m27s
CI / release (amd64, ubuntu-latest-amd64) (push) Failing after 2m32s
CI / coverage (push) Failing after 2m20s
Disable preserve_none under ASan on aarch64: every clang tested (20,
21, trunk 22) miscompiles the continuation chains with that
combination, crashing ~97% of fuzz corpus tests. The chains still work
with the default calling convention. See #38.

Mark the masked Node3 scan results defined for valgrind on aarch64:
clang 21+ lowers the in-bounds tests through flags+csel, which
memcheck models imprecisely, tainting bits the mask provably clears.
See #39.

Skip valgrind tests in the arm64 release job, since -DNVALGRIND
compiles out the client requests the workaround relies on.

Both issues track filing upstream bugs.
2026-06-12 16:35:57 -04:00
andrew 0921d8fedf Fix arch-specific hardening_check and guard CI package upload globs
hardening-check tests both CET (x86-only) and branch protection
(arm64-only), so pass the ignore flag for whichever doesn't apply to
the build arch.

The release upload step runs with if: always() so test results are
uploaded even when an earlier step fails, but in that case cpack never
ran and mc errored on the unmatched package globs. Skip missing
packages instead.
2026-06-12 14:45:23 -04:00
andrew f947d883e7 Only pass -pie when linking executables
CI / build-image (arm64, ubuntu-latest-arm64) (push) Successful in 21s
CI / build-image (amd64, ubuntu-latest-amd64) (push) Successful in 42s
CI / pre-commit (push) Successful in 34s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Failing after 2m22s
CI / release (arm64, ubuntu-latest-arm64) (push) Failing after 2m50s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Failing after 2m18s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Failing after 2m26s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Failing after 2m16s
CI / release (amd64, ubuntu-latest-amd64) (push) Failing after 2m23s
CI / coverage (push) Failing after 2m16s
Passing -pie globally made the driver link Scrt1.o into shared
libraries, which fails with an undefined reference to main.
2026-06-12 13:58:54 -04:00
andrew 19f430d68f Add nodejs to the CI image
CI / build-image (arm64, ubuntu-latest-arm64) (push) Successful in 4m44s
CI / build-image (amd64, ubuntu-latest-amd64) (push) Successful in 5m13s
CI / pre-commit (push) Successful in 1m58s
CI / release (arm64, ubuntu-latest-arm64) (push) Failing after 4m1s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Failing after 2m18s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Failing after 2m13s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Failing after 1m22s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Failing after 2m12s
CI / release (amd64, ubuntu-latest-amd64) (push) Failing after 2m18s
CI / coverage (push) Failing after 2m12s
The runner executes JavaScript actions (checkout, cache) with node from
inside the job container, so custom container images must provide it.
2026-06-12 12:33:48 -04:00
andrew 13e9e88e0e Pass registry credentials via env instead of script interpolation
CI / build-image (arm64, ubuntu-latest-arm64) (push) Successful in 1m29s
CI / build-image (amd64, ubuntu-latest-amd64) (push) Successful in 1m50s
CI / pre-commit (push) Failing after 1m38s
CI / release (arm64, ubuntu-latest-arm64) (push) Failing after 1m49s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Failing after 42s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Failing after 42s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Failing after 41s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Failing after 41s
CI / release (amd64, ubuntu-latest-amd64) (push) Failing after 47s
CI / coverage (push) Failing after 44s
Template interpolation embeds the secret in the generated script file;
env indirection keeps it out of argv and off disk.
2026-06-12 12:21:19 -04:00
andrew 12a62a91cf Track the CI image hash with a label instead of a tag
CI / build-image (arm64, ubuntu-latest-arm64) (push) Failing after 3m47s
CI / build-image (amd64, ubuntu-latest-amd64) (push) Failing after 3m47s
CI / pre-commit (push) Has been skipped
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Has been skipped
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Has been skipped
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Has been skipped
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Has been skipped
CI / release (amd64, ubuntu-latest-amd64) (push) Has been skipped
CI / release (arm64, ubuntu-latest-arm64) (push) Has been skipped
CI / coverage (push) Has been skipped
Pushing per-hash tags accumulates multi-GB versions in the registry,
and package cleanup rules can't distinguish the hash tags that the
latest-{arch} tags currently point to from stale ones. Push only
latest-{arch} and record the Dockerfile hash as an image label; the
skip-rebuild check reads the label back via buildx imagetools.
2026-06-12 12:16:34 -04:00
andrew cbbb23bf9d Shrink the CI image
Replace texlive-full with the texlive packages the paper actually needs
(latexmk, latex-extra, pictures for TikZ, bibtex-extra, recommended
fonts), and use Ubuntu's valgrind instead of building 3.22 from source
- the distro version is newer now. Cuts the image by several GB and
removes the slowest step of the image build.
2026-06-12 12:12:10 -04:00
andrew 04d02261e9 Install clang from Ubuntu and push image from buildx
CI / pre-commit (push) Has been cancelled
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Has been cancelled
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Has been cancelled
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Has been cancelled
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Has been cancelled
CI / release (amd64, ubuntu-latest-amd64) (push) Has been cancelled
CI / release (arm64, ubuntu-latest-arm64) (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / build-image (amd64, ubuntu-latest-amd64) (push) Has been cancelled
CI / build-image (arm64, ubuntu-latest-arm64) (push) Has been cancelled
apt.llvm.org has no repository for the current ubuntu:rolling release,
and nothing pins clang 20 - CC=clang already resolved to the distro
clang. Drop the llvm.sh step along with its helper packages.

docker build now runs under the buildx docker-container driver, which
keeps the result in the build cache unless told otherwise, so push
directly from the build instead of tagging locally.
2026-06-12 12:06:45 -04:00
andrew dd8f006d3f Remove docker socket debug step and unneeded sudo
Jobs run as root in the job container; the earlier permission errors
were SELinux denials on the mounted podman socket, fixed in the runner
config with --security-opt label=disable.
2026-06-12 11:58:30 -04:00
andrew 776d06963b Add temporary docker socket debug step
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Has been skipped
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Has been skipped
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Has been skipped
CI / release (arm64, ubuntu-latest-arm64) (push) Has been skipped
CI / build-image (amd64, ubuntu-latest-amd64) (push) Failing after 55s
CI / pre-commit (push) Has been cancelled
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Has been cancelled
CI / release (amd64, ubuntu-latest-amd64) (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / build-image (arm64, ubuntu-latest-arm64) (push) Has been cancelled
2026-06-12 11:52:51 -04:00
andrew e03afe0651 Run docker with sudo in build-image
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Has been skipped
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Has been skipped
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Has been skipped
CI / release (arm64, ubuntu-latest-arm64) (push) Has been skipped
CI / build-image (amd64, ubuntu-latest-amd64) (push) Failing after 2s
CI / build-image (arm64, ubuntu-latest-arm64) (push) Failing after 21s
CI / pre-commit (push) Has been skipped
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Has been skipped
CI / release (amd64, ubuntu-latest-amd64) (push) Has been skipped
CI / coverage (push) Has been skipped
The default job image runs as a non-root user that lacks access to the
mounted docker socket.
2026-06-12 11:30:28 -04:00
andrew 6eecf6e4ac Use a registry bot account for the container registry
CI / build-image (arm64, ubuntu-latest-arm64) (push) Failing after 21s
CI / pre-commit (push) Has been cancelled
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Has been cancelled
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Has been cancelled
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Has been cancelled
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Has been cancelled
CI / release (amd64, ubuntu-latest-amd64) (push) Has been cancelled
CI / release (arm64, ubuntu-latest-arm64) (push) Has been cancelled
CI / coverage (push) Has been cancelled
CI / build-image (amd64, ubuntu-latest-amd64) (push) Has been cancelled
Gitea's ephemeral Actions token is not accepted by the container
registry, so docker login and image pulls use REGISTRY_USER /
REGISTRY_TOKEN secrets (a dedicated low-privilege account and its
personal access token with package read/write scope) instead.
2026-06-12 11:16:33 -04:00
andrew d74a12b5a4 Convert Jenkins CI to Gitea Actions
CI / build-image (arm64, ubuntu-latest-arm64) (push) Failing after 19s
CI / build-image (amd64, ubuntu-latest-amd64) (push) Failing after 37s
CI / pre-commit (push) Has been skipped
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (push) Has been skipped
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (push) Has been skipped
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (push) Has been skipped
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (push) Has been skipped
CI / release (amd64, ubuntu-latest-amd64) (push) Has been skipped
CI / release (arm64, ubuntu-latest-arm64) (push) Has been skipped
CI / coverage (push) Has been skipped
Replace the Jenkinsfile with .gitea/workflows/ci.yml. The CI image is
built from the Dockerfile and pushed to the Gitea container registry,
rebuilt only when the Dockerfile or pre-commit config changes. The
aarch64 release build now runs natively on an arm64 runner instead of
cross-compiling, so the cross toolchain and qemu are dropped from the
image. Artifacts still go to MinIO (via mc, skipped gracefully if
credentials are not configured); ccache uses actions/cache instead of a
host volume.
2026-06-12 11:13:32 -04:00
andrew 755bbcbe56 Fix gcc 15 build 2025-11-06 13:12:10 -05:00
andrew 2642d453dc Remove unnecessary branch for interleaved range writes
Tests / 64 bit versions total: 8331, passed: 8331
Tests / Debug total: 8329, passed: 8329
Tests / SIMD fallback total: 8331, passed: 8331
Tests / Release [clang] total: 8331, passed: 8331
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / gcc total: 8331, passed: 8331
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [clang,aarch64] total: 5520, passed: 5520
Tests / Coverage total: 5571, passed: 5571
Code Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 97.75% (3080/3151) * Branch Coverage: 41.81% (18260/43676) * Complexity Density: 0.00 * Lines of Code: 3151 #### Quality Gates Summary Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good
2024-12-11 21:53:44 -08:00
andrew 7166811387 Fix condition checking for erasing the root
Tests / 64 bit versions total: 8331, passed: 8331
Tests / Debug total: 8329, passed: 8329
Tests / SIMD fallback total: 8331, passed: 8331
Tests / Release [clang] total: 8331, passed: 8331
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / gcc total: 8331, passed: 8331
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [clang,aarch64] total: 5520, passed: 5520
Tests / Coverage total: 5571, passed: 5571
Code Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 97.75% (3081/3152) * Branch Coverage: 41.81% (18261/43674) * Complexity Density: 0.00 * Lines of Code: 3152 #### Quality Gates Summary Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good
2024-11-21 17:49:54 -08:00
andrew d68f208d9b Add to corpus 2024-11-21 17:27:14 -08:00
andrew 81323972aa Remove "memcpy common section to next node"
Do it in a simpler, more robust/type safe way
2024-11-21 16:47:05 -08:00
andrew 8694ba8b6a Remove unused field 2024-11-21 16:35:10 -08:00
andrew 0cea5565b5 Add artificial root parent and stop plumbing impl everywhere 2024-11-21 16:32:13 -08:00
andrew 972f16ed8f Remove Node::endOfRange
This should simplify storing leaves directly
2024-11-21 11:55:30 -08:00
andrew 2412684316 childMaxVersion memory needs to be defined
Tests / 64 bit versions total: 8220, passed: 8220
Tests / Debug total: 8218, passed: 8218
Tests / SIMD fallback total: 8220, passed: 8220
Tests / Release [clang] total: 8220, passed: 8220
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / gcc total: 8220, passed: 8220
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [clang,aarch64] total: 5446, passed: 5446
Tests / Coverage total: 5497, passed: 5497
Code Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 97.73% (3061/3132) * Branch Coverage: 41.68% (17736/42552) * Complexity Density: 0.00 * Lines of Code: 3132 #### Quality Gates Summary Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good
Also remove some dead code, and only memset children to 0 for Node256.
Other nodes detect absence of children other ways.
2024-11-21 10:35:05 -08:00
andrew 8190d2f24e Update README
Tests / 64 bit versions total: 8220, passed: 8220
Tests / Debug total: 8218, failed: 28, passed: 8190
Tests / SIMD fallback total: 8220, passed: 8220
Tests / Release [clang] total: 8220, passed: 8220
Tests / gcc total: 8220, failed: 28, passed: 8192
Tests / Release [clang,aarch64] total: 5446, passed: 5446
Tests / Coverage total: 5497, failed: 28, passed: 5469
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-11-20 21:55:37 -08:00
andrew 8251631087 Fix some unintentional generic usages of getChildAndMaxVersion 2024-11-20 21:50:48 -08:00
andrew 90fb2a9542 Remove some usages of generic getFirstChild 2024-11-20 21:43:47 -08:00
andrew 7c01f8ba0f Remove some usages of maxVersion 2024-11-20 21:24:59 -08:00
andrew 0df2db7f8a Remove some bad unlikely annotations found by -Wmisexpect
Using a profile from server_bench
2024-11-20 19:06:50 -08:00
andrew 5e975f3b2b More writes than reads in ServerBench 2024-11-20 17:49:55 -08:00
andrew bcbae026b2 Update README
Tests / 64 bit versions total: 8220, passed: 8220
Tests / Debug total: 8218, failed: 28, passed: 8190
Tests / SIMD fallback total: 8220, passed: 8220
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-11-20 14:53:57 -08:00
andrew e125b599b5 Remove freeList, min/max capacity tracking
The freelist doesn't seem to get a good hit rate. Policies other than
capacity = minCapacity did not improve the rate we were resizing nodes,
but did increase memory usage, so get rid of that too. Add a
nodes_resized_total counter.
2024-11-20 14:45:56 -08:00
andrew 3f4d3b685a More valgrind annotations 2024-11-20 13:36:30 -08:00
andrew 4198b8b090 Some prep for leafs-in-parents 2024-11-20 12:20:11 -08:00
andrew 8757d2387c Call prefetch within TaggedNodePointer::getType
Instead of at every call site
2024-11-20 12:07:32 -08:00
andrew 4a22b95d53 Remove state machine transitions "from" Node0
Those aren't used
2024-11-20 11:46:45 -08:00
andrew 03d6c7e471 Allocate maxCapacity instead of minCapacity 2024-11-19 16:13:57 -08:00
andrew ceecc62a63 Disable freelist for macos
Tests / 64 bit versions total: 8220, passed: 8220
Tests / Debug total: 8218, passed: 8218
Tests / SIMD fallback total: 8220, passed: 8220
Tests / Release [clang] total: 8220, passed: 8220
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / gcc total: 8220, passed: 8220
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [clang,aarch64] total: 5446, passed: 5446
Tests / Coverage total: 5497, passed: 5497
Code Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 97.69% (3168/3243) * Branch Coverage: 42.25% (19291/45654) * Complexity Density: 0.00 * Lines of Code: 3243 #### Quality Gates Summary Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good
It's faster on my mac m1 without the freelist
2024-11-19 14:28:15 -08:00
andrew 80f0697e79 Fix arm detection on macos 2024-11-19 13:24:13 -08:00
andrew ce23d3995c Fix README
Tests / 64 bit versions total: 8220, passed: 8220
Tests / Debug total: 8218, passed: 8218
Tests / SIMD fallback total: 8220, passed: 8220
Tests / Release [clang] total: 8220, passed: 8220
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / gcc total: 8220, passed: 8220
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [clang,aarch64] total: 5446, passed: 5446
Tests / Coverage total: 5497, passed: 5497
Code Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 97.69% (3166/3241) * Branch Coverage: 42.26% (19263/45584) * Complexity Density: 0.00 * Lines of Code: 3241 #### Quality Gates Summary Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good
2024-11-19 09:02:16 -08:00
andrew 6f899e063b Update readme
Tests / 64 bit versions total: 8220, passed: 8220
weaselab/conflict-set/pipeline/head Something is wrong with the build of this commit
2024-11-18 14:31:56 -08:00
andrew e5b9c03e77 Restore change that hurt codegen
I don't understand, but this is necessary for good codegen somehow
2024-11-18 14:29:55 -08:00
andrew a158d375f5 Add script for updating readme 2024-11-18 14:05:14 -08:00
andrew ee5a84cd7b Remove dead stores
Tests / 64 bit versions total: 8220, passed: 8220
Tests / Debug total: 8218, passed: 8218
Tests / SIMD fallback total: 8220, passed: 8220
Tests / Release [clang] total: 8220, passed: 8220
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / gcc total: 8220, passed: 8220
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [clang,aarch64] total: 5446, passed: 5446
Tests / Coverage total: 5497, passed: 5497
Code Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 97.69% (3165/3240) * Branch Coverage: 42.26% (19263/45585) * Complexity Density: 0.00 * Lines of Code: 3240 #### Quality Gates Summary Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good
2024-11-15 17:03:29 -08:00
andrew 33f14e3d9b Remove unused header 2024-11-15 16:49:21 -08:00
andrew 77262ee2d3 Fix some grammar in a comment
Tests / 64 bit versions total: 8220, passed: 8220
Tests / Debug total: 8218, passed: 8218
Tests / SIMD fallback total: 8220, passed: 8220
Tests / Release [clang] total: 8220, passed: 8220
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / gcc total: 8220, passed: 8220
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [clang,aarch64] total: 5446, passed: 5446
Tests / Coverage total: 5497, passed: 5497
Code Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 97.69% (3167/3242) * Branch Coverage: 42.26% (19269/45597) * Complexity Density: 0.00 * Lines of Code: 3242 #### Quality Gates Summary Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good
2024-11-15 16:47:31 -08:00
andrew 9945998e05 Remove unused code in Internal.h 2024-11-15 16:30:20 -08:00
andrew 2777e016ff Be more consistent about TaggedNodePointer vs Node* 2024-11-15 16:30:05 -08:00
andrew 661ffcd843 Explain purpose for prefetches in getFirstChild 2024-11-15 16:29:42 -08:00
andrew 3a34d3cecb Minor style improvements 2024-11-15 16:29:17 -08:00
andrew 189c73e3bd Reduce Node3 size by 8 2024-11-15 15:53:18 -08:00
andrew 35987030fc Add to corpus 2024-11-15 15:47:32 -08:00
andrew 0621741ec3 Update README benchmarks 2024-11-15 13:12:47 -08:00
andrew f5ec9f726a Remove getFirstChildExists
Once we know the type, for Node3 and higher we know the first child
exists anyway
2024-11-15 13:05:11 -08:00
andrew 552fc11c5d Prefetch second child to improve scan performance 2024-11-15 12:45:01 -08:00
andrew 71ace9cc55 Make more range reads commit in server_bench 2024-11-15 11:35:55 -08:00
andrew bcf459304f Improve cpu performance for workload generation in server_bench 2024-11-14 17:16:57 -08:00
andrew f403c78410 Add test that exercises "too large removal buffer" code
Tests / 64 bit versions total: 8099, passed: 8099
Tests / Debug total: 8097, passed: 8097
Tests / SIMD fallback total: 8099, passed: 8099
Tests / Release [clang] total: 8099, passed: 8099
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / gcc total: 8099, passed: 8099
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [clang,aarch64] total: 5366, passed: 5366
Tests / Coverage total: 5416, passed: 5416
Code Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 97.61% (3182/3260) * Branch Coverage: 42.26% (19285/45639) * Complexity Density: 0.00 * Lines of Code: 3260 #### Quality Gates Summary Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good
2024-11-14 16:40:47 -08:00
andrew 08958d4109 Remove the reverse step for saving scan search path 2024-11-14 16:27:25 -08:00
andrew dcc5275ec9 Isolate conflict-set on one thread in server_bench
Tests / 64 bit versions total: 8097, passed: 8097
Tests / Debug total: 8095, passed: 8095
Tests / SIMD fallback total: 8097, passed: 8097
Tests / Release [clang] total: 8097, passed: 8097
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / gcc total: 8097, passed: 8097
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [clang,aarch64] total: 5366, passed: 5366
Tests / Coverage total: 5414, passed: 5414
weaselab/conflict-set/pipeline/head Something is wrong with the build of this commit
2024-11-13 22:46:11 -08:00
andrew c5ef843f9e Add range reads to server_bench
Tests / 64 bit versions total: 8097, passed: 8097
Tests / Debug total: 8095, passed: 8095
Tests / SIMD fallback total: 8097, passed: 8097
Tests / Release [clang] total: 8097, passed: 8097
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / gcc total: 8097, passed: 8097
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [clang,aarch64] total: 5366, passed: 5366
Tests / Coverage total: 5414, passed: 5414
Code Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 97.67% (3149/3224) * Branch Coverage: 42.26% (19259/45578) * Complexity Density: 0.00 * Lines of Code: 3224 #### Quality Gates Summary Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good
2024-11-13 14:06:50 -08:00
andrew b78e817e24 Only set HAS_AVX for x86_64
Tests / 64 bit versions total: 8097, passed: 8097
Tests / Debug total: 8095, passed: 8095
Tests / SIMD fallback total: 8097, passed: 8097
Tests / Release [clang] total: 8097, passed: 8097
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / gcc total: 8097, passed: 8097
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [clang,aarch64] total: 5366, passed: 5366
Tests / Coverage total: 5414, passed: 5414
Code Coverage #### Project Overview No changes detected, that affect the code coverage. * Line Coverage: 97.67% (3149/3224) * Branch Coverage: 42.26% (19259/45578) * Complexity Density: 0.00 * Lines of Code: 3224 #### Quality Gates Summary Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good
2024-11-12 18:16:30 -08:00
andrew 9c82f17e20 Enable valgrind annotations for gcc build in jenkins
Tests / 64 bit versions total: 8097, passed: 8097
weaselab/conflict-set/pipeline/head Something is wrong with the build of this commit
2024-11-12 18:13:32 -08:00
andrew 665a9313a4 Valgrind annotations for new free list 2024-11-12 18:11:09 -08:00
andrew 6e66202d5e Add to corpus
Tests / 64 bit versions total: 8097, passed: 8097
Tests / Debug total: 8095, passed: 8095
Tests / SIMD fallback total: 8097, passed: 8097
Tests / Release [clang] total: 8097, passed: 8097
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc] total: 8097, passed: 8097
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-11-12 17:50:27 -08:00