andrew
542371d562
Build TestDriver for perf testing too
2024-07-17 15:48:32 -07:00
andrew
3288c583e4
Make metrics thread-safe
...
Even concurrently with calling non-const methods on the associated
ConflictSet
2024-07-12 13:22:02 -07:00
andrew
f19b403f19
Remove "writes are canonical" precondition from addWrites
2024-07-10 16:42:53 -07:00
andrew
76df63a9d7
Allow writeVersion, oldestVersion, and readVersion to span 2e9
2024-07-03 14:19:50 -07:00
andrew
3e6be6bd83
Allow write version to jump by more than 2e9
2024-07-03 09:07:09 -07:00
andrew
e59fee39c7
Start versions at zero in fuzz test for now
2024-07-03 07:55:07 -07:00
andrew
8264f1342d
Fix some precision issues
2024-07-02 13:55:05 -07:00
andrew
cbe40b5dba
Fix missing debug verbose guard
2024-07-02 12:48:00 -07:00
andrew
0be97a34b6
Add new version window requirement to reference impl
2024-07-02 12:42:03 -07:00
andrew
b311e5f1f0
Add an experimental, disabled 32 bit internal version
...
I think it's only missing detection for full-precision versions more
than 2e9 apart
2024-06-28 15:53:35 -07:00
andrew
2eb461b8ea
Fix build for llvm 18
2024-06-11 11:38:55 -07:00
andrew
c13dc88ff4
Update corpus
2024-04-22 15:24:55 -07:00
andrew
aa5dbb2887
Explicitly allow writeVersion to be non-decreasing
...
Instead of strictly increasing.
2024-04-22 14:15:44 -07:00
andrew
c96d682483
Fix memory error when SHOW_MEMORY = 1
2024-04-19 11:28:49 -07:00
andrew
bf91bca16d
Include long common prefix in fuzz test
2024-04-18 12:43:48 -07:00
andrew
dea8d6ae01
Align ArenaImpl allocation to alignof(ArenaImpl)
...
Fixes #20
2024-04-01 17:31:16 -07:00
andrew
215865a462
Experimental wasm support
2024-03-30 16:20:55 -07:00
andrew
5cf43d1bfa
Add weaselab namespace
2024-03-27 16:07:05 -07:00
andrew
25cc427ec5
Assert safe_free size is correct in debug builds
...
Closes #16
2024-03-27 15:34:24 -07:00
andrew
19edc6f78f
Interface change! Add ConflictSet::getBytes
...
Closes #12
2024-03-20 12:11:34 -07:00
andrew
aa6f237d50
Document and test thread safety properties
...
Closes #2
2024-03-19 16:27:24 -07:00
andrew
ef9b789745
Remove unused code
2024-03-19 11:12:03 -07:00
andrew
edd7bcaa1e
Check ConflictSet preconditions in script_test
2024-03-19 10:31:04 -07:00
andrew
f2b5e9b0bf
Change max key len to 8, update corpus
...
Now that we don't have a fixed buffer reserved for partial key bytes,
there's nothing (obvious) that makes testing short versus long keys much
different. maybeDecreaseCapacity is an exception, and we'll write some
tests covering that manually.
2024-03-18 11:55:43 -07:00
andrew
5aab76847a
Add inner-full-word test
2024-03-17 14:42:11 -07:00
andrew
b817e3c749
Track malloc size with a header for SHOW_MEMORY
2024-03-14 15:30:46 -07:00
andrew
6b6a9bace9
Fix SHOW_MEMORY for gcc and glibc on linux
2024-03-13 16:57:38 -07:00
andrew
3cb0765fdd
Rework SHOW_MEMORY
...
closes #10
2024-03-13 16:48:28 -07:00
andrew
b0ac7e41b9
Update corpus
2024-03-12 14:52:43 -07:00
andrew
87dd70c4b6
Fix bug introduced in 5e1fb1dac5
2024-03-07 17:43:34 -08:00
andrew
5e1fb1dac5
Use entry bytes in partial key if entry not present
...
Closes #8
2024-03-07 13:47:37 -08:00
andrew
be5f1b67c8
Interface change! addWrites now takes a single write version
2024-03-05 16:55:27 -08:00
andrew
a4b03bc216
Add example augmented radix tree figure
2024-02-29 16:35:07 -08:00
andrew
be7f643f14
Add Node1 and SHOW_MEMORY
2024-02-26 12:25:06 -08:00
andrew
0cb16c384f
Fix include path
2024-02-21 16:48:33 -08:00
andrew
3750aa7b5b
Vendor valgrind headers
...
This is encouraged according to https://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.clientreq
2024-02-21 16:15:40 -08:00
andrew
cb2f66b4b7
Remove a check from setOldestVersion
2024-02-19 16:20:04 -08:00
andrew
c9baa80212
Implement setOldestVersion
2024-02-19 15:58:59 -08:00
andrew
deb85f5645
Add callgrind client requests
2024-02-18 20:11:33 -08:00
andrew
d60da4c087
Add benchmark
2024-02-11 09:26:03 -08:00
andrew
80a79aab1f
Still need a better way identify left/right sidedness
2024-02-09 15:17:37 -08:00
andrew
403608c794
WIP just need to identify nodes on begin -> end path
2024-02-09 12:51:09 -08:00
andrew
968e03403d
Revert to linear range checking, but keep short-circuiting
2024-02-08 10:05:22 -08:00
andrew
9363d7866c
Specify maxVersion meaning
2024-02-07 15:33:15 -08:00
andrew
98124d5493
Sublinear read range checking
...
Still slow though
2024-02-06 16:52:20 -08:00
andrew
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
andrew
57ec97f2ee
Naive range reads implementation and test
2024-02-05 13:59:10 -08:00
andrew
a73e366dc9
Draw num writes directly
2024-02-03 17:03:23 -08:00
andrew
aa8327cb5d
Fix gcc warning
2024-02-01 17:01:47 -08:00
andrew
0eff5628bd
Fix lastLeq bug
2024-02-01 11:24:57 -08:00