Compare commits
78 Commits
8a4032e850
...
interleave
| Author | SHA1 | Date | |
|---|---|---|---|
| d6269c5b7c | |||
| faacdff2d9 | |||
| 821179b8de | |||
| 681a961289 | |||
| c73a3da14c | |||
| 5153d25cce | |||
| d2ec4e7fae | |||
| c7e2358746 | |||
| ec1c1cf43f | |||
| eaad0c69a7 | |||
| 309e6ab816 | |||
| 12b82c1be5 | |||
| 0cce9df8a8 | |||
| 0df09743da | |||
| c4b0aa1085 | |||
| 051bfb05fe | |||
| 7e1bcbf9be | |||
| 4e685bbc3b | |||
| b6bfc6f48d | |||
| 3b858551f3 | |||
| 2c1c26bc88 | |||
| 958ee15cfc | |||
| 9015b555de | |||
| 7aac73ee80 | |||
| c06afeb81e | |||
| b015711b7c | |||
| f27ca6d6af | |||
| c0bb175b7e | |||
| 6a6fe5738a | |||
| dc16eccf06 | |||
| 3f15db7e82 | |||
| e8a8b5aef1 | |||
| b8fefff3ba | |||
| 2706b2f65e | |||
| f1292efe41 | |||
| a2d3d269ec | |||
| 8ff7a112b7 | |||
| cf25b8626c | |||
| e025f934d8 | |||
| e5452c0f7d | |||
| 66fc526a55 | |||
| 21f08b9f88 | |||
| 10c2f06199 | |||
| 5cf04e9718 | |||
| 707b220fbc | |||
| fd39065498 | |||
| b963d481c9 | |||
| e7ed47e288 | |||
| 04f138109b | |||
| a0d07dd40c | |||
| 7fb408b466 | |||
| 6d265acfc7 | |||
| 67a61513b8 | |||
| 583f2e7612 | |||
| 66e5b033c0 | |||
| 1d705cd4b7 | |||
| 769cf8de9a | |||
| 84942a5bf8 | |||
| 7ad6872ee8 | |||
| 9db5eb960d | |||
| 5df25a138a | |||
| 381fbce0c0 | |||
| 87aeb349a3 | |||
| 28fb0d7faa | |||
| 5013c689a0 | |||
| 316bbf679f | |||
| 58aabe83f5 | |||
| 0c8a051913 | |||
| 11e8717da8 | |||
| 824037bf32 | |||
| bbe964110e | |||
| 100449c76c | |||
| 51b5f638a4 | |||
| 767dacc742 | |||
| 978a7585b6 | |||
| 71b3c7fb7f | |||
| 420f50c40f | |||
| 69a131df38 |
38
Bench.cpp
38
Bench.cpp
@@ -17,26 +17,26 @@ constexpr int kPrefixLen = 0;
|
||||
|
||||
constexpr int kMvccWindow = 100000;
|
||||
|
||||
std::span<const uint8_t> makeKey(Arena &arena, int index) {
|
||||
TrivialSpan makeKey(Arena &arena, int index) {
|
||||
|
||||
auto result =
|
||||
std::span<uint8_t>{new (arena) uint8_t[4 + kPrefixLen], 4 + kPrefixLen};
|
||||
uint8_t *buf = new (arena) uint8_t[4 + kPrefixLen];
|
||||
auto result = TrivialSpan{buf, 4 + kPrefixLen};
|
||||
index = __builtin_bswap32(index);
|
||||
memset(result.data(), 0, kPrefixLen);
|
||||
memcpy(result.data() + kPrefixLen, &index, 4);
|
||||
memset(buf, 0, kPrefixLen);
|
||||
memcpy(buf, &index, 4);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
ConflictSet::ReadRange singleton(Arena &arena, std::span<const uint8_t> key) {
|
||||
auto r =
|
||||
std::span<uint8_t>(new (arena) uint8_t[key.size() + 1], key.size() + 1);
|
||||
memcpy(r.data(), key.data(), key.size());
|
||||
r[key.size()] = 0;
|
||||
ConflictSet::ReadRange singleton(Arena &arena, TrivialSpan key) {
|
||||
uint8_t *buf = new (arena) uint8_t[key.size() + 1];
|
||||
auto r = TrivialSpan(buf, key.size() + 1);
|
||||
memcpy(buf, key.data(), key.size());
|
||||
buf[key.size()] = 0;
|
||||
return {{key.data(), int(key.size())}, {r.data(), int(r.size())}, 0};
|
||||
}
|
||||
|
||||
ConflictSet::ReadRange prefixRange(Arena &arena, std::span<const uint8_t> key) {
|
||||
ConflictSet::ReadRange prefixRange(Arena &arena, TrivialSpan key) {
|
||||
int index;
|
||||
for (index = key.size() - 1; index >= 0; index--)
|
||||
if ((key[index]) != 255)
|
||||
@@ -48,9 +48,10 @@ ConflictSet::ReadRange prefixRange(Arena &arena, std::span<const uint8_t> key) {
|
||||
assert(false);
|
||||
}
|
||||
|
||||
auto r = std::span<uint8_t>(new (arena) uint8_t[index + 1], index + 1);
|
||||
memcpy(r.data(), key.data(), index + 1);
|
||||
r[r.size() - 1]++;
|
||||
uint8_t *buf = new (arena) uint8_t[index + 1];
|
||||
auto r = TrivialSpan(buf, index + 1);
|
||||
memcpy(buf, key.data(), index + 1);
|
||||
buf[r.size() - 1]++;
|
||||
return {{key.data(), int(key.size())}, {r.data(), int(r.size())}, 0};
|
||||
}
|
||||
|
||||
@@ -81,14 +82,7 @@ void benchConflictSet() {
|
||||
++version;
|
||||
}
|
||||
|
||||
// I don't know why std::less didn't work /shrug
|
||||
struct Less {
|
||||
bool operator()(const std::span<const uint8_t> &lhs,
|
||||
const std::span<const uint8_t> &rhs) const {
|
||||
return lhs < rhs;
|
||||
}
|
||||
};
|
||||
auto points = set<std::span<const uint8_t>, Less>(arena);
|
||||
auto points = set<TrivialSpan, std::less<>>(arena);
|
||||
|
||||
while (points.size() < kOpsPerTx * 2 + 1) {
|
||||
// TODO don't use rand?
|
||||
|
||||
@@ -33,6 +33,15 @@ endif()
|
||||
|
||||
add_compile_options(-fdata-sections -ffunction-sections -Wswitch-enum
|
||||
-Werror=switch-enum -fPIC)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
add_link_options("-Wno-unused-command-line-argument")
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
add_compile_options("-Wno-maybe-uninitialized")
|
||||
endif()
|
||||
|
||||
if(NOT APPLE)
|
||||
# This causes some versions of clang to crash on macos
|
||||
add_compile_options(-g -fno-omit-frame-pointer)
|
||||
@@ -182,10 +191,13 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND BUILD_TESTING)
|
||||
target_compile_options(driver_skip_list PRIVATE ${TEST_FLAGS})
|
||||
target_link_libraries(driver_skip_list PRIVATE skip_list)
|
||||
|
||||
foreach(TEST ${CORPUS_TESTS})
|
||||
get_filename_component(hash ${TEST} NAME)
|
||||
add_test(NAME skip_list_${hash} COMMAND driver_skip_list ${TEST})
|
||||
endforeach()
|
||||
# enable to test skip list
|
||||
if(0)
|
||||
foreach(TEST ${CORPUS_TESTS})
|
||||
get_filename_component(hash ${TEST} NAME)
|
||||
add_test(NAME skip_list_${hash} COMMAND driver_skip_list ${TEST})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# ad hoc testing
|
||||
add_executable(conflict_set_main ConflictSet.cpp)
|
||||
|
||||
3057
ConflictSet.cpp
3057
ConflictSet.cpp
File diff suppressed because it is too large
Load Diff
14
Dockerfile
14
Dockerfile
@@ -11,23 +11,22 @@ RUN TZ=America/Los_Angeles DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
binutils-aarch64-linux-gnu \
|
||||
build-essential \
|
||||
ccache \
|
||||
clang \
|
||||
cmake \
|
||||
curl \
|
||||
doxygen \
|
||||
file \
|
||||
g++-aarch64-linux-gnu \
|
||||
gcovr \
|
||||
git \
|
||||
gperf \
|
||||
graphviz \
|
||||
gnupg \
|
||||
libc6-dbg \
|
||||
lsb-release \
|
||||
ninja-build \
|
||||
pre-commit \
|
||||
python3-requests \
|
||||
qemu-user \
|
||||
rpm \
|
||||
software-properties-common \
|
||||
texlive-full \
|
||||
wget \
|
||||
zstd
|
||||
|
||||
# Install recent valgrind from source
|
||||
@@ -43,6 +42,11 @@ RUN curl -Ls https://sourceware.org/pub/valgrind/valgrind-3.22.0.tar.bz2 -o valg
|
||||
cd .. && \
|
||||
rm -rf /tmp/*
|
||||
|
||||
# Recent clang
|
||||
RUN wget https://apt.llvm.org/llvm.sh && chmod +x ./llvm.sh && ./llvm.sh 20
|
||||
|
||||
RUN apt-get -y install clang llvm
|
||||
|
||||
# Set after building valgrind, which doesn't build with clang for some reason
|
||||
ENV CC=clang
|
||||
ENV CXX=clang++
|
||||
|
||||
58
Internal.h
58
Internal.h
@@ -26,9 +26,38 @@ using namespace weaselab;
|
||||
#define DEBUG_VERBOSE 0
|
||||
#define SHOW_MEMORY 0
|
||||
|
||||
[[nodiscard]] inline auto
|
||||
operator<=>(const std::span<const uint8_t> &lhs,
|
||||
const std::span<const uint8_t> &rhs) noexcept {
|
||||
// std::span is not trivially constructible. We want a span that leaves its
|
||||
// members uninitialized for performance reasons.
|
||||
struct TrivialSpan {
|
||||
TrivialSpan() = default;
|
||||
TrivialSpan(const uint8_t *begin, int len) : begin(begin), len(len) {}
|
||||
|
||||
uint8_t back() const {
|
||||
assert(len > 0);
|
||||
return begin[len - 1];
|
||||
}
|
||||
uint8_t front() const {
|
||||
assert(len > 0);
|
||||
return begin[0];
|
||||
}
|
||||
uint8_t operator[](int i) const {
|
||||
assert(0 <= i);
|
||||
assert(i < len);
|
||||
return begin[i];
|
||||
}
|
||||
int size() const { return len; }
|
||||
TrivialSpan subspan(int offset, int len) { return {begin + offset, len}; }
|
||||
const uint8_t *data() const { return begin; }
|
||||
|
||||
private:
|
||||
const uint8_t *begin;
|
||||
int len;
|
||||
};
|
||||
|
||||
static_assert(std::is_trivial_v<TrivialSpan>);
|
||||
|
||||
[[nodiscard]] inline auto operator<=>(const TrivialSpan &lhs,
|
||||
const TrivialSpan &rhs) noexcept {
|
||||
int cl = std::min<int>(lhs.size(), rhs.size());
|
||||
if (cl > 0) {
|
||||
if (auto c = memcmp(lhs.data(), rhs.data(), cl) <=> 0; c != 0) {
|
||||
@@ -38,7 +67,7 @@ operator<=>(const std::span<const uint8_t> &lhs,
|
||||
return lhs.size() <=> rhs.size();
|
||||
}
|
||||
|
||||
[[nodiscard]] inline auto operator<=>(const std::span<const uint8_t> &lhs,
|
||||
[[nodiscard]] inline auto operator<=>(const TrivialSpan &lhs,
|
||||
const ConflictSet::Key &rhs) noexcept {
|
||||
int cl = std::min<int>(lhs.size(), rhs.len);
|
||||
if (cl > 0) {
|
||||
@@ -46,7 +75,18 @@ operator<=>(const std::span<const uint8_t> &lhs,
|
||||
return c;
|
||||
}
|
||||
}
|
||||
return lhs.size() <=> size_t(rhs.len);
|
||||
return lhs.size() <=> rhs.len;
|
||||
}
|
||||
|
||||
[[nodiscard]] inline auto operator<=>(const ConflictSet::Key &lhs,
|
||||
const ConflictSet::Key &rhs) noexcept {
|
||||
int cl = std::min<int>(lhs.len, rhs.len);
|
||||
if (cl > 0) {
|
||||
if (auto c = memcmp(lhs.p, rhs.p, cl) <=> 0; c != 0) {
|
||||
return c;
|
||||
}
|
||||
}
|
||||
return lhs.len <=> rhs.len;
|
||||
}
|
||||
|
||||
// This header contains code that we want to reuse outside of ConflictSet.cpp or
|
||||
@@ -569,7 +609,7 @@ inline std::string printable(const Key &key) {
|
||||
return printable(std::string_view((const char *)key.p, key.len));
|
||||
}
|
||||
|
||||
inline std::string printable(std::span<const uint8_t> key) {
|
||||
inline std::string printable(TrivialSpan key) {
|
||||
return printable(std::string_view((const char *)key.data(), key.size()));
|
||||
}
|
||||
|
||||
@@ -677,10 +717,8 @@ struct TestDriver {
|
||||
arbitrary->randomBytes(begin + prefixLen, keyLen - prefixLen);
|
||||
writes[i].end.len = keyLen;
|
||||
writes[i].end.p = begin;
|
||||
auto c =
|
||||
std::span<const uint8_t>(writes[i].begin.p,
|
||||
writes[i].begin.len) <=>
|
||||
std::span<const uint8_t>(writes[i].end.p, writes[i].end.len);
|
||||
auto c = TrivialSpan(writes[i].begin.p, writes[i].begin.len) <=>
|
||||
TrivialSpan(writes[i].end.p, writes[i].end.len);
|
||||
if (c > 0) {
|
||||
using std::swap;
|
||||
swap(writes[i].begin, writes[i].end);
|
||||
|
||||
42
Jenkinsfile
vendored
42
Jenkinsfile
vendored
@@ -36,18 +36,6 @@ pipeline {
|
||||
sh 'pre-commit run --all-files --show-diff-on-failure'
|
||||
}
|
||||
}
|
||||
stage('Clang') {
|
||||
agent {
|
||||
dockerfile {
|
||||
args '-v /home/jenkins/ccache:/ccache'
|
||||
reuseNode true
|
||||
}
|
||||
}
|
||||
steps {
|
||||
CleanBuildAndTest("")
|
||||
recordIssues(tools: [clang()])
|
||||
}
|
||||
}
|
||||
stage('64 bit versions') {
|
||||
agent {
|
||||
dockerfile {
|
||||
@@ -81,7 +69,7 @@ pipeline {
|
||||
CleanBuildAndTest("-DUSE_SIMD_FALLBACK=ON")
|
||||
}
|
||||
}
|
||||
stage('Release [gcc]') {
|
||||
stage('Release [clang]') {
|
||||
agent {
|
||||
dockerfile {
|
||||
args '-v /home/jenkins/ccache:/ccache'
|
||||
@@ -89,8 +77,8 @@ pipeline {
|
||||
}
|
||||
}
|
||||
steps {
|
||||
CleanBuildAndTest("-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS=-DNVALGRIND")
|
||||
recordIssues(tools: [gcc()])
|
||||
CleanBuildAndTest("-DCMAKE_CXX_FLAGS=-DNVALGRIND")
|
||||
recordIssues(tools: [clang()])
|
||||
sh '''
|
||||
cd build
|
||||
cpack -G DEB
|
||||
@@ -103,7 +91,19 @@ pipeline {
|
||||
minio bucket: 'jenkins', credentialsId: 'jenkins-minio', excludes: '', host: 'minio.weaselab.dev', includes: 'build/*.deb,build/*.rpm,paper/*.pdf', targetFolder: '${JOB_NAME}/${BUILD_NUMBER}/${STAGE_NAME}/'
|
||||
}
|
||||
}
|
||||
stage('Release [gcc,aarch64]') {
|
||||
stage('Release [gcc]') {
|
||||
agent {
|
||||
dockerfile {
|
||||
args '-v /home/jenkins/ccache:/ccache'
|
||||
reuseNode true
|
||||
}
|
||||
}
|
||||
steps {
|
||||
CleanBuildAndTest("-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS=-DNVALGRIND")
|
||||
recordIssues(tools: [gcc()])
|
||||
}
|
||||
}
|
||||
stage('Release [clang,aarch64]') {
|
||||
agent {
|
||||
dockerfile {
|
||||
args '-v /home/jenkins/ccache:/ccache'
|
||||
@@ -129,16 +129,16 @@ pipeline {
|
||||
}
|
||||
steps {
|
||||
script {
|
||||
filter_args = "-f ConflictSet.cpp -f LongestCommonPrefix.h -f Metrics.h"
|
||||
gcov_args = "-f ConflictSet.cpp -f LongestCommonPrefix.h -f Metrics.h --gcov-executable 'llvm-cov gcov' --exclude-noncode-lines"
|
||||
}
|
||||
CleanBuildAndTest("-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_FLAGS=--coverage -DCMAKE_CXX_FLAGS=--coverage -DCMAKE_BUILD_TYPE=Debug -DDISABLE_TSAN=ON")
|
||||
CleanBuildAndTest("-DCMAKE_C_FLAGS=--coverage -DCMAKE_CXX_FLAGS=--coverage -DCMAKE_BUILD_TYPE=Debug -DDISABLE_TSAN=ON")
|
||||
sh """
|
||||
gcovr ${filter_args} --cobertura > build/coverage.xml
|
||||
gcovr ${gcov_args} --cobertura > build/coverage.xml
|
||||
"""
|
||||
recordCoverage qualityGates: [[criticality: 'NOTE', metric: 'MODULE']], tools: [[parser: 'COBERTURA', pattern: 'build/coverage.xml']]
|
||||
sh """
|
||||
gcovr ${filter_args}
|
||||
gcovr ${filter_args} --fail-under-line 100 > /dev/null
|
||||
gcovr ${gcov_args}
|
||||
gcovr ${gcov_args} --fail-under-line 100 > /dev/null
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ longestCommonPrefix(const uint8_t *ap, const uint8_t *bp, int cl) {
|
||||
}
|
||||
|
||||
int i = 0;
|
||||
int end;
|
||||
int end; // GCOVR_EXCL_LINE
|
||||
|
||||
// kStride * kUnrollCount at a time
|
||||
end = cl & ~(kStride * kUnrollFactor - 1);
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
#include <atomic>
|
||||
#include <cstdint>
|
||||
#include <cstdlib>
|
||||
#include <errno.h>
|
||||
#include <netdb.h>
|
||||
#include <stdio.h>
|
||||
@@ -21,76 +23,33 @@
|
||||
|
||||
std::atomic<int64_t> transactions;
|
||||
|
||||
constexpr int kBaseSearchDepth = 115;
|
||||
constexpr int kWindowSize = 10000000;
|
||||
|
||||
std::string numToKey(int64_t num) {
|
||||
constexpr int kNumPrefixes = 250000;
|
||||
|
||||
std::string makeKey(int64_t num, int suffixLen) {
|
||||
std::string result;
|
||||
result.resize(kBaseSearchDepth + sizeof(int64_t));
|
||||
memset(result.data(), 0, kBaseSearchDepth);
|
||||
result.resize(sizeof(int64_t) + suffixLen);
|
||||
int64_t be = __builtin_bswap64(num);
|
||||
memcpy(result.data() + kBaseSearchDepth, &be, sizeof(int64_t));
|
||||
memcpy(result.data(), &be, sizeof(int64_t));
|
||||
memset(result.data() + sizeof(int64_t), 0, suffixLen);
|
||||
return result;
|
||||
}
|
||||
|
||||
void workload(weaselab::ConflictSet *cs) {
|
||||
int64_t version = kWindowSize;
|
||||
cs->addWrites(nullptr, 0, version);
|
||||
constexpr int kNumWrites = 16;
|
||||
for (;; transactions.fetch_add(1, std::memory_order_relaxed)) {
|
||||
// Reads
|
||||
{
|
||||
auto beginK = numToKey(version - kWindowSize);
|
||||
auto endK = numToKey(version - 1);
|
||||
auto pointRv = version - kWindowSize + rand() % kWindowSize + 1;
|
||||
auto pointK = numToKey(pointRv);
|
||||
weaselab::ConflictSet::ReadRange reads[] = {
|
||||
{
|
||||
{(const uint8_t *)pointK.data(), int(pointK.size())},
|
||||
{nullptr, 0},
|
||||
pointRv,
|
||||
},
|
||||
{
|
||||
{(const uint8_t *)beginK.data(), int(beginK.size())},
|
||||
{(const uint8_t *)endK.data(), int(endK.size())},
|
||||
version - 2,
|
||||
},
|
||||
};
|
||||
weaselab::ConflictSet::Result result[sizeof(reads) / sizeof(reads[0])];
|
||||
cs->check(reads, result, sizeof(reads) / sizeof(reads[0]));
|
||||
// for (int i = 0; i < sizeof(reads) / sizeof(reads[0]); ++i) {
|
||||
// if (result[i] != weaselab::ConflictSet::Commit) {
|
||||
// fprintf(stderr, "Unexpected conflict: [%s, %s) @ %" PRId64 "\n",
|
||||
// printable(reads[i].begin).c_str(),
|
||||
// printable(reads[i].end).c_str(), reads[i].readVersion);
|
||||
// abort();
|
||||
// }
|
||||
// }
|
||||
std::vector<std::string> keys;
|
||||
std::vector<weaselab::ConflictSet::WriteRange> writes;
|
||||
for (int i = 0; i < kNumWrites; ++i) {
|
||||
keys.push_back(makeKey(rand() % kNumPrefixes, rand() % 50));
|
||||
}
|
||||
// Writes
|
||||
{
|
||||
weaselab::ConflictSet::WriteRange w;
|
||||
auto k = numToKey(version);
|
||||
w.begin.p = (const uint8_t *)k.data();
|
||||
w.end.len = 0;
|
||||
if (version % (kWindowSize / 2) == 0) {
|
||||
for (int l = 0; l <= k.size(); ++l) {
|
||||
w.begin.len = l;
|
||||
cs->addWrites(&w, 1, version);
|
||||
}
|
||||
} else {
|
||||
w.begin.len = k.size();
|
||||
cs->addWrites(&w, 1, version);
|
||||
int64_t beginN = version - kWindowSize + rand() % kWindowSize;
|
||||
auto b = numToKey(beginN);
|
||||
auto e = numToKey(beginN + 1000);
|
||||
w.begin.p = (const uint8_t *)b.data();
|
||||
w.begin.len = b.size();
|
||||
w.end.p = (const uint8_t *)e.data();
|
||||
w.end.len = e.size();
|
||||
cs->addWrites(&w, 1, version);
|
||||
}
|
||||
for (int i = 0; i < kNumWrites; ++i) {
|
||||
writes.push_back({{(const uint8_t *)keys[i].data(), int(keys[i].size())},
|
||||
{nullptr, 0}});
|
||||
}
|
||||
// GC
|
||||
cs->addWrites(writes.data(), writes.size(), version);
|
||||
cs->setOldestVersion(version - kWindowSize);
|
||||
++version;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ __stack_chk_guard@GLIBC_2.17
|
||||
abort@GLIBC_2.17
|
||||
free@GLIBC_2.17
|
||||
malloc@GLIBC_2.17
|
||||
memcmp@GLIBC_2.17
|
||||
memcpy@GLIBC_2.17
|
||||
memmove@GLIBC_2.17
|
||||
memset@GLIBC_2.17
|
||||
@@ -1,7 +1,7 @@
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_PROCESSOR aarch64)
|
||||
set(CMAKE_C_COMPILER "/usr/bin/aarch64-linux-gnu-gcc")
|
||||
set(CMAKE_CXX_COMPILER "/usr/bin/aarch64-linux-gnu-g++")
|
||||
set(CMAKE_C_COMPILER "clang;--target=aarch64-linux-gnu")
|
||||
set(CMAKE_CXX_COMPILER "clang++;--target=aarch64-linux-gnu")
|
||||
set(CMAKE_FIND_ROOT_PATH /usr/aarch64-linux-gnu)
|
||||
set(CMAKE_CROSSCOMPILING_EMULATOR "qemu-aarch64;-L;/usr/aarch64-linux-gnu/")
|
||||
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE arm64)
|
||||
|
||||
BIN
corpus/00c2f9be831326008b88fa8daa1f6a2ba54ff0ab
Normal file
BIN
corpus/00c2f9be831326008b88fa8daa1f6a2ba54ff0ab
Normal file
Binary file not shown.
BIN
corpus/00df1fd720151ee1fb20574f080e75190d715723
Normal file
BIN
corpus/00df1fd720151ee1fb20574f080e75190d715723
Normal file
Binary file not shown.
BIN
corpus/01466ed53837dddee4968104f692156ec738a946
Normal file
BIN
corpus/01466ed53837dddee4968104f692156ec738a946
Normal file
Binary file not shown.
BIN
corpus/01700660cf8938f7861559ae8f5fc00a55532679
Normal file
BIN
corpus/01700660cf8938f7861559ae8f5fc00a55532679
Normal file
Binary file not shown.
BIN
corpus/026c293f183c14c6f173718d432b73f41e19cba8
Normal file
BIN
corpus/026c293f183c14c6f173718d432b73f41e19cba8
Normal file
Binary file not shown.
BIN
corpus/027a04de710ae4e8998cabe76b61ed427c7748e9
Normal file
BIN
corpus/027a04de710ae4e8998cabe76b61ed427c7748e9
Normal file
Binary file not shown.
BIN
corpus/02b4c0e1317cc3d71ca9d05d3d855c9d0fbed0ed
Normal file
BIN
corpus/02b4c0e1317cc3d71ca9d05d3d855c9d0fbed0ed
Normal file
Binary file not shown.
BIN
corpus/02df8cae475c41d1bbaefe0fc7e23fd35a9a23c8
Normal file
BIN
corpus/02df8cae475c41d1bbaefe0fc7e23fd35a9a23c8
Normal file
Binary file not shown.
BIN
corpus/033c4c71cb5ca5a3a933b9001be1d4246784fefb
Normal file
BIN
corpus/033c4c71cb5ca5a3a933b9001be1d4246784fefb
Normal file
Binary file not shown.
BIN
corpus/035247cc26d90aee0b4f9560833e5a495d890159
Normal file
BIN
corpus/035247cc26d90aee0b4f9560833e5a495d890159
Normal file
Binary file not shown.
BIN
corpus/03680111265d5f0b8816feb73069cf1f6538d4dd
Normal file
BIN
corpus/03680111265d5f0b8816feb73069cf1f6538d4dd
Normal file
Binary file not shown.
BIN
corpus/0381a9a3c6ea140cdd7ec8cf73eb2c56e01f8d54
Normal file
BIN
corpus/0381a9a3c6ea140cdd7ec8cf73eb2c56e01f8d54
Normal file
Binary file not shown.
BIN
corpus/038d82d16c1b0e6f6f59db9c26d4cd82973fe380
Normal file
BIN
corpus/038d82d16c1b0e6f6f59db9c26d4cd82973fe380
Normal file
Binary file not shown.
BIN
corpus/03c5f3b6189b03df9f473ad64e717ab2310e8a02
Normal file
BIN
corpus/03c5f3b6189b03df9f473ad64e717ab2310e8a02
Normal file
Binary file not shown.
BIN
corpus/04338408516abc9c563802aadc522db002e0a5d0
Normal file
BIN
corpus/04338408516abc9c563802aadc522db002e0a5d0
Normal file
Binary file not shown.
BIN
corpus/0480d4ba79c290ac8ecfb000bc62f204326a6e2d
Normal file
BIN
corpus/0480d4ba79c290ac8ecfb000bc62f204326a6e2d
Normal file
Binary file not shown.
BIN
corpus/051590b47c5269306a3a8894eb3d72d86c4a6e71
Normal file
BIN
corpus/051590b47c5269306a3a8894eb3d72d86c4a6e71
Normal file
Binary file not shown.
BIN
corpus/05184b61aacd101ea39bc6f3b9985fec132b8125
Normal file
BIN
corpus/05184b61aacd101ea39bc6f3b9985fec132b8125
Normal file
Binary file not shown.
BIN
corpus/056fee409c5511f6a7456cd4791d9385f6d5ebbe
Normal file
BIN
corpus/056fee409c5511f6a7456cd4791d9385f6d5ebbe
Normal file
Binary file not shown.
BIN
corpus/05a237bf01382822789d33bda1b24298e13bb031
Normal file
BIN
corpus/05a237bf01382822789d33bda1b24298e13bb031
Normal file
Binary file not shown.
BIN
corpus/061a5fd2f5e90098ec417feda11d43b7ff3ecb79
Normal file
BIN
corpus/061a5fd2f5e90098ec417feda11d43b7ff3ecb79
Normal file
Binary file not shown.
BIN
corpus/065ec99952bffeb53f340d8cee645654f5b1e891
Normal file
BIN
corpus/065ec99952bffeb53f340d8cee645654f5b1e891
Normal file
Binary file not shown.
BIN
corpus/069fd605e510b2218cf1b10ec79ae00763aeb195
Normal file
BIN
corpus/069fd605e510b2218cf1b10ec79ae00763aeb195
Normal file
Binary file not shown.
BIN
corpus/0707680f7d9ce11dd30c6536f05848d598fb27d4
Normal file
BIN
corpus/0707680f7d9ce11dd30c6536f05848d598fb27d4
Normal file
Binary file not shown.
BIN
corpus/0707d9709690c9700f27fd73d97c0325fa81c162
Normal file
BIN
corpus/0707d9709690c9700f27fd73d97c0325fa81c162
Normal file
Binary file not shown.
BIN
corpus/076a28139f92f4925500f0b41b21aeddc2a29ae9
Normal file
BIN
corpus/076a28139f92f4925500f0b41b21aeddc2a29ae9
Normal file
Binary file not shown.
BIN
corpus/0771614f4aee61a932eb4f6cec1f736fce997a1e
Normal file
BIN
corpus/0771614f4aee61a932eb4f6cec1f736fce997a1e
Normal file
Binary file not shown.
BIN
corpus/07854cf6f54c192387047cfc49a65e4b1bdca4a1
Normal file
BIN
corpus/07854cf6f54c192387047cfc49a65e4b1bdca4a1
Normal file
Binary file not shown.
BIN
corpus/078875343814fb2f6f7be30e0fd58a139d977f19
Normal file
BIN
corpus/078875343814fb2f6f7be30e0fd58a139d977f19
Normal file
Binary file not shown.
BIN
corpus/086ae03d7492047d12383776a7a2dd10acb6a030
Normal file
BIN
corpus/086ae03d7492047d12383776a7a2dd10acb6a030
Normal file
Binary file not shown.
BIN
corpus/08b60f4f4dccb8b4b992b9a41dffd1cabb18da5c
Normal file
BIN
corpus/08b60f4f4dccb8b4b992b9a41dffd1cabb18da5c
Normal file
Binary file not shown.
BIN
corpus/08bd213542d71b1e07b7cafeba9816e2990278b6
Normal file
BIN
corpus/08bd213542d71b1e07b7cafeba9816e2990278b6
Normal file
Binary file not shown.
BIN
corpus/08f6fcd47ba57d41f5cae4a040e8318fc2f653da
Normal file
BIN
corpus/08f6fcd47ba57d41f5cae4a040e8318fc2f653da
Normal file
Binary file not shown.
BIN
corpus/08fb0c9ae5f25f3040bb0a1489ff0dc0b537ebfa
Normal file
BIN
corpus/08fb0c9ae5f25f3040bb0a1489ff0dc0b537ebfa
Normal file
Binary file not shown.
BIN
corpus/09b0a61939d3133f61a4b0aaee5149503e3019a1
Normal file
BIN
corpus/09b0a61939d3133f61a4b0aaee5149503e3019a1
Normal file
Binary file not shown.
BIN
corpus/09c0b1f06a1e9bfdfb8842ec414f97ade10cddf4
Normal file
BIN
corpus/09c0b1f06a1e9bfdfb8842ec414f97ade10cddf4
Normal file
Binary file not shown.
BIN
corpus/0a0da5b17a24b0282501d2f380dc52aefd4d9b9f
Normal file
BIN
corpus/0a0da5b17a24b0282501d2f380dc52aefd4d9b9f
Normal file
Binary file not shown.
BIN
corpus/0ad70cc2a529b6d840f769816d3f7e2ab8acc68c
Normal file
BIN
corpus/0ad70cc2a529b6d840f769816d3f7e2ab8acc68c
Normal file
Binary file not shown.
BIN
corpus/0b8cdd849f754ceb9950905ea35ad04f6593b6ae
Normal file
BIN
corpus/0b8cdd849f754ceb9950905ea35ad04f6593b6ae
Normal file
Binary file not shown.
BIN
corpus/0ba096610c940d2c622c714000c4ac5db73e999c
Normal file
BIN
corpus/0ba096610c940d2c622c714000c4ac5db73e999c
Normal file
Binary file not shown.
BIN
corpus/0baea27108df93d537bcc0de459495d5f17382a0
Normal file
BIN
corpus/0baea27108df93d537bcc0de459495d5f17382a0
Normal file
Binary file not shown.
BIN
corpus/0bee3319fe0f3462a7f0cb7c8eeb616d4660add7
Normal file
BIN
corpus/0bee3319fe0f3462a7f0cb7c8eeb616d4660add7
Normal file
Binary file not shown.
BIN
corpus/0c03df024913af7478e1a72d96553e8c03aa5533
Normal file
BIN
corpus/0c03df024913af7478e1a72d96553e8c03aa5533
Normal file
Binary file not shown.
BIN
corpus/0c6f460d9012fc295ac4ae3c23d9c9904ae9f496
Normal file
BIN
corpus/0c6f460d9012fc295ac4ae3c23d9c9904ae9f496
Normal file
Binary file not shown.
BIN
corpus/0c71425d945565f739bdf33d02d9a2f80fe81c29
Normal file
BIN
corpus/0c71425d945565f739bdf33d02d9a2f80fe81c29
Normal file
Binary file not shown.
BIN
corpus/0c757a21c9d2629c51923f943dc2c79c4bcbca4a
Normal file
BIN
corpus/0c757a21c9d2629c51923f943dc2c79c4bcbca4a
Normal file
Binary file not shown.
BIN
corpus/0c83b55eddb372f37fd479b982a26f7d76a9ee74
Normal file
BIN
corpus/0c83b55eddb372f37fd479b982a26f7d76a9ee74
Normal file
Binary file not shown.
BIN
corpus/0cbb486e842f843588f084c6480e42e2cfef60b2
Normal file
BIN
corpus/0cbb486e842f843588f084c6480e42e2cfef60b2
Normal file
Binary file not shown.
BIN
corpus/0cfc86eecaf16f682bcce978ce41d35a016a0a7f
Normal file
BIN
corpus/0cfc86eecaf16f682bcce978ce41d35a016a0a7f
Normal file
Binary file not shown.
BIN
corpus/0d19837d6411c43e7e7c3f8ae592719fd1e556e2
Normal file
BIN
corpus/0d19837d6411c43e7e7c3f8ae592719fd1e556e2
Normal file
Binary file not shown.
BIN
corpus/0d28b7cc8c4d9359f045df42f88dd30ee52b8477
Normal file
BIN
corpus/0d28b7cc8c4d9359f045df42f88dd30ee52b8477
Normal file
Binary file not shown.
BIN
corpus/0dea4eac572bd1210f5cf582c4dc049696bfd3a3
Normal file
BIN
corpus/0dea4eac572bd1210f5cf582c4dc049696bfd3a3
Normal file
Binary file not shown.
BIN
corpus/0df8f73f7238fb993fc6c77b03dfbe0d88a668cf
Normal file
BIN
corpus/0df8f73f7238fb993fc6c77b03dfbe0d88a668cf
Normal file
Binary file not shown.
BIN
corpus/0e2c82cd38130dc94263a67b46afbf89407eee2a
Normal file
BIN
corpus/0e2c82cd38130dc94263a67b46afbf89407eee2a
Normal file
Binary file not shown.
BIN
corpus/0e3aaaf8e085bdf5f4419b176cea97d4bfcb62bf
Normal file
BIN
corpus/0e3aaaf8e085bdf5f4419b176cea97d4bfcb62bf
Normal file
Binary file not shown.
BIN
corpus/0ebb66b9b7a11c4858236dc5852386dedae328c0
Normal file
BIN
corpus/0ebb66b9b7a11c4858236dc5852386dedae328c0
Normal file
Binary file not shown.
BIN
corpus/0fbd6aa91e6a6c89f575d339b9f103a057b80ba6
Normal file
BIN
corpus/0fbd6aa91e6a6c89f575d339b9f103a057b80ba6
Normal file
Binary file not shown.
BIN
corpus/100d47f574b00c6f790f44c6a56f315a9754d683
Normal file
BIN
corpus/100d47f574b00c6f790f44c6a56f315a9754d683
Normal file
Binary file not shown.
BIN
corpus/1023a1cc9e57b90b3c975ba77c8f5a177e999875
Normal file
BIN
corpus/1023a1cc9e57b90b3c975ba77c8f5a177e999875
Normal file
Binary file not shown.
BIN
corpus/10550b94427665b340d6201df040db42d9d80f51
Normal file
BIN
corpus/10550b94427665b340d6201df040db42d9d80f51
Normal file
Binary file not shown.
BIN
corpus/10585791c59c9e43299c8958b48245d705addf47
Normal file
BIN
corpus/10585791c59c9e43299c8958b48245d705addf47
Normal file
Binary file not shown.
BIN
corpus/115224fa10b18969a7bc748eee19fd4a45bce0d0
Normal file
BIN
corpus/115224fa10b18969a7bc748eee19fd4a45bce0d0
Normal file
Binary file not shown.
BIN
corpus/115428a9c006c54696c148fd767af66ca4d10d3a
Normal file
BIN
corpus/115428a9c006c54696c148fd767af66ca4d10d3a
Normal file
Binary file not shown.
BIN
corpus/11570d892b76b3cdfc2b4d05d4424b5668e295a1
Normal file
BIN
corpus/11570d892b76b3cdfc2b4d05d4424b5668e295a1
Normal file
Binary file not shown.
BIN
corpus/117bea9f82fbe640745537fbc7177bccc37d1335
Normal file
BIN
corpus/117bea9f82fbe640745537fbc7177bccc37d1335
Normal file
Binary file not shown.
BIN
corpus/11c2ff6e154050876cce57fa4b2122f74282e082
Normal file
BIN
corpus/11c2ff6e154050876cce57fa4b2122f74282e082
Normal file
Binary file not shown.
BIN
corpus/11ebd31c17d648c7c9fbdda49afb4898647f04e1
Normal file
BIN
corpus/11ebd31c17d648c7c9fbdda49afb4898647f04e1
Normal file
Binary file not shown.
BIN
corpus/121b43d1853a0dea379afbd10fe00469aad22e40
Normal file
BIN
corpus/121b43d1853a0dea379afbd10fe00469aad22e40
Normal file
Binary file not shown.
BIN
corpus/1238fee9b77c9426b7a2a358216792729766b923
Normal file
BIN
corpus/1238fee9b77c9426b7a2a358216792729766b923
Normal file
Binary file not shown.
BIN
corpus/1288f1214d6a6cd3cbe15a1d23fb360991cb93f6
Normal file
BIN
corpus/1288f1214d6a6cd3cbe15a1d23fb360991cb93f6
Normal file
Binary file not shown.
BIN
corpus/12a8e5475cb4612eb6a4f67249f9f41f3b860a2e
Normal file
BIN
corpus/12a8e5475cb4612eb6a4f67249f9f41f3b860a2e
Normal file
Binary file not shown.
BIN
corpus/13d09136d9df4b38d9f211e7e4e51ce479f30436
Normal file
BIN
corpus/13d09136d9df4b38d9f211e7e4e51ce479f30436
Normal file
Binary file not shown.
BIN
corpus/13f2972e7dba20617c098ecc0e915648b9941291
Normal file
BIN
corpus/13f2972e7dba20617c098ecc0e915648b9941291
Normal file
Binary file not shown.
BIN
corpus/13fc8594ba2eb1fe1f3077871b6c002601a6d821
Normal file
BIN
corpus/13fc8594ba2eb1fe1f3077871b6c002601a6d821
Normal file
Binary file not shown.
BIN
corpus/1411d1dcefe329e0bf26d269e6dec8408cfa3ab1
Normal file
BIN
corpus/1411d1dcefe329e0bf26d269e6dec8408cfa3ab1
Normal file
Binary file not shown.
BIN
corpus/145d5d24154a374195992d66e4ed8645251621c7
Normal file
BIN
corpus/145d5d24154a374195992d66e4ed8645251621c7
Normal file
Binary file not shown.
BIN
corpus/14b5668c2e596ecbad1f38db12c93ace768a1554
Normal file
BIN
corpus/14b5668c2e596ecbad1f38db12c93ace768a1554
Normal file
Binary file not shown.
BIN
corpus/16bd8844fd3273c121acb6a5f887337ad4e73581
Normal file
BIN
corpus/16bd8844fd3273c121acb6a5f887337ad4e73581
Normal file
Binary file not shown.
BIN
corpus/16e4c2d8c550a809d1127426e55838350058a52b
Normal file
BIN
corpus/16e4c2d8c550a809d1127426e55838350058a52b
Normal file
Binary file not shown.
BIN
corpus/1722ecd84494a5ccbda509bc45cd9a576fffa716
Normal file
BIN
corpus/1722ecd84494a5ccbda509bc45cd9a576fffa716
Normal file
Binary file not shown.
BIN
corpus/174fa79da814994b43d9f241a288a10c0b6e7272
Normal file
BIN
corpus/174fa79da814994b43d9f241a288a10c0b6e7272
Normal file
Binary file not shown.
BIN
corpus/1786bfcb534c808729b2e44223c86d4630353187
Normal file
BIN
corpus/1786bfcb534c808729b2e44223c86d4630353187
Normal file
Binary file not shown.
BIN
corpus/1867231b5449c3db148a4b7ea2fa6dd76066413c
Normal file
BIN
corpus/1867231b5449c3db148a4b7ea2fa6dd76066413c
Normal file
Binary file not shown.
BIN
corpus/192cfb01a7641dc3f0a39df23986354b1539d635
Normal file
BIN
corpus/192cfb01a7641dc3f0a39df23986354b1539d635
Normal file
Binary file not shown.
BIN
corpus/194b1d0acf20b5745c9e9b91abd471d19b2d65ae
Normal file
BIN
corpus/194b1d0acf20b5745c9e9b91abd471d19b2d65ae
Normal file
Binary file not shown.
BIN
corpus/195e235fcc11ca1459d14fc764d6848cc81898c6
Normal file
BIN
corpus/195e235fcc11ca1459d14fc764d6848cc81898c6
Normal file
Binary file not shown.
BIN
corpus/197971327a6de9828bcc0a546cb2a34a45b875cc
Normal file
BIN
corpus/197971327a6de9828bcc0a546cb2a34a45b875cc
Normal file
Binary file not shown.
BIN
corpus/199f42f2f6293f1f4afb5cd410adccc3ccdcd419
Normal file
BIN
corpus/199f42f2f6293f1f4afb5cd410adccc3ccdcd419
Normal file
Binary file not shown.
BIN
corpus/19e53ed65e56aa109e4e03cf44e33ffb2685f9de
Normal file
BIN
corpus/19e53ed65e56aa109e4e03cf44e33ffb2685f9de
Normal file
Binary file not shown.
BIN
corpus/19f794a009ca2c72db29c9f446b3bf25cb81bf2e
Normal file
BIN
corpus/19f794a009ca2c72db29c9f446b3bf25cb81bf2e
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user