Леонид Юрьев (Leonid Yuriev)
0916d24321
mdbx: использование опции ENABLE_MEMCHECK
вместо ENABLE_VALGRIND
и MDBX_USE_VALGRIND
.
2023-11-11 12:29:13 +03:00
Леонид Юрьев (Leonid Yuriev)
96504bf338
mdbx: отложенное освобождение имен связанных c dbi-хендлами и добавление опции MDBX_ENABLE_DBI_LOCKFREE
.
...
Отложенное освобождение позволяет реализовать безопасное выполнение
fastpath/lockfree при повторном открытии из других потоков/транзакцйий
уже открытых subDB, что и происходит при активации добавленной опции
сборки `MDBX_ENABLE_DBI_LOCKFREE`.
2023-11-11 12:29:10 +03:00
Леонид Юрьев (Leonid Yuriev)
e6af7d7c53
mdbx: переработка инициализации, проверки и импорта dbi-хендлов в транзакциях.
...
Ранее инициализация в транзакциях структур данных, связанных с
dbi-хендлами и subDb, выполнялась непосредственно при запуске
транзакций. Что в сценариях с большим кол-вом dbi-дексприторов (например
libfpta) порождало заметные накладные расходы, которые расли линейно от
общего кол-ва открытых subDb, а не от реально используемых в транзакции.
При использовании одной-двух сотен хендлов, при старте каждой транзакции
могли копироваться и/или обнуляться десятки килобайт. Теперь этот
недостаток устранен.
Изменена схема инициализации, валидации и импорта хендлов открытых после
старта транзакции:
1) Инициализация теперь выполняется отложенна, а при старте транзации
обнуляется только массив с однобайтовыми статустами dbi-хендлов.
При этом доступнва опция сборки `MDBX_ENABLE_DBI_SPARSE`, при активации
которой используется битовая карты, что снижает объем инициализации
при старте транзакции в 8 раз (CHAR_BIT).
2) Переработана валидация dbi-хендлов на входах API, с уменьшением кол-ва
проверок и ветвлений до теоретического минимума.
3) Переработ импорт dbi-хендов открытых после старта транзакци, теперь
при этом не захватывается мьютекс.
2023-11-11 12:29:10 +03:00
Леонид Юрьев (Leonid Yuriev)
cdbcf54af1
mdbx-tests: добавление --read-var-info=yes
для Valgrind.
2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
5d9740bbcf
mdbx-cmake: использование add_mdbx_option()
для вывода информации об mdbx-опциях при сборке.
2023-10-09 21:49:58 +03:00
Леонид Юрьев (Leonid Yuriev)
c01f025bfa
mdbx: обновление года на 2023.
2023-01-16 16:32:02 +03:00
Леонид Юрьев (Leonid Yuriev)
8ffb0bb3d8
mdbx-cmake: поддержка всех основных опций при сборке посредством CMake.
2022-11-10 15:39:52 +03:00
Леонид Юрьев (Leonid Yuriev)
13c256026e
mdbx-cmake: синхронизация конструкций CMake между проектами.
2022-11-09 23:37:50 +03:00
Леонид Юрьев (Leonid Yuriev)
987509f90f
mdbx-cmake: try fix libmdbx-rs/issues/10.
...
https://github.com/vorot93/libmdbx-rs/issues/10
2022-11-08 20:39:38 +03:00
Леонид Юрьев (Leonid Yuriev)
8c75ed59da
mdbx-cmake: отключением LTO для G++ < 7.0, ибо падает.
2022-11-07 23:57:25 +03:00
Леонид Юрьев (Leonid Yuriev)
623ab21707
mdbx-cmake: совместимость с CMake 3.0.2 для CI на старых системах.
2022-11-07 23:37:27 +03:00
Леонид Юрьев (Leonid Yuriev)
b04f7814ef
mdbx-cmake: исправление для совместимости с CMake 3.8
2022-10-24 01:01:01 +03:00
Леонид Юрьев (Leonid Yuriev)
bbd139b2ae
mdbx-cmake: создание VERSION.txt
2022-10-22 11:08:06 +03:00
Леонид Юрьев (Leonid Yuriev)
64d0e639c2
mdbx-cmake: синхронизация LTO-рецептов.
2022-10-22 11:08:06 +03:00
Леонид Юрьев (Leonid Yuriev)
9cdee2adb5
mdbx-cmake: добавлена поддержка опции MDBX_AVOID_MSYNC
.
2022-10-10 15:55:20 +03:00
Леонид Юрьев (Leonid Yuriev)
a44eb1accb
mdbx-cmake: add MDBX_MANAGE_BUILD_FLAGS
build-time option.
2022-08-07 11:56:23 +03:00
Леонид Юрьев (Leonid Yuriev)
5e565433f7
mdbx: merge branch master
into devel
.
2022-07-23 11:56:17 +03:00
Леонид Юрьев (Leonid Yuriev)
fc53e57a64
mdbx-cmake: avoid has no symbols
warning from Apple's ranlib.
2022-07-13 22:11:28 +03:00
Леонид Юрьев (Leonid Yuriev)
d4ef9bf233
mdbx: rework page validation/checking, add MDBX_VALIDATION
option (squashed).
...
Здесь основная часть изменений преобразующих отладочную проверку страниц
в регулярный и доступный пользователю осторожный/безопасный режим работы
с потенциально поврежденной БД.
Here the major part of the changes that transform a debugging check of
pages into a regular and user-accessible careful/safe mode for working
with a potentially corrupted database.
2022-07-07 14:10:09 +03:00
Леонид Юрьев (Leonid Yuriev)
99cfee6f4b
mdbx-cmake: don't provide nor report package information if used as a subproject.
2022-06-12 23:14:33 +03:00
Леонид Юрьев (Leonid Yuriev)
b6138c39f0
mdbx: reorganize internal includes.
2022-06-02 20:35:40 +03:00
Леонид Юрьев (Leonid Yuriev)
7260db2e74
mdbx-cmake: sync/refine cmake policy.
2022-06-02 20:35:35 +03:00
Леонид Юрьев (Leonid Yuriev)
42f1abd7e9
mdbx-cmake: fix/refine --allow-multiple-definition
as workaround for std::filesystem
and LCC < 1.25.23
2022-04-22 23:03:58 +03:00
Leonid Yuriev
5eeb260c08
mdbx-cmake: rework making MDBX_BUILD_TARGET
value.
2022-04-22 17:28:56 +03:00
Леонид Юрьев (Leonid Yuriev)
1ec5687d36
mdbx: fix build for ARM/ARM64 by MSVC.
2022-04-22 17:18:58 +03:00
Леонид Юрьев (Leonid Yuriev)
03f9ed8820
mdbx-cmake: add a few smoke-like tests.
2022-04-21 20:35:45 +03:00
Леонид Юрьев (Leonid Yuriev)
ed23956e11
mdbx: basic cleanup from dead github and another corrupted services.
2022-04-20 06:42:16 +03:00
Леонид Юрьев (Leonid Yuriev)
bb8f431817
mdbx-cmake: use target_include_directories()
instead of include_directories()
.
2022-04-13 11:05:50 +03:00
Леонид Юрьев (Leonid Yuriev)
5ebcb90620
mdbx-cmake: rework linking detection for std::filesystem
.
2022-04-07 21:57:49 +03:00
Леонид Юрьев (Leonid Yuriev)
c9dfb7d8c2
mdbx-cmake: add workaround for LCC 1.25 bug of class inline static constexpr
member field definition.
2022-04-06 12:43:58 +03:00
Леонид Юрьев (Leonid Yuriev)
f054ceeab8
mdbx-cmake: add linking with stdc++fs
for LCC < 1.26
2022-04-06 12:43:58 +03:00
Leonid Yuriev
79e1cc3bbc
mdbx: add workaround for old MSVC and/or old Windows SDK.
...
Resolves https://github.com/erthink/libmdbx/issues/265 .
Change-Id: I295b5d9d5ecd670ccf258791bf87379a3ca17f21
2022-02-01 13:28:59 +03:00
Leonid Yuriev
c588af6aca
mdbx: update Copyright year.
...
Change-Id: Ib3e4c0ac94882c4b2a1e167dd98e6e26dbdf48a4
2022-01-17 11:06:14 +03:00
Leonid Yuriev
32e495021f
mdbx-cmake: reporting the build options (cosmetics).
2021-12-10 17:17:34 +03:00
Леонид Юрьев (Leonid Yuriev)
ca19796514
mdbx-cmake: disable C++20 for CLANG < 10.
2021-12-09 15:54:16 +03:00
Леонид Юрьев (Leonid Yuriev)
c2cab7a6a8
mdbx: using clang-format-13
(cosmetics).
2021-12-02 20:22:31 +03:00
Leonid Yuriev
86c735637e
mdbx-cmake: add MDBX_FORCE_BUILD_AS_MAIN_PROJECT
.
2021-11-19 16:21:40 +03:00
Leonid Yuriev
c456625ef2
mdbx-cmake: initial support for C++23.
2021-11-07 02:18:56 +03:00
Leonid Yuriev
630ef98951
mdbx-cmake: allow to define CMAKE_CXX_STANDARD
by the environment variable.
2021-11-07 02:18:56 +03:00
Leonid Yuriev
4bb0c57e29
mdbx: minor fixes/workarounds for CLANG < 9.x
2021-08-04 15:43:32 +03:00
Leonid Yuriev
a9cae5e314
mdbx-cmake: avoid CMake warning about compatibility with 3.8.2
2021-08-04 14:09:47 +03:00
Leonid Yuriev
cc6610f42c
mdbx: more/refine C++ crutches for mad MSVC compiler.
2021-06-24 15:42:03 +03:00
Leonid Yuriev
77a1f32e2a
mdbx: use VERSION.txt
instead of VERSION
to avoid collision with #include <version>
.
2021-06-24 14:59:29 +03:00
Leonid Yuriev
d47864dedf
mdbx-cmake: use GNUInstallDirs
variables for all cases.
...
Resolves https://github.com/erthink/libmdbx/issues/209 .
2021-06-17 17:21:20 +03:00
Leonid Yuriev
f951f246b8
mdbx: allow to predefine/override MDBX_BUILD_TIMESTAMP
for builds reproducibility.
...
Resolve https://github.com/erthink/libmdbx/issues/201
2021-06-02 14:50:22 +03:00
Leonid Yuriev
7addfc8358
mdbx: explicit checking for and warning about using unfit github's archives.
...
Related to https://github.com/erthink/libmdbx/issues/197 and https://github.community/t/disable-tarball
2021-05-13 12:19:18 +03:00
Leonid Yuriev
605326b6e8
mdbx-cmake: don't specify filename extension while linking with ntdll
.
2021-05-11 08:07:42 +03:00
Leonid Yuriev
ecd3c06932
mdbx-windows: remove MDBX_CONFIG_MANUAL_TLS_CALLBACK
build option and add MDBX_MANUAL_MODULE_HANDLER
macro.
...
Briefly:
- Now constructor/destructor of "Thread Local Storage" handled automatically when possible.
- Otherwise the MDBX_CONFIG_MANUAL_TLS_CALLBACK macro defined to 1 to indicate that mdbx_module_handle() should be called manually.
- Corresponding build option MDBX_CONFIG_MANUAL_TLS_CALLBACK was removed.
Related to https://github.com/erthink/libmdbx/issues/155
Change-Id: Ic4e6a34b44f874676f0ab212ff473460e3d80559
2021-05-08 18:39:18 +03:00
Leonid Yuriev
d27e48ae1b
mdbx-windows: rename MDBX_AVOID_CRT
build option to MDBX_DISABLE_MSVC_CRT
.
...
Change-Id: I124c9d86d4a596718bd9671a7c1b538b84c2dd0f
2021-04-30 01:59:48 +03:00
Leonid Yuriev
84d154d732
mdbx-cmake: set MDBX_ALLOY_BUILD=OFF for Debug build by default.
2021-04-20 22:09:48 +03:00