Commit Graph

34 Commits

Author SHA1 Message Date
Leonid Yuriev
44b1a3bcff
mdbx: release v0.9.1
Added features:

 - Preliminary C++ API with support for C++17 polymorphic allocators.
 - [Online C++ API reference](https://erthink.github.io/libmdbx/) by Doxygen.
 - Quick reference for Insert/Update/Delete operations.
 - Explicit `MDBX_SYNC_DURABLE` to sync modes for API clarity.
 - Explicit `MDBX_ALLDUPS` and `MDBX_UPSERT` for API clarity.
 - Support for read transactions preparation (`MDBX_TXN_RDONLY_PREPARE` flag).
 - Support for cursor preparation/(pre)allocation and reusing (`mdbx_cursor_create()` and `mdbx_cursor_bind()` functions).
 - Support for checking database using specified meta-page (see `mdbx_chk -h`).
 - Support for turn to the specific meta-page after checking (see `mdbx_chk -h`).
 - Support for explicit reader threads (de)registration.
 - The `mdbx_txn_break()` function to explicitly mark a transaction as broken.
 - Improved handling of corrupted databases by `mdbx_chk` utility and `mdbx_walk_tree()` function.
 - Improved DB corruption detection by checking parent-page-txnid.
 - Improved opening large DB (> 4Gb) from 32-bit code.
 - Provided `pure-function` and `const-function` attributes to C API.
 - Support for user-settable context for transactions & cursors.
 - Revised API and documentation related to Handle-Slow-Readers callback feature.

Deprecated functions and flags:

 - For clarity and API simplification the `MDBX_MAPASYNC` flag is deprecated.
   Just use `MDBX_SAFE_NOSYNC` or `MDBX_UTTERLY_NOSYNC` instead of it.
 - `MDBX_oom_func`, `mdbx_env_set_oomfunc()` and `mdbx_env_get_oomfunc()`
   replaced with `MDBX_hsr_func`, `mdbx_env_get_hsr` and `mdbx_env_get_hsr()`.

Fixes:

 - Fix `mdbx_strerror()` for `MDBX_BUSY` error (no error description is returned).
 - Fix update internal meta-geo information in read-only mode (`EACCESS` or `EBADFD` error).
 - Fix `mdbx_page_get()` null-defer when DB corrupted (crash by `SIGSEGV`).
 - Fix `mdbx_env_open()` for re-opening after non-fatal errors (`mdbx_chk` unexpected failures).
 - Workaround for MSVC 19.27 `static_assert()` bug.
 - Doxygen descriptions and refinement.
 - Update Valgrind's suppressions.
 - Workaround to avoid infinite loop of 'nested' testcase on MIPS under QEMU.
 - Fix a lot of typos & spelling (Thanks to Josh Soref for PR).
 - Fix `getopt()` messages for Windows (Thanks to Andrey Sporaw for reporting).
 - Fix MSVC compiler version requirements (Thanks to Andrey Sporaw for reporting).
 - Workarounds for QEMU's bugs to run tests for cross-builded library under QEMU.
 - Now C++ compiler optional for building by CMake.

TODO for next version(s):

 - Rework/speedup the implementation of the dirty page list (lazy compactification, lazy sorting via merge).
 - Finalize C++ API (few typos and trivia bugs are likely for now).
 - Packages for ROSA Linux, ALT Linux, Fedora/RHEL, Debian/Ubuntu.

Change-Id: I668d77e4545d444b60708b8c64a66ce43b2c56a0
2020-09-30 13:28:01 +03:00
Leonid Yuriev
e40dfb771e mdbx-ci: workaround for MSVC-2019 optimizer bug.
Related to https://github.com/erthink/libmdbx/issues/116

Change-Id: I8d1a7248bcf3e4369ffb7600cedee8e5bc5bd95c
2020-09-14 03:48:59 +03:00
Leonid Yuriev
16912b8a40 mdbx-ci: allow builds using MSVC-2019 to fail due to internal compiler errors.
At least the MSVC 19.27.29111.0 hang up during code generation/optimization due to its own internal errors.

Related to https://github.com/erthink/libmdbx/issues/116

Change-Id: I016769b38dea800da5450bd33fb241f145ff24da
2020-09-07 20:49:40 +03:00
Leonid Yuriev
88a4b8cb9b mdbx++: Initial C++ API (some extra methods are not implemented).
Change-Id: I0478d0c94dcd12b52916e87815e5731817407c3c
2020-08-28 16:45:30 +03:00
Leonid Yuriev
c778d3cfd4 mdbx: bump version to 0.9.x (not a release, but API changes).
Change-Id: I756f1224739df53d8503cf308c2c908f6ecd3fd1
2020-07-31 00:45:34 +03:00
Leonid Yuriev
fc9ae9ebc6 mdbx: bump version to 0.8.2
Change-Id: I99ace837318d3aef4086392272c8256d966ef2fd
2020-07-06 16:37:35 +03:00
Leonid Yuriev
eec7b87288 mdbx-ci: fix appveyor build-version (cosmetics).
Change-Id: I42a612d6139285994b911d1747efea3861183733
2020-06-26 03:22:47 +03:00
Leonid Yuriev
0117473cbc mdbx: bump version to 0.8.x
Change-Id: I6d2a1a3b04341461288e18c66d11e79d343750b0
2020-06-05 03:00:43 +03:00
Leonid Yuriev
8f5ae79b51 mdbx: bump version to 0.7.x
Change-Id: I6cb06fbd7119eed086b54a9760db1e0edf5de07b
2020-03-18 17:19:12 +03:00
Leonid Yuriev
700f3514b3 mdbx: bump version to 0.6.x
Change-Id: I925ab0aaefb1a8f9860925c2e8e7c81015428b2e
2020-01-21 00:17:55 +03:00
Leonid Yuriev
0a487d0b9e mdbx: bump version to 0.5
Change-Id: Id2c82b5cbe567cffe193b86ecf13af93e58363c1
2019-12-31 20:59:13 +03:00
Leonid Yuriev
ba935ab8f1 mdbx: bump version to 0.4
Change-Id: I5c034cdc81df246f47e9d86c29ea5f58888a6581
2019-12-02 02:04:43 +03:00
Leonid Yuriev
4ee3bc8be9 mdbx-ci: fix log-artifacts path for AppVeyor.
Change-Id: Iba58c1812c16e92f7198e02529f976912956db88
2019-11-04 00:22:13 +03:00
Leonid Yuriev
7b2034c699 mdbx-ci: extend build-matrix for AppVeyour.
Change-Id: Ifd78c2449019dcac1ecb1449e847bc3be7362761
2019-10-24 22:12:14 +03:00
Leonid Yuriev
a644c50307 mdbx-ci: enable non-console progress indicator explicitly.
Change-Id: I58c27cc17f1ae11d476e5a338efe7ee515efc389
2019-10-02 12:08:07 +03:00
Leonid Yuriev
7c17e314aa mdbx-ci: fix log/artifacts path. 2019-09-03 21:18:05 +03:00
Leonid Yuriev
344a4e7138 mdbx-ci: fix exe-paths for AppVeyor. 2019-09-03 02:33:59 +03:00
Leonid Yuriev
5a87faf9af mdbx-build: start using CMake (incomplete; no properly installation for now). 2019-09-03 02:33:57 +03:00
Leonid Yuriev
6f8238e1e9 mdbx: LCK-format version 3.
The LCK file is re-created at every opportunity when the process that
opens the database is the only one that works with it. Thus the change
of the format of the file LCK creates only minimal compatibility
problems.

Applications using different versions of _libmdbx_ will be able to work
with one database alternately, but not at the same time. This appears to
be an acceptable inconvenience in exchange for new features.

Change-Id: I9414b3fffd53d5519c8172c57345b1eaf6e51c77
2019-08-23 03:38:11 +03:00
Leonid Yuriev
03287b73a1 mdbx-ci: disable CI for old MSVC compilers.
Change-Id: Ia1072745664d9a97d4114149a305a6399bde71aa
2018-10-01 20:03:10 +03:00
Leo Yuriev
5a461a84e0 mdbx-ci: add test.db to appveyor artefacts (windows). 2018-09-14 15:11:38 +03:00
Leo Yuriev
bf29182eda mdbx-ci: rename 'test.exe' to 'mdbx_test.exe'. 2018-09-14 14:15:42 +03:00
Leo Yuriev
b4eb9dda5c mdbx-ci: push logs to appveyor separately. 2018-09-14 14:10:36 +03:00
Leo Yuriev
3b80b358e5 mdbx-ci: temporary disable 64-bit Windows builds (test fail due command-line limitations). 2018-09-13 21:20:01 +03:00
Leo Yuriev
31b5f64054 mdbx: bump version to v0.2.0
Change-Id: I113419b685c38f23c35da6790648f7f994a15f29
2018-06-21 17:54:59 +03:00
Leo Yuriev
b6e605b8da mdbx: bump version to v0.1.5 2018-06-14 13:53:05 +03:00
Leo Yuriev
bea1349dd4 mdbx: bump internal version info to v0.1.4 2018-05-04 13:21:18 +03:00
Leo Yuriev
f4a9018690 mdbx: bump internal version info to v0.1.3
Change-Id: I7db311c812d531f6628101715f6658005db3ea24
2018-04-03 20:37:07 +03:00
Leo Yuriev
22b9409a8d mdbx-ci: exclude coverity-branch from appveyor.
Change-Id: I1a02b3a151b430425d8dba12c81af42091994f15
2017-07-21 22:51:56 +03:00
Leo Yuriev
700ec68d06 mdbx-ci: add mdbx_chk info appveyor.
Change-Id: Ic620a2dddfa6ea973c9f7b37bdc801282283db8a
2017-07-19 14:13:18 +03:00
Leo Yuriev
a9faaaaf21 mdbx: ci-appveyor - complete matrix MSVC 2013/2015/2017.
Change-Id: Ie7984960e83bb8e4366531665c2f5195eca6cc41
2017-07-05 21:40:18 +03:00
Leo Yuriev
f91218bda4 ci: Push-AppveyorArtifact on failure. 2017-04-25 18:30:31 +03:00
Leo Yuriev
66d842c23b ci: provide test.log 2017-04-24 21:14:24 +03:00
Leo Yuriev
1b26de1f44 ci: rename appveyor.yml 2017-04-24 16:35:04 +03:00