From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp16.mail.ru (smtp16.mail.ru [94.100.176.153]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 44BC5469719 for ; Wed, 14 Oct 2020 02:01:29 +0300 (MSK) From: Timur Safin Date: Wed, 14 Oct 2020 02:01:08 +0300 Message-Id: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH 2.X v4 0/4] module api: extend for external merger Lua module List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: v.shpilevoy@tarantool.org, alexander.turenko@tarantool.org Cc: tarantool-patches@dev.tarantool.org 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