[Tarantool-patches] [PATCH 2/2] popen: add popen Lua module

Alexander Turenko alexander.turenko at tarantool.org
Tue Apr 21 16:38:29 MSK 2020


> > > > +static int
> > > > +luaT_push_string_noxc(struct lua_State *L, char *str, size_t len)
> > > > +{
> > > > +	lua_pushcfunction(L, luaT_push_string_noxc_wrapper);
> > > > +	lua_pushlightuserdata(L, str);
> > > > +	lua_pushinteger(L, len);
> > > > +	return luaT_call(L, 2, 1);
> > > > +}
> > > 
> > > Minor: IMHO luaT_pushstring_* is more Lua-like naming.
> > 
> > It is from past agreements too: we discussed this with Vladimir D. and
> > agreed to split 'foo' and 'bar' in 'lua*_foo_bar_baz()', when there is
> > 'baz'. When there is no 'baz', it is 'lua*_foobar()'.
> 
> Are there any docs/guides/notes as a result of this discussion?

Nope.

> > > > +
> > > > +		lua_getfield(L, 2, "timeout");
> > > > +		if (!lua_isnil(L, -1) &&
> > > > +		    (timeout = luaT_check_timeout(L, -1)) < 0.0)
> > > > +			goto usage;
> > > > +		lua_pop(L, 1);
> > > 
> > > Minor: I see this passage only in two similar places, so I propose to
> > > move everything to a timeout-related helper.
> > 
> > luaT_check_timeout() is already this helper. Don't sure it worth to add
> > one more wrapping level.
> 
> I mean you can also move there all table manipulations and checks.

But fail branch do a function specific logic. I don't sure here. It
seems we can pass an error string to the function.

However lua*_check_foo() pattern is used across tarantool (see
luaL_checkibuf() for example) and timeout helper may become common
sooner or later.

WBR, Alexander Turenko.


More information about the Tarantool-patches mailing list