Snusmumriken
Ну вот тут всё довольно простое. Тебе всё в целом понятно?
Snusmumriken
Поск ключей у buttons_table идёт сначала по buttons_table, потом по Button, потом по Element, по цепочке __index'ов.
Lucky
Snusmumriken
Подскажите, какие есть альтернативы luajit?
Сижу на lua 5.3, слезть нет варианта (пользователи привыкли, скрипты переписывать не будут). luajit, как известно, 5.3 не поддерживает. Может есть другие варианты, сторонние реализации? Я бы поизучал
Ну с одной стороны, можно пересадить на luajit и вшить какой-нибудь скрипт дающий обратную совместимость (пересаживающий unpack в table, например). Покроет не полностью (часть метаметодов и баловство с _ENV не получится сэмулировать), но так-то пользователи разве этим злоупотребляют? При не шибко глубоком погружении в дебри версионных фич, будет достаточно просто сменить версию.
Snusmumriken
Lucky
Собран экспериментальный портативный INSTEAD для Linux (AppImage). Прошу всех заинтересованных потестировать: https://github.com/instead-hub/instead/releases/download/3.3.2/INSTEAD-3.3.2-x86_64.AppImage
Lucky
https://www.linux.org.ru/forum/games/15657506
Lucky
Snusmumriken
Это костыль ))
Ameliance
Snusmumriken
Ну типа
data = os.execute("luajit path/to/highload/script.lua arg1 arg2")
Lucky
Ну, костыль, ага. Но рабочий же. Или есть какие-то накладные расходы. которые могут съесть профит?
Snusmumriken
Собсно, время на инициализацию новой виртуальной машины и консольки, невозможность передать туда большие объёмы данных: иначе не получится прочитать ответ, ибо io.popen поддерживает только read или write, но не вместе, так что если запрос велик — его придётся записывать в файл и посылать на приложулю имя файла с запросом.
То есть, оно может быть и неплохо, но только если есть задача потребляющая больше условных пяти секунд, и если по нескольким небольшим аргументам можно запустить большую сложную задачу.
Lucky
А оно основной поток до получения data останавливает?
Snusmumriken
А то ))
Snusmumriken
Нет, под вендой можно запускать через "START luajit ...", но тогда придётся ждать пока прога не напишет ответ в файл ))
Ameliance
Ameliance
Ameliance
Ameliance
#вопрос
это нормально, что в таблицу ЭЛЕМ в качестве метатаблицы передается таблица ЭЛЕМЕНТ, где находится сама таблица ЭЛЕМ?
Ameliance
Ameliance
Snusmumriken
Ты убрал создание новых объектов, они потеряли связи с родительской таблицей с функциями.
Ameliance
Snusmumriken
Связей больше нет. Дети больше не ищут функции у родителей.
Snusmumriken
А хотя у тебя второй скрин кривой, не захватил element
Snusmumriken
Прости, а что у тебя делает button_create? Он же не возвращает новую табличку-кнопку.
Snusmumriken
Он просто добавляет поля таблице Button.
Snusmumriken
так функционально не пойму просто что поменялось
Карочи, меня уже плавно начинает задалбывать.
Даю универсальную инструкцию, что делать и что смотреть:
1. Ковырять
2. Проверять что получилось
3. Переходить к пункту 1, до просветления
Snusmumriken
Сам вопрос "что изменилось?" — плохой, потому что ты сам должен проверить что изменилось ))
Более-менее неплохой вопрос — "почему оно стало вести себя именно так".
Ameliance
Ameliance
Snusmumriken
Вообще?
Snusmumriken
Жуть какая
Snusmumriken
Тогда у тебя точно нет связей. Кнопка-синглтон, только одна кнопка на весь проект.
Snusmumriken
Что ты ещё можешь сделать, так это взять библиотеку типа inspect, и выводить в консоль содержимое таблиц (и даже их метатаблиц): https://github.com/kikito/inspect.lua
Snusmumriken
Очень помогает при проверках "что изменилось"
Snusmumriken
Забей, проверь сам ))
Snusmumriken
После чего будешь задавать "более-менее вопросы" а ля "почему оно ведёт себя не так как я хочу"
Ameliance
Snusmumriken
Ничосе пурга ))
Snusmumriken
Snusmumriken
Всё это можно было бы упростить до:
Button.x = buttons_table[1][1]
Button.y = buttons_table[1][1]
print(_)
print(_)
Button.x = buttons_table[2][1]
Button.y = buttons_table[2][1]
print(_)
print(_)
Это всё что тут происходит ))
Arslan
Сегодня пол часа не мог найти проблему в коде, оказалось что оператора
continue
нет в lua. Пришлось переделывать на
goto
. Почему в lua нет этого оператора?
Leon174
Ответы на этот вопрос есть, но какие-то маловнятные, на мой вкус. Да и не особо этот вопрос принципиален. Если причины чего-либо непонятны, то называем это "исторически так сложилось" и идем себе дальше.
https://www.luafaq.org/#T1.26
http://lua-users.org/lists/lua-l/2008-02/msg01183.html
Arslan
Спасибо
Snusmumriken
🐅🤦♂️
Собрать из исходников?
🐅🤦♂️
Ну в sid и testing версия 11.3
Igor
А что такого в том, чтобы самому собрать бинарь? Я по возможности всегда сам собираю.
🐅🤦♂️
В Дебиане стейбл обычно староваты пакеты, приходится чем пользуешься собирать или переходить на sid. Love собирается хорошо, там выполняемый файл один и библиотечка. Кидаю в ~/bin, добавляю каталог в PATH. Ещё нужно для библиотечки поправить LD_LIBRARY_PATH и норм. Как-бы никакого make install)
B
оффтоп :
стоит в Vim или луч не надо?
Lämppi
Стоит в емакс 🌝
🦥Alex Fails
ㅤ
Lämppi
Не
Евгений
Кто подскажет как сделать вывод на луа форматированных значений разрядов(пример: число 134000,надо вывести 134 000)?
Евгений
Arslan
Хватит спамить на счёт спама, одменам потом удалять это всё
Snusmumriken
Anonymous
Здравствуйте всем, а есть ли в луа похожая по функционалу функция, как в питоне string.split? Хотел сначала написать на питоне программу, но так как решение именно моей задачи там идёт через одно место, ну и потому что луа мне роднее как-то я решил выбрать именно луа.
Tom
Anonymous
Лучше питон
Я объяснил, именно моя задача там идёт через одно место. Я так толком и не понял возможно ли это там сделать вообще.
Arslan
Подажди, у меня была реализация
Tom
Anonymous
Я в группе по питону этот вопрос задал(ну как сделать это именно на питоне) и там чат застыл просто и ничего никто никому не пишет. Лол :)
Tom
Кинь ссылку на сообщение
Anonymous
Так что за задача то?
Место в файле текста: "лвщуьуик 82овтч у9292 в жцзй9вокь 3929ь&#*×(× // 0x96AC5C"
Нужно найти в файле "лвщуьуик 82овтч у9292 в жцзй9вокь 3929ь&#*×(× // ", и чтобы скрипт скопировал после // хекс значение.
Anonymous
Ну 0x96ac5c
Arslan
Arslan
Осталось завернуть в функцию
Anonymous
Что выступает под variable sep?
Tom
Anonymous
Никто в моем окружении из опытных питонистов не знают как сделать это