weaselbot
2231c093df
Fix null pointers passed to memcmp/memcpy in skip_list
...
CI / pre-commit (pull_request) Successful in 2m14s
CI / release (arm64, ubuntu-latest-arm64) (pull_request) Successful in 3m32s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (pull_request) Successful in 3m38s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (pull_request) Successful in 3m29s
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 3m30s
CI / release (amd64, ubuntu-latest-amd64) (pull_request) Successful in 5m1s
CI / coverage (pull_request) Successful in 3m38s
In addWrites, the sizing constructor std::vector<KeyInfo>(count * 2)
was used instead of reserve(count * 2), leaving count*2 default-
constructed (null/empty key) entries that were then compared via
operator<, passing nullptr to memcmp. Switch to reserve so only real
entries exist.
Additionally guard the memcmp/memcpy calls in operator<, SkipList::less,
and copyToArena against empty spans (where data() may be nullptr), which
is reachable on the first setOldestVersion with an empty removal key.
Closes #64
2026-07-13 12:04:22 -04:00
weaselbot and andrew
4dc5f7f75c
Fix self-move-assignment and leak in ConflictSet move-assignment
...
CI / release (arm64, ubuntu-latest-arm64) (pull_request) Successful in 3m23s
CI / pre-commit (pull_request) Successful in 2m5s
CI / test (-DCMAKE_BUILD_TYPE=Debug, debug) (pull_request) Successful in 3m36s
CI / test (-DCMAKE_CXX_FLAGS=-DUSE_64_BIT=1, 64-bit-versions) (pull_request) Successful in 3m28s
CI / test (-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++, gcc) (pull_request) Successful in 3m38s
CI / test (-DUSE_SIMD_FALLBACK=ON, simd-fallback) (pull_request) Successful in 3m28s
CI / release (amd64, ubuntu-latest-amd64) (pull_request) Successful in 4m53s
CI / coverage (pull_request) Successful in 3m38s
The user-declared move-assignment operator overwrote `impl` without first
destroying the existing implementation object, leaking all memory and resources
owned by the left-hand side. Self-move-assignment also set `impl` to nullptr,
leaving the object invalid and leaking the old state.
Fix all three implementations (ConflictSet.cpp, SkipList.cpp, HashTable.cpp)
to guard against self-assignment and to destroy/free the old `impl` before
taking ownership of `other.impl`.
2026-06-22 14:08:59 -04:00
andrew
a92271a205
Build with -Wunused-variable
2024-11-12 17:50:27 -08:00
andrew
6e229b6b36
Skip sorting if already sorted for skip list
2024-11-12 17:50:27 -08:00
andrew
394f09f9fb
WIP adding metrics to skiplist
2024-08-30 16:06:43 -07:00
andrew
795ae7cb01
Internal.h doesn't need to include <vector>
2024-08-24 10:38:07 -07:00
andrew
849e2d3e5c
Remove unused code
2024-08-22 22:31:36 -07:00
andrew
1560037680
Remove unused struct
2024-08-22 17:55:54 -07:00
andrew
764c31bbc8
Run skip list gc at 200% entry insertion rate
2024-08-22 17:26:08 -07:00
andrew
ee3361952a
Use better rng in skip list
...
low bits of lcg have low periods
2024-08-22 17:00:15 -07:00
andrew
42b5d50492
Update DEBUG_VERBOSE for interleaving conflict sets in test
2024-07-23 15:44:29 -07:00
andrew
3288c583e4
Make metrics thread-safe
...
Tests / Clang total: 1533, failed: 1, passed: 1532
Tests / Clang - debug total: 1531, passed: 1531
Tests / SIMD fallback total: 1533, failed: 1, passed: 1532
Tests / Release [gcc] total: 1533, failed: 1, passed: 1532
Tests / Release [gcc,aarch64] total: 1144, failed: 2, passed: 1142
Tests / Coverage total: 1151, passed: 1151
weaselab/conflict-set/pipeline/head There was a failure building this commit
Even concurrently with calling non-const methods on the associated
ConflictSet
2024-07-12 13:22:02 -07:00
andrew
3ac16bc966
Propose a metrics interface
Tests / Clang total: 1533, failed: 2, passed: 1531
Tests / SIMD fallback total: 1533, failed: 2, passed: 1531
Tests / Release [gcc] total: 1533, failed: 2, passed: 1531
Tests / Release [gcc,aarch64] total: 1144, failed: 2, passed: 1142
Tests / Coverage total: 1151, passed: 1151
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-07-12 12:00:46 -07:00
andrew
1e82f7fe22
Fix compiler warnings
Tests / Clang total: 1533, passed: 1533
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / SIMD fallback total: 1533, passed: 1533
Tests / Release [gcc] total: 1533, passed: 1533
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 1144, passed: 1144
Tests / Coverage total: 1151, passed: 1151
Code Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 98.71% (1607/1628)
* Branch Coverage: 65.61% (1473/2245)
* Complexity Density: 0.00
* Lines of Code: 1628
#### Quality Gates Summary
Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good
2024-07-11 19:33:57 -07:00
andrew
d50bb8bc80
Add missing header
Tests / Clang total: 1337, passed: 1337
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / SIMD fallback total: 1337, passed: 1337
Tests / Release [gcc] total: 1337, passed: 1337
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|2|0|2|0|:zzz:
Tests / Release [gcc,aarch64] total: 997, passed: 997
Tests / Coverage total: 1004, passed: 1004
Code Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 97.48% (1586/1627)
* Branch Coverage: 63.66% (1428/2243)
* Complexity Density: 0.00
* Lines of Code: 1627
#### Quality Gates Summary
Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good
2024-07-10 16:59:31 -07:00
andrew
f19b403f19
Remove "writes are canonical" precondition from addWrites
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-07-10 16:42:53 -07:00
andrew
76df63a9d7
Allow writeVersion, oldestVersion, and readVersion to span 2e9
Tests / Clang total: 1337, passed: 1337
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / SIMD fallback total: 1337, passed: 1337
Tests / 32-bit versions total: 1337, passed: 1337
Tests / Release [gcc] total: 1337, passed: 1337
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 997, passed: 997
Tests / Coverage total: 1004, failed: 86, passed: 918
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-07-03 14:19:50 -07:00
andrew
3db3d975fc
Interface change! Allow decreasing setOldestVersion
Tests / Clang total: 1305, passed: 1305
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / SIMD fallback total: 1305, passed: 1305
Tests / 32-bit versions total: 1305, passed: 1305
Tests / Release [gcc] total: 1305, passed: 1305
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 973, passed: 973
Tests / Coverage total: 980, passed: 980
Code Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 98.74% (1572/1592)
* Branch Coverage: 65.29% (1420/2175)
* Complexity Density: 0.00%
* Lines of Code: 1592
#### Quality Gates Summary
Output truncated.
weaselab/conflict-set/pipeline/head This commit looks good
2024-07-03 10:31:57 -07:00
andrew
a68ad5dd17
Interface change! Return TooOld after 2e9 versions
...
Event if setOldestVersion wasn't called
2024-06-30 15:28:51 -07:00
andrew
6e63fd5126
Add internal entry points, with test coverage
...
Closes #25
2024-04-19 11:23:25 -07:00
andrew
64a98c529c
Fix conflict_set.py bug, and add full inner words test
...
Tests / Clang total: 1091, passed: 1091
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / SIMD fallback total: 1091, passed: 1091
Tests / Release [gcc] total: 1091, passed: 1091
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 817, passed: 817
Tests / Coverage total: 818, passed: 818
weaselab/conflict-set/pipeline/head This commit looks good
Apparently all bytes were 0
2024-04-17 14:11:26 -07:00
andrew
309d315956
Add DebugConflictSet, which asserts using skip list as a reference
...
Tests / Clang total: 1090, passed: 1090
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / SIMD fallback total: 1090, passed: 1090
Tests / Release [gcc] total: 1090, passed: 1090
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 818, failed: 1, passed: 817
Tests / Coverage total: 817, passed: 817
weaselab/conflict-set/pipeline/head There was a failure building this commit
CC #23
2024-04-17 12:08:39 -07:00
andrew
eab2e46a56
Mention that we modified SkipList.cpp
2024-04-17 12:08:33 -07:00
andrew
85db1a8786
Allow to choose implementation in python wrapper
...
And fix a few minor bugs to make the python tests pass for skip_list.
CC #23
2024-04-17 12:08:28 -07:00
andrew
ad91fb36a5
Symbol tests for macos + whitelist imports/exports
...
Tests / Clang total: 1096, passed: 1096
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / SIMD fallback total: 1096, passed: 1096
Tests / Release [gcc] total: 1096, passed: 1096
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 824, passed: 824
Tests / Coverage total: 823, passed: 823
weaselab/conflict-set/pipeline/head This commit looks good
commit 1ad8276100
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:44:35 2024 -0700
Add symbols for arm build
commit 058e4d5302
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:42:48 2024 -0700
Add _GLOBAL_OFFSET_TABLE_
commit a201f3ada8
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:34:05 2024 -0700
Add memset to symbol imports
commit c1129ed0e2
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:32:28 2024 -0700
Add symbol imports file
commit 618766ce2e
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:27:07 2024 -0700
Fix objcopy filepath
commit e774a90007
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:24:44 2024 -0700
Use shellcheck precommit without docker
commit baddea7f57
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:20:26 2024 -0700
Update and freeze pre-commit hooks
commit 2d3e7b9004
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:19:55 2024 -0700
Add shellcheck to pre-commit
Closes #22
commit c4862fee9b
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:15:08 2024 -0700
Add symbol tests for apple
closes #21
2024-04-03 12:50:51 -07:00
andrew
19edc6f78f
Interface change! Add ConflictSet::getBytes
...
Tests / Clang total: 1096, failed: 3, passed: 1093
Tests / Release [gcc] total: 1096, failed: 2, passed: 1094
Tests / Release [gcc,aarch64] total: 824, failed: 1, passed: 823
Tests / Coverage total: 823, failed: 1, passed: 822
weaselab/conflict-set/pipeline/head There was a failure building this commit
Closes #12
2024-03-20 12:11:34 -07:00
andrew
6f81580953
Guard SHOW_MEMORY-only code
Tests / Clang total: 932, passed: 932
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc] total: 932, passed: 932
Tests / Release [gcc,aarch64] total: 931, failed: 309, passed: 622
Tests / Coverage total: 930, passed: 930
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-03-14 15:40:09 -07:00
andrew
a9b3d3d1c9
Show peak memory in skip list, and fix setOldestVersion bug
...
It was not previously gc'ing faster than it was writing.
2024-03-14 15:31:29 -07:00
andrew
b817e3c749
Track malloc size with a header for SHOW_MEMORY
2024-03-14 15:30:46 -07:00
andrew
be5f1b67c8
Interface change! addWrites now takes a single write version
Tests / Release [gcc] total: 704, passed: 704
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Reference build: <a href="https://jenkins.weaselab.dev/job/weaselab/job/conflict-set/job/main/57//gcc">weaselab » conflict-set » main #57</a>
Tests / Release [gcc,aarch64] total: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-05 16:55:27 -08:00
andrew
717264b452
Remove show memory for skip list for now
2024-02-27 12:02:51 -08:00
andrew
68bd39e130
Put skip list in its own shared lib
...
weaselab/conflict-set/pipeline/head There was a failure building this commit
Now we can right benchmarks against one api, and just change the library
path
2024-02-27 12:02:01 -08:00