From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-f65.google.com (mail-lf1-f65.google.com [209.85.167.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 79FBB469719 for ; Thu, 1 Oct 2020 16:51:18 +0300 (MSK) Received: by mail-lf1-f65.google.com with SMTP id 77so6690552lfj.0 for ; Thu, 01 Oct 2020 06:51:18 -0700 (PDT) From: Cyrill Gorcunov Date: Thu, 1 Oct 2020 16:51:07 +0300 Message-Id: <20201001135113.329664-1-gorcunov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH v4 0/6] box/func: implement cfunc Lua module List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tml Cc: Vladislav Shpilevoy , Alexander Turenko The cfunc module provide a way to execute C stored procedures on read only nodes without registring them in `_func` system space. The series implements a bare minimum. There was a request to make cfunc been Lua object with appropriate methods. If this is really preferred then I'll implement this wrapping Lua code on top. I mean that currently all operations are done via > require('cfunc').[create|drop|call|reload] interface while there was a proposal to operate as > a = require('cfunc').create > a:call(args) Please take a look once time permit. v1-v3 are development ones and not sent. branch gorcunov/gh-4642-func-ro-4 issue https://github.com/tarantool/tarantool/issues/4642 Cyrill Gorcunov (6): box/func: factor out c function entry structure box/func: provide module_sym_call box/func: more detailed error in module reloading box/func: export func_split_name helper box/func: implement cfunc Lua module test: box/cfunc -- add simple module test src/box/CMakeLists.txt | 1 + src/box/func.c | 259 ++++++++++++++-------------- src/box/func.h | 78 +++++++++ src/box/lua/cfunc.c | 362 ++++++++++++++++++++++++++++++++++++++++ src/box/lua/cfunc.h | 55 ++++++ src/box/lua/init.c | 2 + test/box/CMakeLists.txt | 2 + test/box/cfunc.result | 116 +++++++++++++ test/box/cfunc.test.lua | 56 +++++++ test/box/cfunc1.c | 46 +++++ test/box/cfunc2.c | 46 +++++ test/box/suite.ini | 2 +- 12 files changed, 894 insertions(+), 131 deletions(-) create mode 100644 src/box/lua/cfunc.c create mode 100644 src/box/lua/cfunc.h create mode 100644 test/box/cfunc.result create mode 100644 test/box/cfunc.test.lua create mode 100644 test/box/cfunc1.c create mode 100644 test/box/cfunc2.c base-commit: d25ecab48832340dc2ef9c072cf506924c03af52 -- 2.26.2