andrew
2eb461b8ea
Fix build for llvm 18
2024-06-11 11:38:55 -07:00
andrew
e2e92f4ef5
Address some feedback on paper
2024-05-06 14:30:49 -07:00
andrew
f6f25cfcce
Paper tweaks
2024-04-22 15:26:00 -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
ea76e04cda
Fix weird-looking url in ubsan reference
...
Also use the exact html title
2024-04-19 15:19:39 -07:00
andrew
452007e079
Change paper title to emphasize usefulness outside fdb
2024-04-19 14:53:31 -07:00
andrew
37c75f747b
Draft Testing section
2024-04-19 14:26:47 -07:00
andrew
c96d682483
Fix memory error when SHOW_MEMORY = 1
2024-04-19 11:28:49 -07:00
andrew
6e63fd5126
Add internal entry points, with test coverage
...
Closes #25
2024-04-19 11:23:25 -07:00
andrew
f2678de811
Preserve version in clearConflictSet in fdb patch
...
Closes #24
2024-04-19 11:00:43 -07:00
andrew
4d7ad075b2
Bump version
2024-04-18 14:32:51 -07:00
andrew
d2e1863593
Account for every uncovered line in the implementation
...
Closes #23
2024-04-18 12:43:48 -07:00
andrew
bf91bca16d
Include long common prefix in fuzz test
2024-04-18 12:43:48 -07:00
andrew
08ed17f47b
Fail jenkins build if not 100% line coverage
2024-04-18 12:43:48 -07:00
andrew
76a45f16ad
Exercise freelist size limiting code
2024-04-17 18:27:01 -07:00
andrew
c15d296432
Exercise copyChildrenAndKeyFrom for Node{48,256} to itself
2024-04-17 17:13:22 -07:00
andrew
64a98c529c
Fix conflict_set.py bug, and add full inner words test
...
Apparently all bytes were 0
2024-04-17 14:11:26 -07:00
andrew
ed1388ed21
Disable script tests when cross compiling
2024-04-17 12:25:16 -07:00
andrew
309d315956
Add DebugConflictSet, which asserts using skip list as a reference
...
CC #23
2024-04-17 12:08:39 -07:00
andrew
eab2e46a56
Mention that we modified SkipList.cpp
2024-04-17 12:08:33 -07:00
andrew
85db1a8786
Allow to choose implementation in python wrapper
...
And fix a few minor bugs to make the python tests pass for skip_list.
CC #23
2024-04-17 12:08:28 -07:00
andrew
717f9d6829
Remove ScriptTest.cpp, replace with test_conflict_set.py
...
CC #23
2024-04-17 12:08:08 -07:00
andrew
fd93300ce8
Tweaks and add more planned sections
2024-04-16 17:36:29 -07:00
andrew
b7e16b31ff
Fill out empty subsections
2024-04-16 12:57:57 -07:00
andrew
a324d31518
Second pass at "Checking range reads"
2024-04-16 12:14:04 -07:00
andrew
fdb05e0e33
First draft of "Checking range reads" subsection
2024-04-15 17:32:33 -07:00
andrew
7c27d4a972
Always target macos 11.0
2024-04-09 14:08:58 -07:00
andrew
738de01cb4
Add getBytes to conflict_set.py
2024-04-08 17:33:51 -07:00
andrew
325cab6a95
Target earliest convenient macos version
2024-04-08 17:16:01 -07:00
andrew
0b2821941a
Bump version
2024-04-08 15:52:06 -07:00
andrew
a40b5dcd74
Add script to build .pkg file for macos
2024-04-08 15:21:40 -07:00
andrew
193b1926ff
Fix python type annotation
2024-04-07 22:28:40 -07:00
andrew
1c900c5a8c
Use PRE_LINK
...
According to
https://cmake.org/cmake/help/latest/command/add_custom_command.html this
more accurately matches the intent
2024-04-04 17:03:57 -07:00
andrew
90fdcdd51a
Don't update mtime in privatize_symbols_macos.sh
...
It confuses ninja and we see things like the following:
ninja explain: stored deps info out of date for 'CMakeFiles/conflict-set-object.dir/ConflictSet.cpp.o' (1712275080328387291 vs 1712275080349012981)
2024-04-04 17:02:51 -07:00
andrew
eb3f6823eb
Remove prettier
...
It caused a weird jenkins error trying to look at /etc/passwd. Not worth
the trouble for formatting yaml and md, which I'm barely using.
2024-04-04 16:29:26 -07:00
andrew
1534e10b75
Fix macos shared library name in conflict_set.py
2024-04-04 16:17:06 -07:00
andrew
3c100ccee8
Add prettier and black as pre-commit hooks
2024-04-04 15:59:27 -07:00
andrew
5cf45d1c35
Preliminary support for writing tests in python
2024-04-04 15:58:57 -07:00
andrew
4f97932893
Bump version
2024-04-04 12:02:01 -07:00
andrew
24b0f6b7e4
Add missing _GLOBAL_OFFSET_TABLE_ symbol
2024-04-04 11:36:32 -07:00
andrew
e77c3fdee6
Adding missing memset import
2024-04-04 11:35:44 -07:00
andrew
383b956bc0
Set debian libc6 dep precisely
2024-04-04 11:12:41 -07:00
andrew
5fad15305a
Track x64 and arm imports in separate files
2024-04-04 11:04:26 -07:00
andrew
ad91fb36a5
Symbol tests for macos + whitelist imports/exports
...
commit 1ad8276100
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:44:35 2024 -0700
Add symbols for arm build
commit 058e4d5302
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:42:48 2024 -0700
Add _GLOBAL_OFFSET_TABLE_
commit a201f3ada8
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:34:05 2024 -0700
Add memset to symbol imports
commit c1129ed0e2
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:32:28 2024 -0700
Add symbol imports file
commit 618766ce2e
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:27:07 2024 -0700
Fix objcopy filepath
commit e774a90007
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:24:44 2024 -0700
Use shellcheck precommit without docker
commit baddea7f57
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:20:26 2024 -0700
Update and freeze pre-commit hooks
commit 2d3e7b9004
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:19:55 2024 -0700
Add shellcheck to pre-commit
Closes #22
commit c4862fee9b
Author: Andrew Noyes <andrew@weaselab.dev >
Date: Wed Apr 3 12:15:08 2024 -0700
Add symbol tests for apple
closes #21
2024-04-03 12:50:51 -07:00
andrew
38c1481432
Make visibility=hidden symbols private on macos
2024-04-02 18:30:17 -07:00
andrew
771ae896e7
Check that -msimd128 flag is valid
2024-04-02 15:48:18 -07:00
andrew
5bf72bda61
Don't treat full_relro_flags as all one flag
2024-04-02 14:20:22 -07:00
andrew
a534f3b758
Conditionally add -pie
2024-04-02 14:15:11 -07:00
andrew
ae4fa889c7
Partial support for wasi-sdk
2024-04-02 12:14:04 -07:00
andrew
e3d3b0ec0d
objcopy doesn't support --keep-global-symbols for wasm
2024-04-02 12:09:01 -07:00
andrew
dea8d6ae01
Align ArenaImpl allocation to alignof(ArenaImpl)
...
Fixes #20
2024-04-01 17:31:16 -07:00
andrew
dbc6f2313a
Add missing cerrno include
2024-04-01 17:21:43 -07:00
andrew
4f51878642
Add -msimd128 if USE_SIMD_FALLBACK=OFF
2024-03-30 17:57:50 -07:00
andrew
215865a462
Experimental wasm support
2024-03-30 16:20:55 -07:00
andrew
348ebf016a
Enable relro for shared lib
2024-03-29 21:51:02 -07:00
andrew
377259ffa0
Unsuppress -Wmaybe-uninitialized
...
I don't see the warning anymore locally
2024-03-29 18:57:43 -07:00
andrew
70220d95e7
Bump version
2024-03-29 16:23:09 -07:00
andrew
71c39f9955
Opt-in to rpm/deb default package filenames
2024-03-29 15:56:58 -07:00
andrew
8cc17158fd
Fix preprocessing instructions for linux
2024-03-28 14:58:29 -07:00
andrew
ab211c646a
Apply compiler-appeasing syntax changes from Taoxi
2024-03-28 14:57:31 -07:00
andrew
7af961f141
Fix jenkins build
2024-03-28 11:44:01 -07:00
andrew
a91df62608
Add USE_SIMD_FALLBACK build in jenkins
2024-03-28 11:33:53 -07:00
andrew
0a1843a161
Add USE_SIMD_FALLBACK
2024-03-28 11:12:50 -07:00
andrew
4edf0315d9
Find insertion point for Node16 with simd
...
Closes #13
2024-03-28 10:47:20 -07:00
andrew
14515e186a
Update readme benchmarks again
...
I think the last skiplisttest benchmark looked bad because I had vscode
+ firefox + ?? open
2024-03-27 16:47:36 -07:00
andrew
b0085df5ad
Update symbols.txt
2024-03-27 16:29:30 -07:00
andrew
76a7e17b29
Update readme benchmarks
...
I was incorrectly linking to an old build of conflict set, before the
conflict-set name change. I don't know what the regression is from, but
update the README for transparency now.
2024-03-27 16:12:45 -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
c15c2e7b44
Remove redundant static assert
...
Closes #14
2024-03-27 12:41:45 -07:00
andrew
a4d1f91670
Update README benchmark after adding getBytes
2024-03-20 16:26:05 -07:00
andrew
b7cdecaf71
Document thread-safety in terms of constness
2024-03-20 16:16:15 -07:00
andrew
cda28643a6
Fix ConflictSet_getBytes
2024-03-20 16:15:43 -07:00
andrew
cdb5360b9a
Allow _GLOBAL_OFFSET_TABLE_ usage
2024-03-20 12:39:18 -07:00
andrew
ef224a60f4
Allow use of __tls_get_addr
2024-03-20 12:29:18 -07:00
andrew
6222b74787
Fix tests
...
Add the new symbol, and update the valgrind client request so that
Node::partialKeyCapacity is defined.
2024-03-20 12:21:59 -07:00
andrew
19edc6f78f
Interface change! Add ConflictSet::getBytes
...
Closes #12
2024-03-20 12:11:34 -07:00
andrew
3f9d01c46a
Users will now do find_package(conflict-set)
2024-03-19 19:05:54 -07:00
andrew
db03c6f901
Fix invalid package name for debian
2024-03-19 17:43:58 -07:00
andrew
c1698b040b
Disable tsan for debug builds
...
Too slow
2024-03-19 16:54:29 -07:00
andrew
2e08b54785
Update README.md with 1.0 benchmarks
...
Closes #7
2024-03-19 16:41:59 -07:00
andrew
aa6f237d50
Document and test thread safety properties
...
Closes #2
2024-03-19 16:27:24 -07:00
andrew
becfd25139
De-templatize kUseFreeList
...
This results in smaller code. This is part of the "let the compiler be
in charge of inlining decisions" theme.
2024-03-19 15:12:31 -07:00
andrew
d78b36821b
Remove more redundant nullptr checks
2024-03-19 15:05:34 -07:00
andrew
ce79b47fbe
Revert 303b368fc5
...
This is a code-size / speed tradeoff. Maybe it's a good idea here, but
it's a bit weird to do this in some places and not others (there are
many places we can avoid switching on type this way). The compiler can
inline and then dead code eliminate to achieve the same effect, so we'll
just let the compiler be in charge of inlining decisions.
2024-03-19 15:01:13 -07:00
andrew
727b7e642a
Save more redundant nullptr checks
2024-03-19 14:34:59 -07:00
andrew
cb4c2b7e1e
Avoid redundant null check in some cases
2024-03-19 14:29:13 -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
be8ac879c5
Update README benchmarks
2024-03-18 17:24:26 -07:00
andrew
83c7f66d67
Remove some redundant nullptr checks
2024-03-18 16:22:24 -07:00
andrew
a5710b8282
Remove performance-only code from debug build for increased coverage
2024-03-18 16:21:55 -07:00
andrew
c31eebd5de
No caller of CheckRangeRightSide::downLeftSpine has null n
2024-03-18 16:03:41 -07:00
andrew
ddeb059968
Remove more dead code
2024-03-18 16:01:56 -07:00
andrew
5a0bcf9a5a
Strengthen precondition to checkRangeStartsWith
...
and remove resulting dead code
2024-03-18 15:44:44 -07:00
andrew
97717cec86
Remove suspected dead code
...
Removing it is definitely safe. I suspect that any way to get here would
have already returned from checkRangeRead during the search for the
common prefix
2024-03-18 15:30:15 -07:00
andrew
6a13c43a78
Remove mistakenly checked in printfs
2024-03-18 14:03:09 -07:00
andrew
c6c438bae2
Address more missing coverage
...
cc #3 . Found some non-trivial dead code this time!
2024-03-18 14:01:30 -07:00
andrew
7d4f832b43
Address some missing coverage
...
cc #3
2024-03-18 13:36:35 -07:00