-
66bd799f05
Fix hasty change about
end
invariants
Andrew Noyes
2024-06-30 21:20:05 -07:00
-
2646d5eaf1
Get back to 100% coverage
Andrew Noyes
2024-06-30 21:15:42 -07:00
-
0367ba9856
Fast path for prefix reads
Andrew Noyes
2024-06-30 20:33:54 -07:00
-
9dec45317e
Try to fix code coverage in Jenkins
Andrew Noyes
2024-06-30 15:38:06 -07:00
-
a68ad5dd17
Interface change! Return TooOld after 2e9 versions
Andrew Noyes
2024-06-30 15:25:44 -07:00
-
8e3eacb54f
Apply function multi versioning higher in call stack to save branches
Andrew Noyes
2024-06-30 13:30:44 -07:00
-
0184e1d7f6
Remove incorrect comma in CMakeLists.txt
Andrew Noyes
2024-06-30 11:34:50 -07:00
-
c52d50f4f9
Remove bounds from forEachInRange
Andrew Noyes
2024-06-29 22:53:51 -07:00
-
447da11d59
Remove obsolete optimizations
Andrew Noyes
2024-06-29 22:47:42 -07:00
-
daa8e02d4f
Fixes from testing on an avx512f-capable machine
Andrew Noyes
2024-06-29 22:41:39 -07:00
-
fd3ea2c2a8
clang-format fixes
Andrew Noyes
2024-06-29 22:21:50 -07:00
-
0b839b9d7e
Fixes for symbol multi-versioning with avx512f
Andrew Noyes
2024-06-29 22:20:50 -07:00
-
11a022dcf7
Attempt at avx512f 32bit compare
Andrew Noyes
2024-06-29 21:56:21 -07:00
-
94da4c72a5
Fix clang-format
Andrew Noyes
2024-06-29 15:11:40 -07:00
-
461e07822a
32-bit x86 simd for the other scan16 too
Andrew Noyes
2024-06-29 15:10:05 -07:00
-
75499543e7
Fix clang-format
Andrew Noyes
2024-06-29 15:03:44 -07:00
-
81f44d352f
SIMD scan16 for x86 + 32-bit versions
Andrew Noyes
2024-06-29 15:01:18 -07:00
-
45da8fb996
Use the faster unvectorized implementation for Node3
Andrew Noyes
2024-06-28 22:52:39 -07:00
-
4958a4cced
Make always_inline function inline
Andrew Noyes
2024-06-28 22:42:01 -07:00
-
587874841f
Fix test that had a decreasing write version
Andrew Noyes
2024-06-28 19:57:25 -07:00
-
648b0b9238
Add an always_inline, with explanatory comment
Andrew Noyes
2024-06-28 19:55:33 -07:00
-
d3f4afa167
More SIMD for scanning Node256 with 32-bit versions
Andrew Noyes
2024-06-28 19:48:06 -07:00
-
f762add4d6
Write vectorized 32-bit compare by hand for arm in scan16
Andrew Noyes
2024-06-28 17:28:59 -07:00
-
b311e5f1f0
Add an experimental, disabled 32 bit internal version
Andrew Noyes
2024-06-28 15:53:35 -07:00
-
ff81890921
Rename MaxVersionT to InternalVersionT
Andrew Noyes
2024-06-28 14:34:48 -07:00
-
0e96177f5c
Allow to easily experiment with 32 bit "max version" type
Andrew Noyes
2024-06-28 13:54:12 -07:00
-
efb0e52a0a
SIMD implementation of scan16 for x86
Andrew Noyes
2024-06-27 22:21:41 -07:00
-
2df7000090
Remove switch on phase from Stepwise left/right step
Andrew Noyes
2024-06-27 20:51:35 -07:00
-
5378a06c39
Vectorize all bounds checks for Node256 scan
Andrew Noyes
2024-06-27 17:40:23 -07:00
-
12c6ed2568
Reorganize to prepare for better vectorized first/last page
Andrew Noyes
2024-06-27 17:21:41 -07:00
-
a2bf839b19
Update corpus
Andrew Noyes
2024-06-27 17:11:03 -07:00
-
c065b185ae
Vectorize inner page check for Node256
Andrew Noyes
2024-06-27 17:09:45 -07:00
-
639518bed4
Share "scan16" between Node16 and Node48
Andrew Noyes
2024-06-27 13:22:51 -07:00
-
7de983cc15
Simd bounds checking for scan for Node16
Andrew Noyes
2024-06-27 13:06:15 -07:00
-
1b4b61ddc6
Write Node16 scan in a "more vectorized" style
Andrew Noyes
2024-06-27 12:07:38 -07:00
-
bff7b85de2
Remove "Child" struct
Andrew Noyes
2024-06-27 10:03:14 -07:00
-
9108ee209a
SoA instead of AoS for child, maxVersion
Andrew Noyes
2024-06-27 09:57:54 -07:00
-
f8bf1c6eb4
Remove unreachable code
Andrew Noyes
2024-06-26 22:14:27 -07:00
-
4da2a01614
Use single &, to show branch-free intent
Andrew Noyes
2024-06-26 22:14:05 -07:00
-
bb0e654040
Fix missed update for Node48::maxOfMax
Andrew Noyes
2024-06-26 22:11:33 -07:00
-
cce7d29410
Update our benchmarks in README
Andrew Noyes
2024-06-26 20:59:33 -07:00
-
13f8d3fa8a
Add benchmarks for individual spans, but commented out
Andrew Noyes
2024-06-26 20:57:51 -07:00
-
02866a8cae
Save some bounds checking for scanning Node256
Andrew Noyes
2024-06-26 20:55:18 -07:00
-
fa86d3e707
"max of max" for Node48 again, but physical instead of logical
Andrew Noyes
2024-06-26 20:41:27 -07:00
-
7d1d1d7b2a
Maintain childMaxVersion == 0 for unused children in Node48
Andrew Noyes
2024-06-26 20:16:50 -07:00
-
789ecc29b3
Use unsigned compare trick to check in bounds
Andrew Noyes
2024-06-26 19:41:25 -07:00
-
08f2998a85
Use 8 byte pages for "max of max"
Andrew Noyes
2024-06-26 19:18:38 -07:00
-
c882d7663d
Maintain "reverseIndex" in Node48
Andrew Noyes
2024-06-26 18:57:08 -07:00
-
bfea4384ba
Branchless inner page check for Node256
Andrew Noyes
2024-06-26 18:28:41 -07:00
-
6520e3d734
"max of max" for Node48
Andrew Noyes
2024-06-26 17:54:03 -07:00
-
23ace8aac5
Fill in leftward on right side in worst case for radix tree bench
Andrew Noyes
2024-06-26 17:37:24 -07:00
-
62e35de320
Update our benchmark in readme
Andrew Noyes
2024-06-26 16:36:02 -07:00
-
22e4ab01a1
Track "max of max" versions in Node256
Andrew Noyes
2024-06-26 16:28:24 -07:00
-
b3aeed0caa
Warning: interface change! Require versions >= 0
Andrew Noyes
2024-06-26 15:46:36 -07:00
-
5f3833e965
Change maxVersion to return by value, and add setMaxVersion
Andrew Noyes
2024-06-26 15:33:15 -07:00
-
8b1cd9c052
Minor improvements to checkMaxBetweenExclusive
Andrew Noyes
2024-06-26 15:06:50 -07:00
-
bb9bc3d7b5
Measure across different cardinalities for radix worst case bench
Andrew Noyes
2024-06-26 15:06:36 -07:00
-
89b3354a80
Update README with new benchmark
Andrew Noyes
2024-06-25 21:47:46 -07:00
-
488c723726
Improve worst-case radix tree checkRangeRead
Andrew Noyes
2024-06-25 21:20:36 -07:00
-
76d0785b33
Add worst-case benchmark for radix tree
Andrew Noyes
2024-06-25 20:46:48 -07:00
-
add0af11ad
Don't check paper/version.txt into version control
Andrew Noyes
2024-06-25 19:21:14 -07:00
-
2c0adf4a8b
Fix test-only bug in script test
Andrew Noyes
2024-06-25 19:20:19 -07:00
-
e8ac78cce6
Bump version
Andrew Noyes
2024-06-12 14:07:34 -07:00
-
13d447c9fe
Use version.txt instead of version.tex
v0.0.6
Andrew Noyes
2024-06-12 13:47:16 -07:00
-
da7523c5cf
Add version to paper
Andrew Noyes
2024-06-12 13:34:35 -07:00
-
a074bc6f72
include(CTest) before BUILD_TESTING
Andrew Noyes
2024-06-11 16:21:38 -07:00
-
1553a44986
Make possible to use from FetchContent
Andrew Noyes
2024-06-11 15:47:54 -07:00
-
859ac352e6
Bump version
Andrew Noyes
2024-06-11 13:13:19 -07:00
-
2eb461b8ea
Fix build for llvm 18
v0.0.5
Andrew Noyes
2024-06-11 11:38:55 -07:00
-
e2e92f4ef5
Address some feedback on paper
Andrew Noyes
2024-05-06 14:30:49 -07:00
-
f6f25cfcce
Paper tweaks
Andrew Noyes
2024-04-22 15:26:00 -07:00
-
c13dc88ff4
Update corpus
Andrew Noyes
2024-04-22 14:39:31 -07:00
-
aa5dbb2887
Explicitly allow writeVersion to be non-decreasing
Andrew Noyes
2024-04-22 14:15:44 -07:00
-
ea76e04cda
Fix weird-looking url in ubsan reference
Andrew Noyes
2024-04-19 15:19:39 -07:00
-
452007e079
Change paper title to emphasize usefulness outside fdb
Andrew Noyes
2024-04-19 14:53:31 -07:00
-
37c75f747b
Draft Testing section
Andrew Noyes
2024-04-19 14:26:47 -07:00
-
c96d682483
Fix memory error when SHOW_MEMORY = 1
Andrew Noyes
2024-04-19 11:28:49 -07:00
-
6e63fd5126
Add internal entry points, with test coverage
Andrew Noyes
2024-04-19 11:23:25 -07:00
-
f2678de811
Preserve version in clearConflictSet in fdb patch
Andrew Noyes
2024-04-19 11:00:43 -07:00
-
4d7ad075b2
Bump version
Andrew Noyes
2024-04-18 14:32:51 -07:00
-
d2e1863593
Account for every uncovered line in the implementation
v0.0.4
Andrew Noyes
2024-04-18 12:27:20 -07:00
-
bf91bca16d
Include long common prefix in fuzz test
Andrew Noyes
2024-04-18 11:49:41 -07:00
-
08ed17f47b
Fail jenkins build if not 100% line coverage
Andrew Noyes
2024-04-18 12:43:19 -07:00
-
76a45f16ad
Exercise freelist size limiting code
Andrew Noyes
2024-04-17 18:27:01 -07:00
-
c15d296432
Exercise copyChildrenAndKeyFrom for Node{48,256} to itself
Andrew Noyes
2024-04-17 17:13:22 -07:00
-
64a98c529c
Fix conflict_set.py bug, and add full inner words test
Andrew Noyes
2024-04-17 14:11:26 -07:00
-
ed1388ed21
Disable script tests when cross compiling
Andrew Noyes
2024-04-17 12:25:16 -07:00
-
309d315956
Add DebugConflictSet, which asserts using skip list as a reference
Andrew Noyes
2024-04-17 12:06:04 -07:00
-
eab2e46a56
Mention that we modified SkipList.cpp
Andrew Noyes
2024-04-17 11:53:48 -07:00
-
85db1a8786
Allow to choose implementation in python wrapper
Andrew Noyes
2024-04-17 11:49:31 -07:00
-
717f9d6829
Remove ScriptTest.cpp, replace with test_conflict_set.py
Andrew Noyes
2024-04-17 11:29:44 -07:00
-
fd93300ce8
Tweaks and add more planned sections
Andrew Noyes
2024-04-16 17:36:29 -07:00
-
b7e16b31ff
Fill out empty subsections
Andrew Noyes
2024-04-16 12:57:57 -07:00
-
a324d31518
Second pass at "Checking range reads"
Andrew Noyes
2024-04-16 12:14:04 -07:00
-
fdb05e0e33
First draft of "Checking range reads" subsection
Andrew Noyes
2024-04-15 17:32:33 -07:00
-
7c27d4a972
Always target macos 11.0
Andrew Noyes
2024-04-09 14:08:58 -07:00
-
738de01cb4
Add getBytes to conflict_set.py
Andrew Noyes
2024-04-08 17:33:51 -07:00
-
325cab6a95
Target earliest convenient macos version
Andrew Noyes
2024-04-08 17:16:01 -07:00
-
0b2821941a
Bump version
Andrew Noyes
2024-04-08 15:52:06 -07:00
-
a40b5dcd74
Add script to build .pkg file for macos
v0.0.3
Andrew Noyes
2024-04-08 15:21:40 -07:00