-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
44b59c6
commit b81e668
Showing
23 changed files
with
270 additions
and
121 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Copyright (c) 2020-2024 Леонид Юрьев aka Leonid Yuriev <[email protected]> ############################################### | ||
# Copyright (c) 2020-2025 Леонид Юрьев aka Leonid Yuriev <[email protected]> ############################################### | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
# Donations are welcome to ETH `0xD104d8f8B2dC312aaD74899F83EBf3EEBDC1EA3A`. Всё будет хорошо! | ||
|
@@ -213,6 +213,20 @@ if(DEFINED PROJECT_NAME AND NOT MDBX_FORCE_BUILD_AS_MAIN_PROJECT) | |
else() | ||
set(SUBPROJECT OFF) | ||
set(NOT_SUBPROJECT ON) | ||
|
||
# Setup Apple stuff which should be set prior to the first project() or enable_language() | ||
if(APPLE) | ||
# Enable universal binaries for macOS (target arm64 and x86_64) | ||
if(NOT DEFINED CMAKE_OSX_ARCHITECTURES) | ||
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64") | ||
endif() | ||
|
||
# Set the minimum macOS deployment target if not already defined | ||
if(NOT DEFINED CMAKE_OSX_DEPLOYMENT_TARGET) | ||
set(CMAKE_OSX_DEPLOYMENT_TARGET "13.0") | ||
endif() | ||
endif() | ||
|
||
project(libmdbx C) | ||
if(NOT MDBX_AMALGAMATED_SOURCE AND NOT DEFINED BUILD_TESTING) | ||
set(BUILD_TESTING ON) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,6 +4,36 @@ ChangeLog | |
English version [by liar Google](https://libmdbx-dqdkfa-ru.translate.goog/md__change_log.html?_x_tr_sl=ru&_x_tr_tl=en) | ||
and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx.dqdkfa.ru/md__change_log.html). | ||
|
||
## v0.13.4 "Sigma Boy" запланирован на 2025-02-14 | ||
|
||
Поддерживающий выпуск стабильной ветки с исправлением обнаруженных ошибок и устранением недочётов. | ||
|
||
Благодарности: | ||
|
||
- [Алексею Костюку (aka Keller)](https://t.me/keller18306) за сообщения об ошибках и недочетах. | ||
- [Erigon](https://docs.erigon.tech/) за спонсорство. | ||
- [Alain Picard](https://github.com/castortech) for support [Java bindings](https://github.com/castortech/mdbxjni) and MacOS universal binaries patch for CMake build scenario. | ||
- [Alex Sharov](https://github.com/AskAlexSharov) за сообщение об ошибках и тестирование. | ||
|
||
Новое: | ||
|
||
- Поддержка MacOS universal binaries при сборке посредством CMake. | ||
|
||
Исправления: | ||
|
||
- Устранён регресс допускающий SIGSEGV в операциях обновления после вытеснения/spilling страниц в больших транзакциях. | ||
Ошибка присутствует в выпусках v0.13.1, v0.13.2, v0.13.3 и оставалась незамеченной из-за специфических условий и низкой вероятности проявления. | ||
Более подробная информация в описании коммита `a060057e480aa5196c7d5c00ea441c962e3b952d`. | ||
|
||
- Исправлена опечатка в документации в упоминании `mdbx_env_resurrect_after_fork()`. | ||
|
||
- Исправлена опечатка в условном операторе внутри `cursor_touch()`. | ||
При переделке курсоров было пропущено отрицание в условии, при оценке кол-ва страниц, которые могут потребоваться для выполнения операции. | ||
В текущем понимании ошибка не приводила к каким-либо проблемам, ибо оценка делает по верхней границе с существенным запасом, а в худшем | ||
случае это могло приводить к прерыванию транзакции из-за достижения ограничения на кол-во грязных страниц. | ||
|
||
-------------------------------------------------------------------------------- | ||
|
||
## v0.13.3 "Королёв" от 2025-01-12 | ||
|
||
Поддерживающий выпуск с исправлением обнаруженных ошибок и устранением недочетов | ||
|
@@ -501,6 +531,113 @@ Signed-off-by: Леонид Юрьев (Leonid Yuriev) <[email protected]> | |
|
||
-------------------------------------------------------------------------------- | ||
|
||
## v0.12.12 "Доллежаль" от 2024-10-27 | ||
|
||
Поддерживающий выпуск с исправлением обнаруженных ошибок и устранением недочетов, | ||
в память о советском ученом-энергетике Николае Антоновиче Доллежаль в день 125-летия со дня его рождения. | ||
|
||
Это последний выпуск куста стабильных версий 0.12.x, спустя более двух | ||
лет после выпуска 0.12.1. Последующие выпуски 0.12.x будут формироваться | ||
только в случае существенных проблем/ошибок, вероятность чего близка к | ||
нулю. Для всех проектов находящихся в стадии активной разраборки | ||
рекомендуется использовать ветку `master`. | ||
|
||
``` | ||
git diff' stat: x commits, y files changed, z insertions(+), zz deletions(-) | ||
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <[email protected]> | ||
``` | ||
|
||
Значимые исправления: | ||
|
||
- Исправление упущенного `TXN_END_EOTDONE` при сбое старта читающей транзакции. | ||
Упомянутый флажок отсутствовал в пути разрушения транзакции при ошибке | ||
её запуска. Из-за чего делалась попытка разрушить курсоры, что приводило | ||
к падению **отладочных сборок**, так как в них соответствующий массив | ||
намеренно заполнен некорректными указателями. | ||
|
||
- Устранение возможности `SIGSEGV` внутри `coherency_check()` после | ||
изменения геометрии другим процессом с увеличением верхнего размера БД | ||
и увеличением БД больше предыдущего лимита. | ||
|
||
- Доработка `mdbx_close_dbi()` для возврата ошибки при попытке закрыть | ||
dbi-дескриптор таблицы, созданной и/или измененной в ещё выполняющейся | ||
транзакции. Такое преждевременное закрытие дескриптора является неверным | ||
использованием API и нарушением контракта/предусловий сформулированных | ||
в описании `mdbx_close_dbi()`. Однако, вместо возврата ошибки | ||
выполнялось некорректное закрытие дескриптора, что могло приводить к | ||
созданию таблицы с пустым именем, утечки страниц БД и/или нарушению | ||
структуры b-tree (неверной ссылкой на корень таблицы). | ||
Добавлен соответствующий тест `extra/early_close_dbi`. | ||
|
||
-------------------------------------------------------------------------------- | ||
|
||
## v0.12.11 "Лиза и Соня" от 2024-07-23 | ||
|
||
Поддерживающий выпуск с исправлением обнаруженных ошибок и устранением недочетов, | ||
в память об убитых в Крыму девочках 2 и 9 лет. | ||
|
||
Лиза и Соня погибли 23 Июня 2024 на глазах у родителей, в результате | ||
удара по общественному городскому пляжу ракетами ATACMS с кассетными | ||
боеприпасами. Всего пострадало более 150 граждан России, в том числе 27 | ||
детей. Ракеты были выпущенными украинскими бандеровцами/фашистами, но | ||
полетные задания формировались и загружались военными США, а управление | ||
и наведение ATACAMS невозможно без использования орбитальной группировки | ||
военных спутников США. | ||
|
||
``` | ||
git diff' stat: 29 commits, 14 files changed, 379 insertions(+), 151 deletions(-) | ||
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <[email protected]> | ||
``` | ||
|
||
Значимые исправления: | ||
|
||
- Исправление для ОС 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()` в C++ API. | ||
|
||
- Исправление опечатки `равно`/`неравно` в условии внутри | ||
`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 | ||
|
||
Поддерживающий выпуск с исправлением обнаруженных ошибок и устранением недочетов | ||
|
@@ -2250,7 +2387,7 @@ Deprecated functions and flags: | |
- Rework `MADV_DONTNEED` threshold. | ||
- Fix `mdbx_chk` utility for don't checking some numbers if walking on the B-tree was disabled. | ||
- Use page's mp_txnid for basic integrity checking. | ||
- Add `MDBX_FORCE_ASSERTIONS` built-time option. | ||
- Add `MDBX_FORCE_ASSERTIONS` build-time option. | ||
- Rework `MDBX_DBG_DUMP` to avoid performance degradation. | ||
- Rename `MDBX_NOSYNC` to `MDBX_SAFE_NOSYNC` for clarity. | ||
- Interpret `ERROR_ACCESS_DENIED` from `OpenProcess()` as 'process exists'. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,7 +11,7 @@ to the Telegram' group https://t.me/libmdbx. | |
Donations are welcome to ETH `0xD104d8f8B2dC312aaD74899F83EBf3EEBDC1EA3A`. | ||
Всё будет хорошо! | ||
|
||
Copyright 2015-2024 Леонид Юрьев aka Leonid Yuriev <[email protected]> | ||
Copyright 2015-2025 Леонид Юрьев aka Leonid Yuriev <[email protected]> | ||
SPDX-License-Identifier: Apache-2.0 | ||
For notes about the license change, credits and acknowledgments, | ||
please refer to the COPYRIGHT file within original libmdbx source code | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,9 @@ | |
> with [`C` API description](https://libmdbx.dqdkfa.ru/group__c__api.html) | ||
> and pay attention to the [`C++` API](https://gitflic.ru/project/erthink/libmdbx/blob?file=mdbx.h%2B%2B#line-num-1). | ||
> Questions, feedback and suggestions are welcome to the [Telegram' group](https://t.me/libmdbx). | ||
> Questions, feedback and suggestions are welcome to the [Telegram' group](https://t.me/libmdbx) (archive [1](https://libmdbx.dqdkfa.ru/tg-archive/messages1.html), | ||
> [2](https://libmdbx.dqdkfa.ru/tg-archive/messages2.html), [3](https://libmdbx.dqdkfa.ru/tg-archive/messages3.html), [4](https://libmdbx.dqdkfa.ru/tg-archive/messages4.html), | ||
> [5](https://libmdbx.dqdkfa.ru/tg-archive/messages5.html), [6](https://libmdbx.dqdkfa.ru/tg-archive/messages6.html), [7](https://libmdbx.dqdkfa.ru/tg-archive/messages7.html)). | ||
> See the [ChangeLog](https://gitflic.ru/project/erthink/libmdbx/blob?file=ChangeLog.md) for `NEWS` and latest updates. | ||
> Donations are welcome to ETH `0xD104d8f8B2dC312aaD74899F83EBf3EEBDC1EA3A`. | ||
|
@@ -634,19 +636,24 @@ Bindings | |
|
||
| Runtime | Repo | Author | | ||
| ------- | ------ | ------ | | ||
| Rust | [libmdbx-rs](https://github.com/vorot93/libmdbx-rs) | [Artem Vorotnikov](https://github.com/vorot93) | | ||
| Python | [PyPi/libmdbx](https://pypi.org/project/libmdbx/) | [Lazymio](https://github.com/wtdcode) | | ||
| Java | [mdbxjni](https://github.com/castortech/mdbxjni) | [Castor Technologies](https://castortech.com/) | | ||
| Go | [mdbx-go](https://github.com/torquem-ch/mdbx-go) | [Alex Sharov](https://github.com/AskAlexSharov) | | ||
| Ruby | [ruby-mdbx](https://rubygems.org/gems/mdbx/) | [Mahlon E. Smith](https://github.com/mahlonsmith) | | ||
|
||
##### Obsolete/Outdated/Unsupported: | ||
|
||
| Runtime | Repo | Author | | ||
| ------- | ------ | ------ | | ||
| .NET | [mdbx.NET](https://github.com/wangjia184/mdbx.NET) | [Jerry Wang](https://github.com/wangjia184) | | ||
| Scala | [mdbx4s](https://github.com/david-bouyssie/mdbx4s) | [David Bouyssié](https://github.com/david-bouyssie) | | ||
| Rust | [mdbx](https://crates.io/crates/mdbx) | [gcxfd](https://github.com/gcxfd) | | ||
| Haskell | [libmdbx-hs](https://hackage.haskell.org/package/libmdbx) | [Francisco Vallarino](https://github.com/fjvallarino) | | ||
| Lua | [lua-libmdbx](https://github.com/mah0x211/lua-libmdbx) | [Masatoshi Fukunaga](https://github.com/mah0x211) | | ||
| NodeJS, [Deno](https://deno.land/) | [lmdbx-js](https://github.com/kriszyp/lmdbx-js) | [Kris Zyp](https://github.com/kriszyp/) | ||
| NodeJS | [node-mdbx](https://www.npmjs.com/package/node-mdbx/) | [Сергей Федотов](mailto:[email protected]) | | ||
| Ruby | [ruby-mdbx](https://rubygems.org/gems/mdbx/) | [Mahlon E. Smith](https://github.com/mahlonsmith) | | ||
| Go | [mdbx-go](https://github.com/torquem-ch/mdbx-go) | [Alex Sharov](https://github.com/AskAlexSharov) | | ||
| [Nim](https://en.wikipedia.org/wiki/Nim_(programming_language)) | [NimDBX](https://github.com/snej/nimdbx) | [Jens Alfke](https://github.com/snej) | ||
| Lua | [lua-libmdbx](https://github.com/mah0x211/lua-libmdbx) | [Masatoshi Fukunaga](https://github.com/mah0x211) | | ||
| Rust | [libmdbx-rs](https://github.com/vorot93/libmdbx-rs) | [Artem Vorotnikov](https://github.com/vorot93) | | ||
| Rust | [mdbx](https://crates.io/crates/mdbx) | [gcxfd](https://github.com/gcxfd) | | ||
| Java | [mdbxjni](https://github.com/castortech/mdbxjni) | [Castor Technologies](https://castortech.com/) | | ||
| Python | [PyPi/libmdbx](https://pypi.org/project/libmdbx/) | [Lazymio](https://github.com/wtdcode) | | ||
| .NET (obsolete) | [mdbx.NET](https://github.com/wangjia184/mdbx.NET) | [Jerry Wang](https://github.com/wangjia184) | | ||
| Nim | [NimDBX](https://github.com/snej/nimdbx) | [Jens Alfke](https://github.com/snej) | ||
|
||
<!-- section-end --> | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Copyright (c) 2010-2024 Леонид Юрьев aka Leonid Yuriev <[email protected]> ############################################### | ||
# Copyright (c) 2010-2025 Леонид Юрьев aka Leonid Yuriev <[email protected]> ############################################### | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
if(CMAKE_VERSION VERSION_LESS 3.8.2) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Copyright (c) 2012-2024 Леонид Юрьев aka Leonid Yuriev <[email protected]> ############################################### | ||
# Copyright (c) 2012-2025 Леонид Юрьев aka Leonid Yuriev <[email protected]> ############################################### | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
if(CMAKE_VERSION VERSION_LESS 3.8.2) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Copyright (c) 2012-2024 Леонид Юрьев aka Leonid Yuriev <[email protected]> ############################################### | ||
# Copyright (c) 2012-2025 Леонид Юрьев aka Leonid Yuriev <[email protected]> ############################################### | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
if(CMAKE_VERSION VERSION_LESS 3.8.2) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
.\" Copyright 2015-2024 Leonid Yuriev <[email protected]>. | ||
.\" Copyright 2015-2025 Leonid Yuriev <[email protected]>. | ||
.\" Copying restrictions apply. See COPYRIGHT/LICENSE. | ||
.TH MDBX_CHK 1 "2024-08-29" "MDBX 0.13" | ||
.SH NAME | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
.\" Copyright 2015-2024 Leonid Yuriev <[email protected]>. | ||
.\" Copyright 2015-2025 Leonid Yuriev <[email protected]>. | ||
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>. | ||
.\" Copyright 2012-2015 Howard Chu, Symas Corp. All Rights Reserved. | ||
.\" Copying restrictions apply. See COPYRIGHT/LICENSE. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
.\" Copyright 2021-2024 Leonid Yuriev <[email protected]>. | ||
.\" Copyright 2021-2025 Leonid Yuriev <[email protected]>. | ||
.\" Copyright 2014-2021 Howard Chu, Symas Corp. All Rights Reserved. | ||
.\" Copying restrictions apply. See COPYRIGHT/LICENSE. | ||
.TH MDBX_DROP 1 "2024-08-29" "MDBX 0.13" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
.\" Copyright 2015-2024 Leonid Yuriev <[email protected]>. | ||
.\" Copyright 2015-2025 Leonid Yuriev <[email protected]>. | ||
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>. | ||
.\" Copyright 2014-2015 Howard Chu, Symas Corp. All Rights Reserved. | ||
.\" Copying restrictions apply. See COPYRIGHT/LICENSE. | ||
|
Oops, something went wrong.