[Tarantool-patches] [PATCH 2.X v4 0/4] module api: extend for external merger Lua module

Timur Safin tsafin at tarantool.org
Wed Oct 14 02:01:08 MSK 2020


Blah-blah-blah (see v1..v3 introductions), this version is hopefully looking 
close to final. Even, all patches have been completed with reasonable tests.

Enjoy!

SashaTu, Vlad, please pay some attention!

Changelog of v2 to v1
---------------------
Please do not be surprised to not seen v2 in your inbox - it was cancelled 
after discussion with Alexander Turenko (see v2.1 below with descriptions)

- Unpublished again `lauT_temp_state`, `luaT_release_temp_state` - they are
  performance wrappers around creation of Lua thread states. Agreed that 
  performance impact not that big, thus created similar compatibility wrappers
  on the module side;
- unpublished `luaT_newthread`, because for module usage `lua_newthread` is 
  enough;
- unpublished `luaL_register_module` & `luaL_register_type` and reworked module
  code with `luaL_register`.

Smallish changelog of v2.1 to v2
--------------------------------
Alexander Turenko has provided valuable feedback to the v2 branch I've shown,
so we have yet more reduced this patchset
- Unpublished `luaL_cdata_iscallable`, it's unnecessary for external module
  which is using now public `luaL_iscallable` module api call, instead 
  of compatibility layer in module;
- Unpublished `luaL_checkconstchar` because it's not yet needed anywhere
  externally;
- Accordingly to thsoe changes above we have reduced code in module_api
  test files.

Changelog for v3
----------------
- Reshuffled patchset to merge tests with their corresponding code;

I'm sending this version because it's too late already and I need to sleep...

Changelog v3.1
--------------
- Added ibuf wrapper, the simpler way (only reserve, and rpos, wpos accessors)

Changelog v4
------------
- final polishing of examples
- tests for luaT_toibuf, with ibuf consistency checks
- tests for key_def_dup
- tests for tuple_validate

Hope it's good enough for feature freeze...


Issue:
* https://github.com/tarantool/tarantool/issues/5384
  ('module api: expose everything that is needed for external merger module')

Branches:
* https://github.com/tarantool/tarantool/tree/tsafin/gh-5273-expand-module-api-v4
  (top 4 commits above of a bunch of @Totktonada's commits)


Timur Safin (4):
  module api: export box_tuple_validate
  module api: export box_key_def_dup
  module api: introduced luaT_toibuf instead of luaL_checkibuf
  module api: box_ibuf_* wrappers

 src/CMakeLists.txt               |   1 +
 src/box/CMakeLists.txt           |   1 +
 src/box/ibuf.c                   |  65 +++++++++++++++
 src/box/ibuf.h                   |  67 ++++++++++++++++
 src/box/key_def.c                |   6 ++
 src/box/key_def.h                |  10 +++
 src/box/lua/merger.c             |   4 +-
 src/box/tuple.c                  |   6 ++
 src/box/tuple.h                  |  11 +++
 src/exports.h                    |   6 ++
 src/lua/msgpack.c                |   2 +-
 src/lua/utils.c                  |   2 +-
 src/lua/utils.h                  |  16 ++--
 test/app-tap/module_api.c        | 131 +++++++++++++++++++++++++++++++
 test/app-tap/module_api.test.lua |  50 +++++++++++-
 15 files changed, 365 insertions(+), 13 deletions(-)
 create mode 100644 src/box/ibuf.c
 create mode 100644 src/box/ibuf.h

-- 
2.20.1



More information about the Tarantool-patches mailing list