diff --git a/ChangeLog.md b/ChangeLog.md index fe5203fe..83c7a58a 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -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`. Мелочи: