Lua Five Three
Summaries of differences between 5.2 and 5.3 can be found here:
Areas affected also described on the wiki include
stripwould be usable in LuaCompilerInLua and was previously in LuaJit.
Other areas this page might address: LuaJIT? and LuaImplementations? IDE support?
table.move (a1, f, e, t [,a2]) http://www.lua.org/work/doc/manual.html#pdf-table.move
This new function does a copy of a range of values.
Design-wise, this function bears some resemblance to the C
memmove  function but is not implemented in terms of it. The source and destination ranges may overlap (unlike the C
table.move provides a convenient way to clear (all or some of) an array too:
table.move(a, #a+1, 2*#a, 1)
table.move was previously named
table.copy in 5.3.0(alpha).
table.move is internally implemented with
lua_seti  or (if
void lua_rotate (lua_State *L, int idx, int n); https://www.lua.org/manual/5.3/manual.html#lua_rotate
Observe lua.h definitions of
lua_remove in terms of
#define lua_insert(L,idx) lua_rotate(L, (idx), 1) #define lua_remove(L,idx) (lua_rotate(L, (idx), -1), lua_pop(L, 1))
The readme says "arg table available to all code".