diff --git a/ChangeLog.md b/ChangeLog.md index bf0ad16e..8db248d7 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -4,6 +4,62 @@ ChangeLog English version [by Google](https://gitflic-ru.translate.goog/project/erthink/libmdbx/blob?file=ChangeLog.md&_x_tr_sl=ru&_x_tr_tl=en) and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic.ru/project/erthink/libmdbx/blob?file=ChangeLog.md). +## v0.12.11 (подготовка к выпуску) + +Поддерживающий выпуск с исправлением обнаруженных ошибок и устранением недочетов. + +``` +git diff' stat: 29 commits, 14 files changed, 369 insertions(+), 151 deletions(-) +Signed-off-by: Леонид Юрьев (Leonid Yuriev) +``` + +Значимые исправления: + + - Исправление для ОС Windows нарезки `FILE_SEGMENT_ELEMENT`. + Похоже что был потерян коммит входе работы над оптимизацией пути записи + на диск в ОС Windows. В текущем понимании, вероятность проявления ошибки + достаточно низкая, так как выявлена она была синтетическими тестами в + ходе других доработок, а соответствующих сообщений/жалоб не поступало. К + повреждению БД ошибка не приводила, так как сбой происходил до записи + данных с возвратом `ERROR_INVALID_PARAMETER` из системного вызова, т.е. + либо ошибка не проявлялась, либо транзакция не фиксировалась. + + - Устранение вероятности `SIGSEGV` при включении логирования `MDBX_LOG_TRACE` в отладочных сборках. + + - Исправление генерации исключения `key_exists` в C++ API. + + - Исправление опечаток в документации и README. + + - Исправление обработки курсоров, открытых в родительских транзакциях и + закрытых до завершения вложенных транзакций. В описанной ситуации + закрытые курсоры "воскрешались", что приводило к утечке памяти + выделенной под такие курсоры. + + - Костыль для MSVC ARM/ARM64 для предотвращения ICE (Internal Compiler Error). + + - Устранение `MDBX_EINVAL` для случая вызова `mdbx_env_remove(".")`. + + - Исправление инверсии bool-результата `env::remove()`. + + - Исправление опечатки `равно`/`неравно` в условии внутри + `update_gc()`. Существенных последствий ошибки не было, но в + определенных сценариях, сходимость требовала еще одного цикла повтора + внутри update_gc() + +Прочие доработки: + + - Проверка совместимости флагов GC/FreeDB на случай их изменения в будущих версиях. + - Очистка сообщений `FormatMessageA()` от концевых переводов строк. + - Уточнение макроса `__always_inline` для особо яблочных версий CLANG. + - Использование `\n` вместо `std::endl` в C++ API при . + - Проверка дополнительных и пока не используемых полей в meta-страницах. + - Отключение ненужной отладки внутри `txn_merge()`. + - Исправление условий и привязки к версиям компиляторов при формировании макроса `MDBX_DEPRECATED`. + - Больше атрибутов `__cold` для редко-используемых функций (backport). + - Добавление методов `buffer::append_bytes()` и `buffer::clear_and_reserve()`. + - Отключение установки признака фатальной ошибки для не-активной среды при отличии идентификатора процесса. + + ## v0.12.10 "СЭМ" от 2024-03-12 Поддерживающий выпуск с исправлением обнаруженных ошибок и устранением недочетов