Size: a a a

2021 September 18

GS

Gromozeka ShS in pro.lua
теперь другая штука:
global 'require' is not callable (a nil value)
источник

T

Tverd in pro.lua
Благодарю!
источник

AZ

Aydar Zarifullin in pro.lua
Луа точно стандартная? Если да то хватило бы

lua_State *L = luaL_newstate();
luaL_openlibs(L);

openlibs загружает всю стандартную библиотеку в стейт. luaopen_ позволяет загрузить только необходимую часть стандартной библиотеки.
источник

GS

Gromozeka ShS in pro.lua
да - спасибо - уже дошло
//luaopen_base(LUA_state);
//luaopen_table(LUA_state);
//luaopen_string(LUA_state);
//luaopen_math(LUA_state);
//luaL_requiref(LUA_state, "io", luaopen_io, 1);
luaL_openlibs(LUA_state);
это кусок был с rsp8266 а там ресурсы ограничены - вот и использовался ограниченный набор библиотек
источник

G

GNU/Vsevolod in pro.lua
Какие еще есть способы переделывать код на коллбеках в процедурный?

Сейчас у меня примерно так:
-- before:
local pipe = uv.new_pipe()
pipe:connect(sockpath, function(err)
 -- handle error
end

-- after
local pipe = uv.new_pipe()
local co = coroutine.running()
pipe:connect(sockpath, function(err)
 coroutine.resume(co, err)
end)
local err = coroutine.yield()
-- handle error
проблема в том, что здесь 1 корутина, решение не работает, если я хочу "ждать" несколько коллбеков от libuv
источник

G

GNU/Vsevolod in pro.lua
И да, точку входа приходится в корутину оборачивать
источник
2021 September 19

AK

Alex Kotik in pro.lua
Друзья, а как то можно отделить компилятор в байткод от виртуальной машины? Есть какой-то дефайн для этого, может быть? Хочу иметь отдельно компилятор, который будет исходники на Lua в байткод компилировать, и виртуальную машину, которая будет этот байткод исполнять, без кода всяких парсеров лексеров и тд.
источник

RA

R A in pro.lua
А как будешь loadstring etc реализовывать?
источник

AK

Alex Kotik in pro.lua
А какие части языка зависят от loadstring? Я бы от него избавился бы совсем.
источник

AZ

Aydar Zarifullin in pro.lua
Я так понял они не нужны, но таких реализаций луа я не видел наверное только если самому сделать
источник

RA

R A in pro.lua
А, это как Лисп без eval :) Наверное, можно сделать, да.
источник

AK

Alex Kotik in pro.lua
Альтернативный вопрос: а есть какой-нибудт эмбеддабл скриптовый язык, типа Луа, но со статической типизацией (на Си написанный)?
источник

L

Leon174 in pro.lua
Хм... Встройка, скриптинг и статика. AngelScript разве что. Не пробовал, но писали, что тот еще тормоз. Но под условия подходит.

http://angelcode.com/angelscript/
источник

L

Leon174 in pro.lua
Кстати, Ravi еще. Но там все экспериментальное такое.

https://github.com/dibyendumajumdar/ravi
источник

L

Leon174 in pro.lua
Пожалуй, еще Wren. Там все на классах.

https://github.com/wren-lang/wren
источник

L

Leon174 in pro.lua
Вот такое еще нарылось. Выглядит неплохо.

https://fascinatedbox.gitlab.io/lily-docs//
источник

AZ

Aydar Zarifullin in pro.lua
Umka и Nelua советовали? Правда насколько они встраиваемые не знаю
источник

L

Leon174 in pro.lua
Nelua с его промежуточной компиляцией в C точно не встройка, а Умка прикольный.
источник

AZ

Aydar Zarifullin in pro.lua
Я не изучал, но с моей точки зрения компиляция в C неплохой вариант. Если конечно это всё можно линковать с другим сишным кодом
источник

L

Leon174 in pro.lua
Ха, а TinyC же может как интерпретатор работать.

https://bellard.org/tcc/
источник