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