Commit Graph

316 Commits

Author SHA1 Message Date
593657c9aa Remove duplicate code 2024-02-09 15:32:06 -08:00
d1ee3d8b69 Bring back nextSibling 2024-02-09 15:26:54 -08:00
80a79aab1f Still need a better way identify left/right sidedness 2024-02-09 15:17:37 -08:00
f3e7279c2c Do less work 2024-02-09 13:10:40 -08:00
403608c794 WIP just need to identify nodes on begin -> end path 2024-02-09 12:51:09 -08:00
8e918acc05 Remove dead code 2024-02-09 11:51:51 -08:00
d320fb6eee Remove dead code 2024-02-08 14:59:27 -08:00
2bd1bf93a9 Check indices between left and right after they diverge 2024-02-08 14:50:53 -08:00
b018ccc3ae Add TODO
Some checks failed
Tests / Release [gcc] total: 361, failed: 2, passed: 359
Tests / Coverage total: 359, passed: 359
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-02-08 10:16:31 -08:00
d388f6488d Remove dead code 2024-02-08 10:13:53 -08:00
968e03403d Revert to linear range checking, but keep short-circuiting 2024-02-08 10:05:22 -08:00
2cbb6e0170 Short-circuiting, efficient checkRangeRead 2024-02-07 16:31:54 -08:00
9363d7866c Specify maxVersion meaning 2024-02-07 15:33:15 -08:00
855b7fa069 Prepare for new invariant 2024-02-07 13:44:46 -08:00
98124d5493 Sublinear read range checking
All checks were successful
Tests / Release [gcc] total: 337, passed: 337
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/6//gcc">weaselab » conflict-set » main #6</a>
Tests / Coverage total: 335, passed: 335
weaselab/conflict-set/pipeline/head This commit looks good
Still slow though
2024-02-06 16:52:20 -08:00
6be23803a3 Add standalone bench target 2024-02-06 15:03:54 -08:00
9a80c96533 Short circuit point reads based on maxVersion
All checks were successful
Tests / Release [gcc] total: 337, passed: 337
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/5//gcc">weaselab » conflict-set » main #5</a>
Tests / Coverage total: 335, passed: 335
weaselab/conflict-set/pipeline/head This commit looks good
2024-02-06 14:38:39 -08:00
68239cd80b Maintain nextSib in firstGeq
This is slower, but I think it's closer to what we want for our eventual bespoke
"fused-check-and-search" implementation.
2024-02-06 12:37:02 -08:00
03e9dc01fd Implement firstGeq directly 2024-02-06 12:11:50 -08:00
d2c89f605f Use rangeVersion indicating < instead of >
This should allow us to use firstGeq (which should be possible to make
more efficient), and generally make things nicer
2024-02-06 11:11:45 -08:00
0aa2f67f88 Check that all children have reachable present entries 2024-02-05 16:59:21 -08:00
d78afe0823 Interleave checks for point reads
This doesn't actually seem faster, but it should prepare us to implement
range reads non-naively. It probably should be faster. To be
investigated.
2024-02-05 16:44:57 -08:00
57ec97f2ee Naive range reads implementation and test 2024-02-05 13:59:10 -08:00
a632d0cbbb gcc fixes 2024-02-03 13:16:13 -08:00
81f178face Remove unused code 2024-02-01 18:31:36 -08:00
20bd5c2fa6 More corpus tinkering. Missing coverage for Node256 2024-02-01 18:22:45 -08:00
22daf0b9cb Improve range write performance 2024-02-01 16:52:22 -08:00
0eff5628bd Fix lastLeq bug 2024-02-01 11:24:57 -08:00
96aca4a1da Range write WIP 2024-01-31 17:06:59 -08:00
812eb27708 Return inserted physical node from insert 2024-01-31 16:22:34 -08:00
31a555c44c Use bitset index for Node48 too 2024-01-31 16:04:03 -08:00
bafe1edfa4 Remove call to memcmp for partial keys 2024-01-31 14:32:25 -08:00
5a69ec82df Partial keys seem to be working 2024-01-31 11:10:41 -08:00
220c5caf27 WIP compressed key. Tests fail 2024-01-30 17:31:44 -08:00
ecd549857b Add printTree 2024-01-30 17:16:46 -08:00
906a007c3a Fix use of uninitialized memory 2024-01-30 14:50:26 -08:00
f2c9267b48 Use a bitset to speed up Node256 scans 2024-01-30 14:21:30 -08:00
8edac4d811 Use c++20 std::count{l,r}_zero 2024-01-30 13:20:26 -08:00
3c9c5bd9fb Add benchmarks for getChild{L,G}eq 2024-01-30 13:08:01 -08:00
eca1b9993a Improve symbols test
Remove seed argument and check for disallowed undefined symbols
2024-01-30 11:46:03 -08:00
3735a43553 Add TestDriver class 2024-01-30 11:13:21 -08:00
47faa51a35 Add Internal.h 2024-01-30 10:49:49 -08:00
831088aad9 Leave in the faster version for now 2024-01-26 10:25:48 -08:00
b8de633ca1 Update maxVersion to max(maxVersion, writeVersion) 2024-01-26 10:25:32 -08:00
270f887584 Annotate unused functions 2024-01-25 15:31:48 -08:00
4d71cf5b75 Implement x86 getChildLeq/getChildGeq 2024-01-25 14:57:03 -08:00
b15bec6b38 SIMD for Node16 in lastLeq and firstGeq 2024-01-25 12:40:11 -08:00
35cf3f3132 MacOS fixes 2024-01-24 15:55:44 -08:00
d76ac2a254 Try exported symbols list for Apple
visibility annotations seem to be working for gcc
2024-01-24 15:18:00 -08:00
a6a2ad61d9 Export shared and static libraries 2024-01-24 15:10:06 -08:00