Anonymous
@vvzvlad print("stdin:", io.stdin:read("*a"))
vvzvlad
а почему ругается lualint: setting non-standard global variable 'device_group'?
vvzvlad
т.е. я понимаю, что это глобальная переменная. Но почему это плохо?
vvzvlad
это и к функциям относится? т.е. все, что не требует реально глобального использования обьявлять как local?
vvzvlad
ага, понял
vvzvlad
А что надо сделать с таблицей arg, чтобы не ругался lualint: accessing undefined variable 'arg'?
Она-то есть, но в коде нигде не объявляется, да.
vvzvlad
if (arg[1] == "uart_asuno_test") then
print("use:\trouter.lua uart_asuno_test fd00:0000:0000:0000:0212:4b00:0c47:4a85 on/off/on_off 5(on_off cycle delay in sec, default 10)")
end
vvzvlad
я запускаю скрипт как ./router.lua uart_asuno_test, и он уходит в эту ветку, если в первом агрументе нужное значение.
vvzvlad
все работает, но lualint ругается.
mva
arg=arg or {...}
mva
если не тупой, то нет
mva
а вообще, почему lualint, а не luacheck?
vvzvlad
а незнаю. я поставил первый попавшийся в vscode.
vvzvlad
luacheck лучше?
ㅤ
Почитал про lualint. Он ведь только использование необъявленных переменных находит? У luacheck больше диагностик (например, недостигаемый код, несовпадение количества переменных и значений в присваивании значений, и т.д.).
Есть ещё luainspect (используется для анализа в ZeroBrane), в нём тоже есть интересные штуки, но я не смог найти, как отключить некоторые диагностики и заставить игнорировать конкретные места. Кому-нибудь это удавалось? Luacheck понимает специальные комментарии, например.
Elias
Да, у luacheck крутой конфигурационный файл. Я вот по C++ файлам пробегаюсь скриптом и нахожу функции, которые регистрируются в Lua, чтобы потом luacheck не указывал на них как на необъявленные глобальные.
Saphire
Offtopic:
https://coinhive.com/documentation/captcha
Гм... Относительно удобно
Dika
Anonymous
адблок блочит даже небо
Максим
Те, кому срочно понадобилась помощь
Максим
Пакет bitOp не хочет собираться ни в какую, есть возможность где нибудь взять .dll сразу?
Максим
mingw32-make: *** [bit.o] Error 1
Snusmumriken
Тебе под какую версию lua? Luajit?
Максим
мне просто собрать .dll
Snusmumriken
Ну такое.
Карочи, "просто собрать dll" не получится. Её надо собирать под твою версию lua.
Максим
У меня LUA из C# вызывается с помощью NLUA библиотечки, но в скрипте LUA юзается bitOp, который разумется в NLUA не предустановлен.
Максим
Думаю что это можно вылечить указанием в скрипте явного пути к bitOp.dll, но я ее уже час не могу собрать.
Snusmumriken
Заюзай какую-нибудь чисто-луа версию отсюда, изменив скрипт на вызов соответствующих функций.
http://lua-users.org/wiki/BitwiseOperators
Snusmumriken
Ну, прямо скажем, вот эта штука - симулятор bitop на чистой луа.
https://github.com/davidm/lua-bit-numberlua/
Максим
Snusmumriken
Знание - сила.
Tverd
Парни, а вот такой вопрос, на подумать... Допустим я в pcall запускаю функцию, которая создает таймер, в колбеке которого идет через секунду, например, деление на 0. Вывалится программа или pcall отработает?
mva
есть причины по которым pcall не должен отработать?
mva
inb4: в lua нет таймеров. Они реализуются на корутинах
Tverd
не, сам pcall отработает... Да, в луа нет, я про абстрактный движок. Домой приду проверю, интересно.
Anonymous
Alexey
кто вызывает callback тот и отвечает за обработку ошибок и использование корректного lua_state
Alexey
Например, ты можешь запустить таймер в одном lua_state (thread),а callback вызвать в другом.
Tverd
Tverd
Alexey
https://github.com/Lua-cURL/Lua-cURLv3/issues/62#issuecomment-206763397
Real bug related with lua states
Tverd
ага, спасибо
Anonymous
Спрашивайте свои вопросы.
Anonymous
Создать ветку, откатить её на этот коммит, сделать amend, сделать cherry-pick следующих коммитов.
Anonymous
Первое, что приходит в голову.
Anonymous
Ну и потом опционально сделать reset старой ветки на последний коммит новой.
Anonymous
git branch tmp
git checkout tmp
git reset —hard <commit-hash>
git commit —amend
git cherry-pick <next-commit-hash1>
...
git cherry-pick <next-commit-hash-n>
git checkout old-branch
git reset —hard tmp
Вроде так.
Anonymous
Ну то есть суть в том, чтобы откатиться на тот самый коммит, отредактировать его, а потом накатить поверх все более поздние коммиты.
Anonymous
Другая ветка нужна только чтобы не потерять остальные коммиты во время отката. Их и так можно будет восстановить в случае факапа, но удобнее, когда ничего не нужно восстанавливать, просто делать всю работу на другой ветке.
Anonymous
Я слышал, что через rebase как-то тоже можно решить данную задачу, но я не знаю, как именно.
Dika
Denis
#Язабан
Snusmumriken
Alexey
Работаю сейчас на добавлением нового mime API в Lua-cURL.
Но вот задумался. А нужно ли это все. В принцыпе тот же результат получается
если использовать LTN12 модуль с readfunction.
mva
юникс-философия говорит что не нужно
mva
но можно в доки добавить в качестве примера :)
Tverd
Сообщаю, все как и предсказывалось, pcall отрабатывает спокойно, возвращает true. А вот когда отработает таймер с ошибкой - обычный traceback с выходом
Alexey
Так кто вызывает callback?
Я вижу 3 варианта.
Отдельный поток OS
Некая функция вызываемая из Lua (например uv_run для libuv)
Сигнал OS
Alexey
но можно в доки добавить в качестве примера :)
libcurl добавил новый API в 7,56,0 Но слегка странный на мой взгляд.
Но теперь они пишут что это предпочтительный метод.
В своей sendmail я использровал LTN12 для отправки писем через curl
Tverd
колбэк вызывается из libev-ого таймера
Alexey
Ну если я понимаю првильно то callback вызывается как Lua->ev_run->C_callback->Lua_callback.
Т.е. если надо обработать ошибку в Lua_callback надо в C_callback использовать cpcall
Передавать ошибку дальше чревато из-за пути ev_run->C_callback
Alexey
в своей lluv библиотеке я в C_Callback сохраняю ошибку в специальном upvalue и останавливаю цикл
далее по завершению uv_run я проверяю этот upvalue и если он установлен то генерирую Lua error повторно
Alexey
https://github.com/moteus/lua-lluv/blob/master/src/lluv_loop.c#L355
Tverd
Anonymous
посоны
Anonymous
можно ли на дедике с linux запустить виртуалку и поставить туда винду?
Anonymous
скажем, на OVH
Anonymous
Vagrant?
Alex
mva
только это оффтоп
Anonymous
только это оффтоп
а, ну типа лучше конфа сдохнет, чем тут будет оффтоп? кк)
Tverd
не сдохнет, не боись )
fgntfg
Snusmumriken
Стекломой - это лава.
Saphire
только это оффтоп
Это не конца о С++, тут не так строго с оффтопом
Да и вообще, забивание в щи любого оффтопом чревато отмиранием чата.
Snusmumriken
Карочи, оффтоп - это "слишком длинная фигня не по теме". Длину определяют @Snusmumriken или @AlexFails.
Anonymous
edx-ng ~ # modprobe kvm-intel
modprobe: ERROR: ../libkmod/libkmod.c:557 kmod_search_moddep() could not open moddep file '/lib/modules/3.14.32-xxxx-grs-ipv6-64/modules.dep.bin'
Anonymous
OVH :(