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 Гм... Относительно удобно
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 отработает... Да, в луа нет, я про абстрактный движок. Домой приду проверю, интересно.
Alexey
кто вызывает callback тот и отвечает за обработку ошибок и использование корректного lua_state
Alexey
Например, ты можешь запустить таймер в одном lua_state (thread),а callback вызвать в другом.
Tverd
Например, ты можешь запустить таймер в одном lua_state (thread),а callback вызвать в другом.
пока в голове нет понимания этого момента, надо попробовать, я тоже так думаю
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 как-то тоже можно решить данную задачу, но я не знаю, как именно.
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
Anonymous
посоны
Anonymous
можно ли на дедике с linux запустить виртуалку и поставить туда винду?
Anonymous
скажем, на OVH
Anonymous
Vagrant?
mva
скажем, на OVH
если не атом, то почему бы и нет
mva
только это оффтоп
Anonymous
только это оффтоп
а, ну типа лучше конфа сдохнет, чем тут будет оффтоп? кк)
Tverd
не сдохнет, не боись )
fgntfg
Snusmumriken
а, ну типа лучше конфа сдохнет, чем тут будет оффтоп? кк)
Пока конфа является моей личной жизнью, и лава течёт в моих венах - конфа будет жить.
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 :(