57 Commits
Author SHA1 Message Date
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