Snusmumriken
На одной железке может гоняться сразу много скриптов условно параллельно/подряд?
OptimusZero
Нет. Это будет контролироваться семафором
Snusmumriken
Понял
OptimusZero
Ресурсов не так уж много
OptimusZero
Сейчас +100кб кода +10кб ram забирает
Snusmumriken
Просто есть шанс что можно тупо сделать луёвую обёртку вокруг всех пользовательских скриптов. У юзера такого есть скрипт user.lua, и он такой добавляет в него функции: function checkVolts() if getVoltage(bla) > 100 then call(something) end end setInterval(checkVolts, 2000) -- call each 2 seconds И это вот гоняется в луёвом же цикле между пользовательским кодом и железкой. В нём же можно мусор собирать через collectgarbage после каждой итерации.
OptimusZero
Вот да.к такому варианту склоняюсь
Snusmumriken
В таком случае, просто, гораздо меньше писать на сишке: один раз запустил dostring, и оно дальше гоняет луёвый код.
OptimusZero
Правда приложение многопоточное. Там через шедулер штук 6 потоков крутится
OptimusZero
Главное теперь понятно с состоянием вм. Спасибо большое
Snusmumriken
Многопроцессорная железка?
Snusmumriken
Если нет, то оно решается корутинами.
OptimusZero
Разные железки. Esp8266 и esp32
Snusmumriken
А
OptimusZero
На второй да 2 ядра
OptimusZero
Вытесняющая многозадачность
OptimusZero
Если что я ещё обращусь ?)
Snusmumriken
Да без проблем, этот чат для этого и существует
OptimusZero
по факту получается есть буфер - в нем описаны пользовательские функции и переменные которые могут эти функции использовать я его загружаю через luaL_loadbuffer (хотя я так понимаю можно и через dostring) - на этом этапе у меня будет проверка синтаксиса происходить а потом через lua_getglobal и lua_pcall вызываю нужную функцию lua. при этом все глобальные переменные сохраняются между вызовами
OptimusZero
lua_close не делаем
Anton
Разные железки. Esp8266 и esp32
Если не секрет, а что в качестве хоста? freertos? Или полностью независимое?
OptimusZero
полностью пока базовая платформа взята из arduino ide. так пришел код от предыдущего писателя )
OptimusZero
ну и хочется чтобы скелет приложения был одинаковым для 8266 и 32
Anton
Хе. Я спросил ровно потому, что есть у меня ощущение, что под esp32 готовые образа с lua - это freertos с vm в виде таска.
OptimusZero
да скорее всего так просто там слишком много "лишнего" как общая система - норм как модуль в своем приложении - не годится
Anton
Ага. Я больше поспрашивать кого-то хотел, как оно внутри устроено. Ну да ладно :)
OptimusZero
я раз посмотрел код - понял что просто так там не разберешся. нашел lua на гитхабе без всяких излишеств и его использую
Anton
Вооот! :)
OptimusZero
если надо и не запрещено могу ссылку кинуть вроде на esp работает
Anton
Буду благодарен
OptimusZero
а - низзя )
OptimusZero
лови приватом
Anton
Tnx
Snusmumriken
а - низзя )
Ты пока мелкий, подожди денёк-другой и сможешь ссылки кидать
OptimusZero
да я не возражаю ) приватом кинул человеку
OptimusZero
я ж понимаю - есть правила
Snusmumriken
Кстати на тему правил, возвращаем обратно
OptimusZero
да проверил все заработало ) спс
OptimusZero
с единой state даже проще получится и для меня и для пользователя
Arslan
Есть тут те, кто работал с lupa?
Ivan
pupa)))))
Ivan
Простите, не удержался
Yuriy
Простите, не удержался
ну что же вы Там и с lupa можно было много чего напридумывать
Александр
Есть тут те, кто работал с lupa?
юзал однажды, чтобы из питона интерпретировать луашный конфиг и достать переменные
Arslan
Есть документации по api? А то найти никак не могу, есть только примеры использования
Tverd
https://pypi.org/project/lupa/ это не подходит?
Anonymous
Здрасьте братья
Anonymous
У кого Есть big head для СФГ2
Snusmumriken
У кого Есть big head для СФГ2
Где-то были немножко другие чаты и форумы по gameguardian, попробуй посмотреть там. Здесь нет разработчиков читов для игр.
Snusmumriken
@d7730e40b18b4944b1016e4652, ты хто?
Nikita
проверку бота вроде прошел, что еще нужно?)
Snusmumriken
проверку бота вроде прошел, что еще нужно?)
Щас боты проходят проверки для ботов ))
Snusmumriken
проверку бота вроде прошел, что еще нужно?)
И всё таки, зачем ты прибыл в этот чат? Какие конкретно цели?
Ivan
хера ты дерхкий
Snusmumriken
Если я не получу ответа — отправлю в бан.
Александр
Если я не получу ответа — отправлю в бан.
сложно интровертам в этом чате
Nikita
я хотел проверить насколько lua коммунити дружелюбно к новичкам
Ivan
ахахаха
Snusmumriken
я хотел проверить насколько lua коммунити дружелюбно к новичкам
Уже лучше. К новичкам — более чем дружелюбны. Когда они точно не боты и не ботоводы.
Snusmumriken
А то прибывают всякие "ребят смотрите я человек, живой человек смотрите!", и нате вам, следом за ним десять тысяч ботов, и все с рекламной фигнёй адиниксбэт.
Snusmumriken
Кстати да, хороший вопрос ))
Ivan
хочу чтобы чужие библиотеки были сабмодулями в моей, не хочу лезить в кишки править пути
Snusmumriken
Очень интересно, ты тут только сегодня появился? "парни. Как сделать, чтобы в сторонней библиотеке, которая находится в папке, я не правил пути проект https://github.com/azoyan/geopattern проблема в конкретной строке "geopattern" вот: https://github.com/azoyan/geopattern/blob/main/geopattern/sha1/init.lua#L1"
Ivan
вчера ещё, но бот не прошёл мою проверку
Ivan
тут все боты такие странные?
Ivan
нельзя нормально отформатировать сообщение?
Snusmumriken
Дейлисендбокс сутки не даёт постить.
Ivan
я в общем-то сюда захожу, когда надо что-то спросить
Ivan
хочу чтобы чужие библиотеки были сабмодулями в моей, не хочу лезить в кишки править пути
Snusmumriken
хочу чтобы чужие библиотеки были сабмодулями в моей, не хочу лезить в кишки править пути
local common = require( (...) .. ".common" ) Если реквайрил сам init как require("geopattern.sha1").
Ivan
так это чужая библиотека
Snusmumriken
Ну поправь её.
Ivan
я и так её поправил, вопрос можно ли не править
Snusmumriken
Там вот эта строка: local common = require "geopattern.sha1.common"
Ivan
там должно быть local common = require "sha1.common"
Ivan
как в оригинале
Snusmumriken
В таком виде не править не получится. Библиотека сама думает откуда ей реквайрить свои сабмодули. Если либописатель не озаботился — надо править.
Snusmumriken
Или добавить в package.path путь до geopattern.