[Tarantool-patches] [PATCH 1.10 v4 0/5] module api: extend for external merger Lua module

Timur Safin tsafin at tarantool.org
Wed Oct 14 03:15:39 MSK 2020


Ok we are all tired and need to sleep, but let me reiterate it once again:

The current patchset is a 1.10 backport of a 2.X series which was in turn 
continuation of patch series which Alexander Turenko has sent before.

The major difference here - is the way how we export symbols:
- in 1.10 there was no `src/exports.h` existing, and we were using
  old good `extra/exports` instead;
- also we have added 1 extra backport of `luaL_iscallable`.

Enjoy!

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;

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


Alexander Turenko (1):
  module api: add luaL_iscallable with support of cdata metatype

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

 extra/exports                    |   7 ++
 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/tuple.c                  |   8 ++
 src/box/tuple.h                  |  11 +++
 src/lua/msgpack.c                |   2 +-
 src/lua/utils.c                  |  45 +++++++++-
 src/lua/utils.h                  |  32 +++++--
 test/app-tap/module_api.c        | 140 +++++++++++++++++++++++++++++++
 test/app-tap/module_api.test.lua | 131 ++++++++++++++++++++++++++++-
 14 files changed, 517 insertions(+), 9 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