Leon174
Там не особо и нужно, тем более, что порой вообще непонятно было, что от тебя хотят. Тесты нужно смотреть, какой выход ожидается. Гугл-транслейт + тесты, вполне достаточно, имхо.
🐅🤦♂️
хочу максимально изучить луа
Читай "Programming in Lua", есть на русском. Читай "Lua Reference Manual". Читай код интерпритатора. Изучай английский.
Дмитрий
я луа вроде знаю
Дмитрий
хочу убедиться что я его знаю
🐅🤦♂️
Напиши свой проект
Дмитрий
лень
Дмитрий
я писал
Дмитрий
скрипты на гта
🐅🤦♂️
Я еще на hackerrank.com решал простенькие задачки на Луа.
Дмитрий
что лучше ребята c++ или луа
Дмитрий
3 года ломаю голову
🐅🤦♂️
Они в связке работают
Дмитрий
да, ФФИ есть
Дмитрий
но я хочу контролировать все
Konstantin
кто-нибудь подключал luasocket в свой проект?
Я тут развлекаюсь со сборкой под линукс...
Дмитрий
exe можно сделать
Konstantin
я собрал .so файл, правда пришлось уговорить линкер не ругаться на зависимости от луа библиотеки 🙂 будет весело подключать .so
Snusmumriken
Это нормально, луа сама умеет подключать dll/so-либы обычным require, всё в порядке.
Дмитрий
в luajit есть ффи
Дмитрий
с ним можно попробовать через wininet
Snusmumriken
И потерять совместимость со всеми надстройками над луасокетами, потому что у нас получился не луасокет, да.
Konstantin
у меня очень сложный случай: проект , где lua - сабмодуль, а все луа файлы подгружаются из C++ с очень сложным менеджментом
Snusmumriken
А зачем?
Konstantin
те, кто это делал, уже мне не ответят
Konstantin
ушли с проекта 🙂
Konstantin
проекту 15 лет
Konstantin
представь себе тысячи lua файлов, подключаемые исходя из конфига с сервера, в разное время и из разных потоков, с разными lua_state.... и полностью уникальный игровой движок 15летней давности
Snusmumriken
"module 'myFolder/socket.so' not found
печалити вообще"
Snusmumriken
Пути пропиши до своего модуля. Или сбрось его туда где оно ищет.
Snusmumriken
Нормальная луа выдаёт список, где именно она не нашла модуль.
Konstantin
подскажи, пожалуйста, синтаксис по подключению.
Я сделал как в мануалах через require, он все еще пытается искать через ".lua"
Snusmumriken
Оно ищет сначала lua, потом so.
Konstantin
не могу написать, бот удаляет
Konstantin
)))
Konstantin
local socket = require("myFolder/socket.so")
Snusmumriken
Убери нафиг .so
Konstantin
тупой вопрос - а надо ли сошку подключать через cmake?
Konstantin
или просто файл положил и всё
Snusmumriken
Вот, смотри где и как ищет, например, моя луашка. Сначала перебирает луёвые директории, потом сишные.
Snusmumriken
Луа ищет по package.path и package.cpath, это такие же пути как в PATH у твоей оси. Вопросительный знак — "имя модуля"
Snusmumriken
Snusmumriken
Можно ещё модифицировать package.path/cpath для нужного результата, тогда места поиска расширятся.
Можно дописать глобальные переменные LUA_PATH/LUA_CPATH для указания лишней директории для поиска библиотек.
Konstantin
хмммм... может сорцами проще добавить?
Snusmumriken
Можно и сорцами, но таки сложнее.
Snusmumriken
Просто не реквайрь с форматом либы. Формат не нужен, луа сама формирует package.cpath в зависимости от оси.
Konstantin
окей. Пока она пишет только очень странный вывод ошибки, видимо обернутый уже на стороне плюсов
Konstantin
выглядит так, что если сорцы это луа биндинг, то будет намного проще
Snusmumriken
Должно быть так, помнится. Ну, типа ось выставляет CWD для экзешников рядом с ним.
Konstantin
там все на биндингах.
Snusmumriken
(можно статически залинковать, влить сорцы и подрубить)
Konstantin
черт, логично 🙂
Konstantin
черт, они создают луа файл и набивают переменную _G
Snusmumriken
Морочно будет если либа разделена на кучу сошек и луёвых кусочков, как тот же луасокет.
Konstantin
ладно, в жопу))) все было ради дебага, если сейчас с ним такие заморочки, значит потом я вообще это не восстановлю
Snusmumriken
Мне не нравится твой пессимизм, а ещё мне не нравится что там переусложнённые обёртки вокруг луёв. Нормальное приложение бы работало по одной схеме из двух:
1. Сишное ядро, которое запускает луа-скрипты по событию
2. Сишное ядро, которое выгружает в луа функции по рулению собой, и полностью передаёт управление луям (вплоть до основного цикла)
Konstantin
это настолько ненормальное приложение. что мой друг, говоривший что видел все виды говнокода, через неделю на проекте подошел и извинился.
В прилаге нет как такового контроллера, императивный код раскидан между сями и луа, все это асинхронно , многопоточно и часто единственный мьютекс в логгере
Konstantin
самое забавное, что это крутится на проде в невероятном количестве и нуждается в саппорте. Хоть луашника нанимай
Snusmumriken
А, ну это вообще нормально. В куче банков до сих пор крутится тонна говнокода под досом/95 вендой на бейсике, произведённая в восьмидесятых. Говнокод, но зато какая надёжность! Не ломается потому что в это никто не лезет.
fgntfg
Объект: SCP-85574
«Света Катлета»
Класс объекта: Б̶е̶з̶о̶п̶а̶с̶н̶ы̶й̶ Уничтожен
Описание: ходит телеграм-чатам по и рассылает ссылку на [ДАННЫЕ УДАЛЕНЫ]
Snusmumriken
Света Катлета подвергнута [ДАННЫЕ УДАЛЕНЫ]
Andrey
Коллеги всем привет! Хочу попробовать написать приложение под айфон и андроид на lua. Есть ли кроссплатформенные луашные фреймворки для этого, или такое не возможно и надо "осваивать" другие языки ? Куда копать ? Честно говоря девайсной разработкой еще не занимался.
Дмитрий
Привет
Дмитрий
Andrey
Corona SDK - это lua ?
Дмитрий
Да
Snusmumriken
С кроссплатформой и плагинами, но без луажыта (потому что айос).
Highly Likely
Snusmumriken
Дефолд куда больше заточен под игры, не под абстрактные "приложения". Именно в плане приложений, корона значительно лучше.
Andrey
Мне для себя - несколько кнопкок и снятие показаний текущих. Уведомлялки. Диаграмки.
Snusmumriken
Вот корона и ок, должна быть.
Andrey
Snusmumriken
Если очень нужен нативный код — там есть возможность катать модули на сишке.
Andrey
я правда не понимаю почему все так любят игры в lua. такое ощущение что это язык для геймеров
Snusmumriken
Да, так и есть.
Snusmumriken
Потому что это — самый простой способ вкрутить скрипты в уже написанное приложение, дать возможность модить и менять правила игры.
Snusmumriken
(ну и луа типа достаточно быстрая и даёт наименьший оверхед из всех скриптов, так что на ней можно даже мутить довольно сложную игровую логику, а тяжёлые штуки выгрузить в сишку/плюсы, бла-бла)
Бизнес-логика сейчас тоже начинает этим пользоваться, привет нгинкс/опенрести/тарантул/редис.