@ProLua

Страница 212 из 307
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
что за игра? где можно почитать о ней?
Написано же: mission 2000 на новом движке. Ищешь старую missions, читаешь.

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

Snusmumriken
20.12.2017
14:30:04
Привет посоны, чего хотите/расскажете? : )

подскажите, чем к тарантулу ходить из lapis ? https://github.com/hengestone/lapis-tarantool не работает
Можно через сокеты, возможно есть какая-то новая оболочка.

Самое забавное и одновременно стрёмное что можно придумать - луа-приложение на тарантуле, которое слушает сокет, принимает луа-код, исполняет через loadstring и возвращает ответ. Тут возможны запросы произвольной сложности, и вызывающая сторона сама думает, что и как ей надо.

Но вообще есть вот это: https://github.com/tarantool/tarantino

Google
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?

Влад
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
А вот Снус добрый и отзывчивый, так и еще и дикий задрот и ему не жалко тратить время на такое

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; } В самой регулярке не уверен, думаю ты на том же перле напишешь лучше.

Vadim
20.12.2017
23:46:25
А как на паттернах в луа захватить первое слово, если оно либо "set", либо "get"?
Language: lua Source: print(string.match("get command shutdown", "(([sg])et) ?(.*)")) Result: get g command shutdown

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
Language: lua Source: print(string.match("get command shutdown", "(([sg])et) ?(.*)")) Result: get g command shutdown
да)). Но вот с парой catch/set_period будут проблемы

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

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