Можете ли вы явно попросить компилятор Lua встроить?Что насчет LuaJIT? - PullRequest
0 голосов
/ 21 сентября 2018

Есть ли в стандартном компиляторе Lua ключевое слово или некоторые другие функции, которые позволяют явно inline ?А как насчет LuaJIT?

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Нет.

Однако он может применяться только к функциям, которые не замыкания .(Кажется, не имеет смысла иметь какой-то другой способ реализации замыканий; потому что где будет экономия времени?)

В некоторых случаях хвостовой вызов даст большепреимущество, особенно если вы беспокоитесь о стековом пространстве.

0 голосов
/ 21 сентября 2018

В ванильном интерпретаторе Lua нет функции встраивания.Существуют некоторые инструменты для встраивания кода на уровне исходного кода, но это не то, о чем вы просите.

LuaJIT делает некоторые вставки при генерации нативного кода, но это не может контролироваться извне, нет явногоключевое слово inlineИ есть ограничения на то, что может быть встроено.Т.е. вызов нативного кода с использованием библиотеки FFI будет встроенным, но вызовы функций, зарегистрированных через классический интерфейс Lua / C, не могут быть.

...