From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp45.i.mail.ru (smtp45.i.mail.ru [94.100.177.105]) (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 BB1CC469719 for ; Wed, 14 Oct 2020 03:15:58 +0300 (MSK) From: Timur Safin Date: Wed, 14 Oct 2020 03:15:39 +0300 Message-Id: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH 1.10 v4 0/5] 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 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