97 Commits

Author SHA1 Message Date
862fc3297c Allow calling printInOrder from debugger 2024-05-14 15:29:34 -07:00
93021d5b28 Fix bug in move 2024-05-14 15:28:22 -07:00
5b90bcb24f Avoid call to interposable symbol 2024-05-14 10:30:35 -07:00
b3ad250f41 Prevent unnecessary rotations 2024-05-14 10:26:40 -07:00
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
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
7efd68f084 GC fixes 2024-05-09 16:53:23 -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
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
c8088a8209 static_assert that Iterator is conformant bidi iterator 2024-05-06 10:10:38 -07:00
08583f2ac0 Don't pass null to memcpy 2024-05-04 18:33:51 -07:00
971aabea6e Prepare for firstGeq to be safe on foreign threads 2024-05-03 16:17:06 -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
791030dc3a Print clear-related metadata for printInOrder 2024-05-01 17:18:02 -07:00
9dbd9e028a Fix bugs found by exercising the code 2024-05-01 17:10:14 -07:00
3713e5e5bb Implement rotate. Not tested 2024-05-01 16:43:10 -07:00
77f4663bc8 Add RootSet 2024-05-01 15:52:40 -07:00
11e6278766 Use hash of key as priority. Vendor xxhash v0.8.2 2024-05-01 14:17:26 -07:00
72cb7a70bf Check for OOM 2024-05-01 13:06:52 -07:00
a14f208c39 Change entry representation to reduce number of entries 2024-05-01 12:40:26 -07:00
5fc72a294d Use our own bitset 2024-04-30 16:39:24 -07:00
c607f77b3b Specify memory ordering 2024-04-30 15:57:20 -07:00
6944807d0b Initial garbage collector implementation 2024-04-30 14:46:36 -07:00
91cb16bdc0 Draft header 2024-04-30 11:39:34 -07:00