RussianServiceDrop
С буфера что бы сразу подгружать
Snusmumriken
Александр
Если на линуксе, то ты можешь что-то типо ramfs пользовать
Snusmumriken
Эй. Нужно подгружать с сервера. На сервере оно на жёстком диске. В чём проблема примонтировать это?
Александр
создаёшь раздел в оперативке, её монтируешь как диск и докачиваешь на неё
Александр
Snusmumriken
В таком случае проблема будет в любом случае.
Александр
Snusmumriken
А если ты закешируешь "в рамдиске" то не будет никаких поводов обновлять с сервера.
Snusmumriken
И с локальной библиотекой ?
Если библиотека локальная, нет никакого смысла делать под неё рамдиск.
Проще уж написать SSH-скриптик который будет скачивать с сервера все .so-либы (да и не только их) при запуске. Заодно консистентность сохраняется.
RussianServiceDrop
Александр
Александр
или mmap
Александр
Вернее скорее даже И
Snusmumriken
Ладно. Прежде чем изобретать, давай подумаем, что будет если:
1. Библиотеки могут загружаться лениво. Например, кто-то обновил .so-файл на сервере и он подгрузился в приложение несовместимой старой версии.
2. Если библиотеки загружаются сразу — в чём смысл подгрузки их в приложение извращениями? Не проще ли грузить с сервера каждый раз полную актуальную версию, а если с ней что-то происходит — брать из кеша?
Snusmumriken
Если ты хочешь сделать динамическое обновление ,so-библиотек в приложении с 100% аптаймом — лучше забудь, это редкостная дичь которая может привести к миллиарду миллиардов ошибок и ноль профита. Чистый выстрел себе в голову.
Александр
Snusmumriken
Ленивость — это в момент первого require.
Александр
если всё грузится в одной сошке и сразу, то вопросов нет
Snusmumriken
Тогда в чём проблема просто обновлять всё приложение или вовсе статически линковать в один elf и перезапускать?
RussianServiceDrop
RussianServiceDrop
Я попробую mmap и статическую линковку
Snusmumriken
Простое обычное обновление — это куда дешевле и надёжнее чем подобные велосипеды "уу впендюриваем непонятно что неизвестно какой версии непонятно куда непонятно когда".
Snusmumriken
Александр
то будет беда, ибо луа их подгружать по умолчанию не умеет
RussianServiceDrop
Snusmumriken
Поэтому проще использовать резервные как основные. И просто обновлять всё приложение разом.
curl в помощь.
Александр
В целом лучший вариант - держать локальную среду в устойчивом состоянии и стремиться максимизировать требования, тогда всё будет +- ок
Александр
касательно просто подгрузки сошек вы как-то плохо ищете
Snusmumriken
Знаешь, я когда-то хотел делать системы динамического программирования. Мол, ты такой написал:
drawRectangle(10, 10, 30, 40) в редакторе, нажал ctrl + s и в окошке движули оно сразу отобразилось.
Snusmumriken
А потом я такой подумал: а что если мы насрём мусором и не вычистим. А что если у нас в памяти останется что-то что уже удалилось из скрипта.
Snusmumriken
А что если я такой написал функцию, а потом где-то ещё использовал (она добавилась в память), а потом удалил (в памяти осталась). Пока оно запущено — работает. При перезагрузке, функции больше не будет — ошибка.
Опачки, обосрямс.
Александр
Snusmumriken
Не совсем.
Snusmumriken
Это в любом случае отрыв жопы. И это были всего лишь скрипты.
Snusmumriken
Там хотя бы сборка мусора есть ))
Александр
Snusmumriken
А уж в сишечке, будет вообще веселье ))
Александр
Но в целом с чисто луашкой такое вполне можно делать, даже сборщику скорее всего будет норм, если переписывать переменные они уйдут под его взор
Александр
Но с скомпилированными объектами это было бы жутко, разве что хирожопо сделать клиент-сервер и постоянно менять клиенты путём завершения старого и запуска новособранного
Snusmumriken
Нужен лексический анализатор который понимает: вот тут функция удалена, у неё была вот такая-то ссылка и так далее. Потому что на них не повесишь __gc.
Snusmumriken
Поэтому.
Не лезь, оно тебя сожрёт.
Snusmumriken
Обычные здоровые дедушкины методы а ля
curl http://some.url/some_executable --output some_executable
some_executable --param1 --param2
Работают многократно проще и эффективнее. Просто подгрузка при запуске.
RussianServiceDrop
Вы случаем не знаете какие то библиотеки, для того что бы soшки грузить из оперативы сразу в lua и на месте работать с ними ( подобие loadlib )
Ну что бы лишний код в движок не прописывать
Snusmumriken
Snusmumriken
Можешь написать свой loader для require, оно само будет это делать и условно раз в 10 минут проверять, не изменилась ли либа.
RussianServiceDrop
RussianServiceDrop
Ладно я погуглю
RussianServiceDrop
Спасибо
Александр
альтернативно да, можно отдельный загрузчик из си написать
Lucky
Хороший вариант всё нае*ть при поломке интернетов.
Tony
@Snusmumriken
Ярослав
@Snusmumriken приехал Playdate)
Ярослав
Выпустил игрушку, +$300
https://whitebrim.itch.io/cranner
Inellok
Нихренашеньки))
Aqendo
Прикольно
Hell
Есть ли человек который знаком со структурой АИО lua на World of Warcraft 3.3.5 - нужен человек для реализации скриптов, есть куча примеров если нужно. Готовы все это оплатить, или на постоянку как работу
Snusmumriken
Ну собсно структура тут ))
https://wowwiki-archive.fandom.com/wiki/World_of_Warcraft_API
Для 3.3.5 надо проверять патч добавления.
Денис
Ребят, пока болею, есть вариант почитать... Кто-то обладает статьей про корутины для непонимающих нихрена? знаком только с тредами, есть задача мудрить такие же треды, как к этому вопросу подойти?
Денис
Грубо скажем, есть необходимость работать с сетью, там по любому будут зависания...
Александр
Igor
Денис
Igor
т.к. каждый lanes-поток - это новый ПОЛНЫЙ lua_State, передача данных является обычным копированием из одного стейта в другой
Alexey
Всем привет,
Судьба свела меня с Lua. Теперь думаю, а есть ли перспектива.
Пытался использовать Luci + Lua для Embedded linux
Пока что-то не получается, но это вопрос больше к Luci + портация, все же она для Open WRT. Куча зависимостей, что то не все ставлю наверно. Есть новая вертка Luc2 возможно там меньше проблем, но все равно на сервере используется Lua.
Вопрос к гуру, насколько Lua востребован желательно в разрезе IOT и Embedded железяк, кто ниб имел опыт? Насколько перспективный язык?
Snusmumriken
Всем привет,
Судьба свела меня с Lua. Теперь думаю, а есть ли перспектива.
Пытался использовать Luci + Lua для Embedded linux
Пока что-то не получается, но это вопрос больше к Luci + портация, все же она для Open WRT. Куча зависимостей, что то не все ставлю наверно. Есть новая вертка Luc2 возможно там меньше проблем, но все равно на сервере используется Lua.
Вопрос к гуру, насколько Lua востребован желательно в разрезе IOT и Embedded железяк, кто ниб имел опыт? Насколько перспективный язык?
Ну во-первых, луа встраивают во всё подряд потому что это не питон с 40мб рантаймом и не нода с 20мб рантаймом. А ещё нормально встраивается.
Во-вторых, это не forth и тут не такое количество дикого количества несочетающихся друг с другом реализаций всего подряд.
В третьих, тут есть сборка мусора, что может быть как плюсом (не надо морочиться) так и минусом (лучше не плодить объекты без необходимости для сохранения реалтайма).
В четвёртых, смотря подо что, минимальные системки для того чтобы не офигеть от тормозов это примерно 4-10мб оперативной памяти.
Эмбед вроде совсем микро микрух (esp) всё таки обычно лучше прогать сишкой-асмом, на роутерах и прочих бортовых компьютерах уже луа норм.
Alexey
спасибо, почти все тоже самое в инете начитался, остался не удовлетворенным . мало информации по lua, мало где встретил в железяках , может плохо искал . только начал
usernameak
Alexey
Embedded сейчас много что и ARM с Linux тоже Embedded
R
Всем привет,
Судьба свела меня с Lua. Теперь думаю, а есть ли перспектива.
Пытался использовать Luci + Lua для Embedded linux
Пока что-то не получается, но это вопрос больше к Luci + портация, все же она для Open WRT. Куча зависимостей, что то не все ставлю наверно. Есть новая вертка Luc2 возможно там меньше проблем, но все равно на сервере используется Lua.
Вопрос к гуру, насколько Lua востребован желательно в разрезе IOT и Embedded железяк, кто ниб имел опыт? Насколько перспективный язык?
Востребован, перспективен, всё в порядке с Луа. Но если прям совсем микра - это, конечно, ассемблер и Форт, для Луа нужно чуть больше железа.
usernameak
usernameak
я про Java SE
Snusmumriken
Ну и очевидно, луа замечательно встраивать в полноценные приложения.
Не знаешь что встраивать в твой музыкальный проигрыватель, чтобы управлять всем подряд? (допустим, захотелось тебе чтобы пользователь проигрывателя мог написать автоматическую паузу музыки когда звук идёт из другого приложения на этом же устройстве) — пихай луа, не прогадаешь.