
Tverd
14.12.2017
08:37:11
ну пока будем отталкиваться от этого

Group Butler [beta]
14.12.2017
09:08:07
Добро пожаловать в чат pro.lua, Vyacheslav! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.
Добро пожаловать в чат pro.lua, Aydar! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.
Добро пожаловать в чат pro.lua, Aiwan ╭∩╮ (òÓ,) ╭∩╮! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Google

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

Alxius
18.12.2017
01:31:01
мне сказали в чате что отсутствие виндовс версии игры - это серьезная проблема для людей которые хотят посмотреть игру я наконец то это исправил вот страничка с релизом виндовс версии (Наконец то спустя 3 месяца) https://vk.com/feed?w=wall-134363102_74
да да это тот самый проеkt на Love2D

Vadim
18.12.2017
07:19:49
> отсутствие виндовс версии игры - это серьезная проблема для людей которые хотят посмотреть игру
ну, как обычно. самые наглые юзеры - юзеры windows

Snusmumriken
18.12.2017
07:37:39
И их примерно 95%, я смотрел статистику пользователей стима.
А линукс-игруны пользуются стимом, потому что это самая большая база игр под линукс.

Aiwan ╭∩╮ (òÓ,) ╭∩╮
18.12.2017
07:41:21
что за игра? где можно почитать о ней?

Snusmumriken
18.12.2017
08:04:09

Nick
18.12.2017
13:04:26
подскажите, чем к тарантулу ходить из lapis ?
https://github.com/hengestone/lapis-tarantool не работает

Snusmumriken
20.12.2017
14:30:04
Привет посоны, чего хотите/расскажете? : )
Самое забавное и одновременно стрёмное что можно придумать - луа-приложение на тарантуле, которое слушает сокет, принимает луа-код, исполняет через loadstring и возвращает ответ. Тут возможны запросы произвольной сложности, и вызывающая сторона сама думает, что и как ей надо.
Но вообще есть вот это:
https://github.com/tarantool/tarantino

Google

fgntfg
20.12.2017
16:41:55

Snusmumriken
20.12.2017
16:48:09
> Самое забавное и одновременно стрёмное

fgntfg
20.12.2017
16:55:44
Можно сделать свой Rest-api a-la elastic

Влад
20.12.2017
16:56:58
А как на паттернах в луа захватить первое слово, если оно либо "set", либо "get"?

fgntfg
20.12.2017
16:57:00
И назвать его тарантастик

Влад
20.12.2017
16:58:05
Ну, т.е. аналогично такому, но проще:
local _, _, gpio_cmd = string.find(message, ^(%a%a%a))
if (gpio_cmd == "set" or gpio_cmd == "get") then ...
Что-нибудь типа ^(get|set)

_AMD_
20.12.2017
16:59:46
sub?

fgntfg
20.12.2017
17:02:14

Влад
20.12.2017
17:04:39
что не работает?

fgntfg
20.12.2017
17:06:21
Regex

Philipp
20.12.2017
17:17:40
Так а разве луа-паттерны имеют оператор |?

Влад
20.12.2017
17:19:26

Philipp
20.12.2017
17:19:50
@FGNTFG тогда как тут поможет find?

Влад
20.12.2017
17:22:12
А все равно паттерный два раза писать. Я хотел в один уместить

fgntfg
20.12.2017
17:22:59
http://rrthomas.github.io/lrexlib/

Vsevolod
20.12.2017
17:32:37
lpeg.re еще

Say
20.12.2017
18:02:14
Ребят а как сгенерить xml ?

Philipp
20.12.2017
18:03:11
Руками? :)

Say
20.12.2017
18:57:16
А готового ничего нет,типа lxml ?

Google

Philipp
20.12.2017
18:57:35
https://www.google.ru/search?q=lua+xml+&ie=utf-8&oe=utf-8&client=firefox-b-ab&gfe_rd=cr&dcr=1&ei=k7I6WsLaKe2O6ATAu5vgDQ

Say
20.12.2017
18:57:47
Чтоб из table в xml как нить ?;)

Philipp
20.12.2017
18:58:07
Намёк понят? :)

Say
20.12.2017
19:00:52
Там парсеры все ..

Philipp
20.12.2017
19:01:42
Вообще, я человек добрый и отзывчивый. До тех пор, пока люди не начинают лениться настолько, что заставляют меня лезть за них в гугл и вводить там три слова. Я вас не понимаю

Snusmumriken
20.12.2017
19:03:40
Чтоб из table в xml как нить ?;)
Прекол XML в том, что там есть куча дополнительного стаффа.
Есть такой XML:
<tag1>
<tag2>bla-bla</tag2>
</tag1>
Есть такой XML:
<tag1 property1=bla-bla, property2 = "prop">
<tag2></tag3>bla-bla</tag2>
</tag1>
Поэтому для нормальной конверсии, нужно делать таблички такого рода:
xmltbl = {
tag = "tag1",
properties = {
property1 = "bla-bla",
property2 = "prop2"
},
nodes = {
{
tag = "tag2",
content = {
"</tag3>",
"tag2",
....
}
}
}
}

Philipp
20.12.2017
19:04:07
А вот Снус добрый и отзывчивый, так и еще и дикий задрот и ему не жалко тратить время на такое

Aydar
20.12.2017
19:21:27

Snusmumriken
20.12.2017
19:21:35
< 3

Vsevolod
20.12.2017
20:03:12
а никто не занимался вопросами отладки стека lua, при написании сишных расширений: вроде вошли в функцию, имеем N аргументов на входе, M на выходе (скажем, из docstring'а), и для каждой функции lua API проверяем, чтобы N и M оставались инвариантными
наверное, немного сумбурно, но стоит задача найти функцию-паразита, которая подсирает в стек
я думал даже писать под это дело расширение к libclang, но руки пока не дошли
наверняка у многих возникала такая проблема, не?


Snusmumriken
20.12.2017
20:40:13
Ничего особо сложного.
1. lua_gettop(L); - получить количество фигни на стеке
2. lua_settop(L, n); - выставить значение стека
т.е.
// луа-функция имеет на входе только стейт
int lua_cfunc(lua_state * L){
// если первые два значения в стеке - числа
if (lua_isnumber(L, 1) && lua_isnumber(L, 2)){
// берём первое число
int a = lua_checknumber(L, 1);
// берём второе число
int b = lua_checknumber(L, 2);
int c = a + b;
int d = a - b;
// пихаем в конец стека фигню
lua_pushnumber(L, c);
lua_pushnumber(L, d);
std::cout << lua_gettop(L); << std::endl;
// 4: 1:a, 2:b, 3:c, 4:d
// луа-си-функция должна возвращать
// количество аргументов с конца,
// которые функция возвращает в луа
return 2;
}
// а если не числа - ничего не возвращает ((
return 0;
}


Vsevolod
20.12.2017
20:41:11
эм, нет, это все понятно
хотя да, можно эту вот обвязку через codegen вставлять в каждую функцию
а потом перлом парсить, ага
settop - это грубое решение
можно с водой младенца выплеснуть
не хочется такого

Google

Snusmumriken
20.12.2017
20:43:58
Мм. Воспользуйся функцией printstack, и увидишь её содержимое.
void lua_printstack(lua_State *L)
{
for (int i = 1; i <= lua_gettop(L); i++)
std::cout << i << " - " << luaL_typename(L, i) << std::endl;
}
Можно со всех сторон смотреть, кто где подсирает.

Vsevolod
20.12.2017
20:44:39
ну это еще более усложнит задачу перлу. функций очень много
и они зависят от контекста

Snusmumriken
20.12.2017
20:44:51
А чому перл? Тут как бы сишка.

Vsevolod
20.12.2017
20:45:05
парсить вывод всей этой простыни
и это будет больше не сишка, а libclang, потому что инжектить это надо в 100500 мест
а потом парсить

Snusmumriken
20.12.2017
20:45:54
Ууу, слишком сложно.
Попробуйте попроще : )

Vsevolod
20.12.2017
20:46:14
а попроще никак
api жырное и асинхронное
проблему я локализовал достаточно точно, но поймать не могу

Snusmumriken
20.12.2017
20:47:04
Ну, асинхронность - это получать id потока и писать в лог-файл, с именем соответствующий текущему потоку.
Жырность - неудобно, да.

Vsevolod
20.12.2017
20:47:38
потоков никаких нет, есть асинхронные события и event loop


Snusmumriken
20.12.2017
20:49:06
Ммм. Тогда пускать некоторое время события по одному, последовательно. Там же какой-то процесс есть?
Типа, сначала запускаем одно событие, когда оно отработается - полученные данные пихаем в следующее событие, и т.п.
Не? Ну я к тому, что любую асинхронность можно свести к линейному процессу, для читабельности логов.
А жирность - да, не очень круто, но вроде анализируется. Глобальную замену тоже никто не отменял.
Типа, при вызове каждой луа-сишной функции, пихаем лог: "Вызвалась такая-то функция, содержимое стека - вот такое вот", и на выходе из луа-сишной функции - то же самое.
Глобальные замены - регулярками типа:
replace
what:
luafunc_(funcname)(\(\))\n{
to:
luafunc_\0(\1)\n{
LOG("call \0 function, stack: %s", luax_printstack(L));
Ну типа чтобы у каждая функция, типа
int luafunc_foo(lua_state * L){
....
return 1;
}
стала таким:
int luafunc_foo(lua_state * L){
LOG("call foo function, stack: %s", luax_printstack(L));
....
return 1;
}
В самой регулярке не уверен, думаю ты на том же перле напишешь лучше.


Mons
20.12.2017
23:46:07

Vadim
20.12.2017
23:46:25

Kukuzapa
21.12.2017
03:11:33
Никто не тестил на ляписе загрузку файла из формы с несколькими полями встроенным bustedом?

Snusmumriken
21.12.2017
07:37:41
Уу, сколько ляписопользователей.

Aleksey
21.12.2017
07:44:59
Эээм, три?

Snusmumriken
21.12.2017
07:46:22
Уже дофига

Google

Saphire
21.12.2017
07:46:51
Что это вообще такое?

Aleksey
21.12.2017
07:46:59
Я так понял, что в lua больше ноля - дофига
Фреймворк для сайтов

Влад
21.12.2017
07:47:28

Vadim
21.12.2017
17:37:26
@vvzvlad ты про них ничего не говорил :)
обычно советуют использовать самодельный string.split. Потом можешь по таблице ключ=функция вешать свой функционал на первое слово
А по делу, у меня лежит полурабочий токенайзер команд. надо допилить и выложить

Влад
21.12.2017
17:47:03