mdbx: дополнение ChangeLog.

This commit is contained in:
Леонид Юрьев (Leonid Yuriev) 2024-12-03 00:16:21 +03:00
parent e2ca81ae83
commit 367a118a8f

View File

@ -25,26 +25,47 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic
- Переход на "Semantic Versioning 2" и экспорт информации о версии в `VERSION.json`.
- Добавлена поддержка переменной среды `SOURCE_DATE_EPOCH` для воспроизводимости сборок.
Прежний способ посредством `MDBX_BUILD_TIMESTAMP` также работает и имеет приоритет.
- Добавлена возможность указывать дополнительную информацию о сборке libmdbx через опцию `MDBX_BUILD_METADATA`.
Сейчас задаваемая информация просто включается внутрь библиотеки в качестве значения `mdbx_build.metadata`,
а в дальнейшем также будет использоваться при формировании пакетов и т.п.
- Добавлена возможность указывать дополнительную информацию о сборке
libmdbx через опцию `MDBX_BUILD_METADATA`. Сейчас задаваемая информация
просто включается внутрь библиотеки в качестве значения
`mdbx_build.metadata`, а в дальнейшем также будет использоваться при
формировании пакетов и т.п.
- Добавлено логирование ошибок возвращаемых из API. Теперь для этого
достаточно задать уровень логирования `MDBX_LOG_DEBUG` (для логирования
ошибок за вычетом `MDBX_NOTFOUND`) или `MDBX_LOG_TRACE` (для логирования
всех ошибок, а также `MDBX_RESULT_TRUE`).
- Поддержка сборки посредством Conan.
Изменение поведения:
- Добавлен метод `mdbx::cursor::get_multiple_samelength()` и переименован `mdbx::txn::put_multiple_samelength()`.
- Для единообразия C++ API при выполнении операции `MDBX_GET_MULTIPLE` теперь также возвращается значение самого ключа.
- Для размерных констант `mdbx::env::geometry` базовый тип изменен с беззнакового `size_t` на знаковый `intptr_t`.
- Теперь выбор в пользу использования ntdll вместо CRT делается только при явном отключении C++ API.
- Теперь выполняется освобождение памяти сброшенных/прерванных читающих транзакций передаваемых в `mdbx_txn_commit()`.
Соглашение по API требует чтобы такие транзакции освобождались посредством `mdbx_txn_abort()`, из-за чего
функция `mdbx_txn_commit()` возвращала ошибку в таких случаях, не разрушая сами транзакции.
Это приводило к утечкам памяти из-за ошибок в приложениях, что побудило изменить поведение.
- Добавлен метод `mdbx::cursor::get_multiple_samelength()` и
переименован `mdbx::txn::put_multiple_samelength()`.
- Для единообразия C++ API при выполнении операции `MDBX_GET_MULTIPLE`
теперь также возвращается значение самого ключа.
- Для размерных констант `mdbx::env::geometry` базовый тип изменен с
беззнакового `size_t` на знаковый `intptr_t`.
- Теперь выбор в пользу использования ntdll вместо CRT делается только
при явном отключении C++ API.
- Теперь выполняется освобождение памяти сброшенных/прерванных читающих
транзакций передаваемых в `mdbx_txn_commit()`. Соглашение по API требует
чтобы такие транзакции освобождались посредством `mdbx_txn_abort()`,
из-за чего функция `mdbx_txn_commit()` возвращала ошибку в таких
случаях, не разрушая сами транзакции. Это приводило к утечкам памяти
из-за ошибок в приложениях, что побудило изменить поведение.
- Использование макроса `__deprecated_enum` если он определен.
- При сборке посредством CMake выбор стандарта языка `C` теперь выполняется с учётом `CMAKE_C_STANDARD`.
- При сборке посредством CMake выбор стандарта языка `C` теперь
выполняется с учётом `CMAKE_C_STANDARD`.
- Изменения в опциях сборки:
* опция `MDBX_OSX_SPEED_INSTEADOF_DURABILITY` переименована в
`MDBX_APPLE_SPEED_INSTEADOF_DURABILITY`, так как актуальна для всех
"Яблочных" платформ;
* опция `MDBX_MMAP_USE_MS_ASYNC` переименована в
`MDBX_MMAP_NEEDS_JOLT`, для более точного соответствия своей семантики;
* в CMake добавлена поддержка опции `MDBX_USE_MINCORE`;
* использование `madvise()` и родственных системных вызовов теперь
всегда включено, а опция `MDBX_ENABLE_MADVISE` удалена;
* удалены неиспользуемая опция `MDBX_USE_SYNCFILERANGE` и
неиспользуемый режим `MDBX_LOCKING_BENAPHORE`.
Исправления:
@ -66,6 +87,7 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic
- Поправлено определение `MDBX_DEPRECATED_ENUM` для старых компиляторов при включении С++11.
- Доработано использование `std::experimental::filesystem` для решения проблем со сборкой в старых компиляторах.
- Исправлена обработка `MDBX_GET_MULTIPLE` в специальных случаях и одного значения у ключа в позиции курсора.
- Исправление сборки при включении профилирования GC и `MDBX_ENABLE_DBI_SPARSE=OFF`.
Мелочи: