Commit Graph

115 Commits

Author SHA1 Message Date
9834b2e811 Use hardware-seeded, high quality rng for priority
This fixes a potential denial of service attack
2024-05-14 09:49:19 -07:00
59878cfe6c Add ApiTest.cpp 2024-05-10 17:18:21 -07:00
6890005c70 Symbol tests for x86-64 linux 2024-05-10 14:08:25 -07:00
5b57e4dc33 Symbol tests on aarch64 linux 2024-05-10 14:03:04 -07:00
ba2b76cb13 Symbol visibility tests 2024-05-10 13:47:37 -07:00
f5920ba6c7 Implement getBytes() 2024-05-10 12:10:00 -07:00
c65d874c07 Clarify adjacent clears 2024-05-09 19:53:02 -07:00
456b8f9c96 Suggest ignoring versions older than getOldestVersion 2024-05-09 17:00:32 -07:00
b89b7b7f8e Require non-adjacent mutations
This should make it so that mutations can only be adjacent if they're at
different versions
2024-05-09 16:59:19 -07:00
7efd68f084 GC fixes 2024-05-09 16:53:23 -07:00
cdd186ed83 Build adhoc test with asan, ubsan 2024-05-09 16:22:06 -07:00
75e24d3818 Fix firstGeq bug initializing mutationIndex 2024-05-09 16:20:08 -07:00
9aed358615 Add todo to support decrementing end() 2024-05-09 16:19:54 -07:00
bb12e92635 Use mutationIndex instead of materializeClearEndingHere 2024-05-09 16:12:54 -07:00
5111834a0b Allow search to search at any version
And re-use non-null iterators in firstGeq
2024-05-09 14:25:03 -07:00
6baf069445 Fix firstGeq bug 2024-05-09 13:48:52 -07:00
fbd5292478 Fix thread safety issue 2024-05-09 13:42:42 -07:00
a36c96d7c2 Implement get{,Oldest}Version 2024-05-09 13:39:54 -07:00
bce4a8b2d8 Implement firstGeq 2024-05-09 13:37:33 -07:00
91896313f7 Add TODO 2024-05-09 11:37:59 -07:00
beabb8c690 Make sure types in ABI are standard layout 2024-05-09 11:36:30 -07:00
f58409c21b Encode point clear to match spec 2024-05-09 11:33:30 -07:00
531ccb5be9 Include mutation's version in Iterator::operator* 2024-05-09 11:14:29 -07:00
e27580d31f Show more version info in printInOrder 2024-05-08 18:06:19 -07:00
b5917eb397 Track mutation versions precisely
This will be necessary for correct garbage collection
2024-05-08 18:00:53 -07:00
4482f93895 Implement Iterator 2024-05-08 16:54:36 -07:00
e2dde59d19 Add hello world sdl project
The idea is eventually to visualize the tree to help debugging
2024-05-08 15:13:58 -07:00
8f7fccee76 Implement clears in addMutations 2024-05-07 16:13:18 -07:00
2c6ec61f82 Partially implement addMutations 2024-05-07 11:28:12 -07:00
744c3b91ea Set GCOVR exclusions for outside of implementation 2024-05-06 17:14:09 -07:00
32e68dad07 Fix weird whitespace 2024-05-06 12:53:00 -07:00
411c1a1070 Mention latency/throughput tradeoff 2024-05-06 12:49:06 -07:00
745f0a14a3 Clarify the logical view of iterators 2024-05-06 12:40:31 -07:00
393168ff53 Clarify result of querying for key intersecting mutation 2024-05-06 10:10:38 -07:00
c8088a8209 static_assert that Iterator is conformant bidi iterator 2024-05-06 10:10:38 -07:00
5a8275ffc1 Clarify buffer reclamation condition 2024-05-04 18:33:53 -07:00
08583f2ac0 Don't pass null to memcpy 2024-05-04 18:33:51 -07:00
b7f3b136cc Add missing includes on linux 2024-05-04 17:43:12 -07:00
bfbe9638eb Explain intent of condition 2024-05-04 12:02:55 -07:00
8e1faadd30 Check insertion takes place before upsize check 2024-05-04 12:00:05 -07:00
58a50e2056 Improve RootSet documentation 2024-05-03 16:39:30 -07:00
971aabea6e Prepare for firstGeq to be safe on foreign threads 2024-05-03 16:17:06 -07:00
99760176a6 Describe perf benefit of reusing iterator from same version 2024-05-02 21:24:05 -07:00
0727a1ebe7 Improve thread-safety documentation 2024-05-02 21:23:46 -07:00
eba1c2ce2a Add some thread-safety guarantees to interface 2024-05-02 18:20:55 -07:00
15b9b6495a Fix wrong order of arguments to update 2024-05-02 16:44:23 -07:00
65429ebd0a Implement insert 2024-05-02 15:34:19 -07:00
adc376a573 Linux fixes + bug fix in bitset size calculation 2024-05-02 14:35:22 -07:00
bd826ac42c Remove unnecessary cast 2024-05-01 17:32:47 -07:00
26c66bcefb Return this from addref for Entry 2024-05-01 17:24:48 -07:00