@ProLua

Страница 182 из 307
Group Butler [beta]
03.10.2017
09:37:06
Добро пожаловать в чат pro.lua, Nikolay! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Добро пожаловать в чат pro.lua, Igor! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Влад
04.10.2017
18:42:39
а почему ругается lualint: setting non-standard global variable 'device_group'?

т.е. я понимаю, что это глобальная переменная. Но почему это плохо?

Google
Philipp
04.10.2017
18:45:09
т.е. я понимаю, что это глобальная переменная. Но почему это плохо?
Потому что глобальный переменный в Луа - чаще всего зло. Захламляют глобальное пространство, не собираются мусорщиком, вносят трудности в работу с кодом

Влад
04.10.2017
18:54:11
это и к функциям относится? т.е. все, что не требует реально глобального использования обьявлять как local?

Philipp
04.10.2017
19:00:04
Да, и функции тоже

Проблема глобалов, например:

Тебе нужно добавить флаг включения дебага. Ты пишешь: _DEBUG = false if _DEBUG then log(error, level) end

А потом ты решаешь подключить другую либу, которая тоже использует флаг _DEBUG в глобалспейсе

С функциями попроще – но всё зависит от того, что ты пишешь

Влад
04.10.2017
19:02:48
ага, понял

А что надо сделать с таблицей arg, чтобы не ругался lualint: accessing undefined variable 'arg'? Она-то есть, но в коде нигде не объявляется, да.

Philipp
04.10.2017
19:03:11
Можно код пожалуйста?

Влад
04.10.2017
19:05:29
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

я запускаю скрипт как ./router.lua uart_asuno_test, и он уходит в эту ветку, если в первом агрументе нужное значение.

Google
Влад
04.10.2017
19:06:48
все работает, но lualint ругается.

Philipp
04.10.2017
19:07:14
А вот тут уже хз, честно говоря

Vadim
04.10.2017
19:53:15
arg=arg or {...}

Philipp
04.10.2017
19:55:42
arg=arg or {...}
Не ругнется на arg опять?

Vadim
04.10.2017
19:56:09
если не тупой, то нет

а вообще, почему lualint, а не luacheck?

Влад
04.10.2017
21:11:29
а незнаю. я поставил первый попавшийся в vscode.

luacheck лучше?

Чай
05.10.2017
03:41:19
Почитал про lualint. Он ведь только использование необъявленных переменных находит? У luacheck больше диагностик (например, недостигаемый код, несовпадение количества переменных и значений в присваивании значений, и т.д.). Есть ещё luainspect (используется для анализа в ZeroBrane), в нём тоже есть интересные штуки, но я не смог найти, как отключить некоторые диагностики и заставить игнорировать конкретные места. Кому-нибудь это удавалось? Luacheck понимает специальные комментарии, например.

Elias
05.10.2017
07:26:45
Да, у luacheck крутой конфигурационный файл. Я вот по C++ файлам пробегаюсь скриптом и нахожу функции, которые регистрируются в Lua, чтобы потом luacheck не указывал на них как на необъявленные глобальные.

Saphire
05.10.2017
07:28:37
Offtopic: https://coinhive.com/documentation/captcha Гм... Относительно удобно

annelin
05.10.2017
10:45:08
адблок блочит даже небо

Group Butler [beta]
05.10.2017
12:45:58
Добро пожаловать в чат pro.lua, Nikita! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Добро пожаловать в чат pro.lua, Aleksey! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Добро пожаловать в чат pro.lua, Максимка ?! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Philipp
05.10.2017
20:34:15
Кто все эти люди что заходят и молчат? :)

PaRaDiSe
05.10.2017
20:39:09
Те, кому срочно понадобилась помощь

Пакет bitOp не хочет собираться ни в какую, есть возможность где нибудь взять .dll сразу?

Google
PaRaDiSe
05.10.2017
20:43:39
mingw32-make: *** [bit.o] Error 1

Snusmumriken
05.10.2017
20:46:03
Тебе под какую версию lua? Luajit?

PaRaDiSe
05.10.2017
20:47:29
мне просто собрать .dll

Philipp
05.10.2017
20:48:18
Тебе под какую версию lua? Luajit?
Я думал ты это, того

Пропал

Snusmumriken
05.10.2017
20:48:54
Ну такое. Карочи, "просто собрать dll" не получится. Её надо собирать под твою версию lua.

PaRaDiSe
05.10.2017
20:49:01
У меня LUA из C# вызывается с помощью NLUA библиотечки, но в скрипте LUA юзается bitOp, который разумется в NLUA не предустановлен.

Думаю что это можно вылечить указанием в скрипте явного пути к bitOp.dll, но я ее уже час не могу собрать.

Snusmumriken
05.10.2017
20:49:57
Заюзай какую-нибудь чисто-луа версию отсюда, изменив скрипт на вызов соответствующих функций. http://lua-users.org/wiki/BitwiseOperators

Ну, прямо скажем, вот эта штука - симулятор bitop на чистой луа. https://github.com/davidm/lua-bit-numberlua/

PaRaDiSe
05.10.2017
22:33:34
Snusmumriken
05.10.2017
22:34:06
Знание - сила.

Group Butler [beta]
06.10.2017
08:19:41
Добро пожаловать в чат pro.lua, Masha! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Добро пожаловать в чат pro.lua, Александр! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Tverd
09.10.2017
15:05:28
Парни, а вот такой вопрос, на подумать... Допустим я в pcall запускаю функцию, которая создает таймер, в колбеке которого идет через секунду, например, деление на 0. Вывалится программа или pcall отработает?

Vadim
09.10.2017
15:09:22
есть причины по которым pcall не должен отработать?

inb4: в lua нет таймеров. Они реализуются на корутинах

Tverd
09.10.2017
15:10:23
не, сам pcall отработает... Да, в луа нет, я про абстрактный движок. Домой приду проверю, интересно.

Alexey
09.10.2017
15:46:41
кто вызывает callback тот и отвечает за обработку ошибок и использование корректного lua_state

Google
Alexey
09.10.2017
15:47:54
Например, ты можешь запустить таймер в одном lua_state (thread),а callback вызвать в другом.

Tverd
09.10.2017
16:22:23
Например, ты можешь запустить таймер в одном lua_state (thread),а callback вызвать в другом.
пока в голове нет понимания этого момента, надо попробовать, я тоже так думаю

Alexey
09.10.2017
16:33:56
https://github.com/Lua-cURL/Lua-cURLv3/issues/62#issuecomment-206763397 Real bug related with lua states

Tverd
09.10.2017
16:38:58
ага, спасибо

Philipp
09.10.2017
16:59:17
Йоу. Есть тут желающие помочь маленьким советом по Гиту?

Paul
09.10.2017
17:04:45
Philipp
09.10.2017
17:07:05
Как отредактировать коммит, который уже сейчас не является последним и ammend не поможет?

Paul
09.10.2017
17:08:06
Создать ветку, откатить её на этот коммит, сделать amend, сделать cherry-pick следующих коммитов.

Первое, что приходит в голову.

Ну и потом опционально сделать reset старой ветки на последний коммит новой.

Philipp
09.10.2017
17:12:47
Too hard. Чуть-чуть попроще, для меня не то, чтобы это ничего не говорило, но очень смутно понимаю что нужно сделать

Paul
09.10.2017
17:14:46
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 Вроде так.

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

Другая ветка нужна только чтобы не потерять остальные коммиты во время отката. Их и так можно будет восстановить в случае факапа, но удобнее, когда ничего не нужно восстанавливать, просто делать всю работу на другой ветке.

Philipp
09.10.2017
17:17:44
А с помощью отката через rebase того же добиться нельзя?

Paul
09.10.2017
17:18:10
Я слышал, что через rebase как-то тоже можно решить данную задачу, но я не знаю, как именно.

Philipp
09.10.2017
17:18:58
Типа, rebase -i HEAD~3 -> pick to edit -> commit --amend, фикс и потом заного пуш. Хм. Пойду попробую сначала через ребейс, но всё равно спасибо

Denis
09.10.2017
23:48:40
#Язабан

Google
Group Butler [beta]
10.10.2017
07:14:32
Добро пожаловать в чат pro.lua, Ёжик! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Alexey
10.10.2017
08:34:35
Работаю сейчас на добавлением нового mime API в Lua-cURL. Но вот задумался. А нужно ли это все. В принцыпе тот же результат получается если использовать LTN12 модуль с readfunction.

Vadim
10.10.2017
08:49:25
юникс-философия говорит что не нужно

но можно в доки добавить в качестве примера :)

Tverd
10.10.2017
08:49:48
Сообщаю, все как и предсказывалось, pcall отрабатывает спокойно, возвращает true. А вот когда отработает таймер с ошибкой - обычный traceback с выходом

Alexey
10.10.2017
08:54:48
Так кто вызывает callback? Я вижу 3 варианта. Отдельный поток OS Некая функция вызываемая из Lua (например uv_run для libuv) Сигнал OS

но можно в доки добавить в качестве примера :)
libcurl добавил новый API в 7,56,0 Но слегка странный на мой взгляд. Но теперь они пишут что это предпочтительный метод. В своей sendmail я использровал LTN12 для отправки писем через curl

Tverd
10.10.2017
09:03:46
колбэк вызывается из libev-ого таймера

Alexey
10.10.2017
09:12:52
Ну если я понимаю првильно то callback вызывается как Lua->ev_run->C_callback->Lua_callback. Т.е. если надо обработать ошибку в Lua_callback надо в C_callback использовать cpcall Передавать ошибку дальше чревато из-за пути ev_run->C_callback

Страница 182 из 307