Snusmumriken
Вероятности никого не волнуют. Конкретные действия — да.
Snusmumriken
Пока нет действия — нет противодействия.
Tverd
Всем привет, тут Nim1.0 вышел ) Так что биндинги к луа можно писать на нем )))
Mark ☢️
ничоссии
Tverd
Пока язык далеко не мейнстримовый, но по своему опыту скажу, что неплохая замена С. Может что со временем и выйдет
Tverd
ну если хватает, никто не заставляет )
Roman
А не больно писать на си всякую асинхроншину?
Egor
Доброе утро. Могу я тут разместить заказ/просьбу? Цена заказа я без понятия сколько.
Snusmumriken
Ну гипотетически
Snusmumriken
Ну типа если без явной подставы — то думаю никто не против
Snusmumriken
Хе, нормас
Egor
Хе, нормас
вот еще написали бы ) было бы супер
Highly Likely
#lua #удаленка #gamedev #git Студия Tamashi Games ищет Lua-разработчика на постоянную удалённую работу. Суть работы: разработка и сопровождение клиентской части авиационного тренажера. Требования: — Готовность уделять нашим задачам минимум 20 часов в неделю — Хорошие знания Lua — Понимание принципов работы клиент-серверных приложений — Базовые знания Git или готовность получить их в процессе работы Задачи: В составе команды разработчиков: — Реализация UI приборных панелей самолета по спецификациям Плюсами будут: — Знание ЯП C++ — Знание OpenGL, SFML (Мы готовы научить кандидата всему перечисленному ниже) — умение летать в X-Plane (предпочтительно) и/или MS Flight Simulator — знание модов ZiboMod и/или PMDG 737NG 800 (умение работать с кокпитом 737-800) — опыт работы с ProSim или SimAvionics Условия: – Удалённая работа – Почасовая ставка – Любой удобный рабочий график – Дружелюбная опытная профессиональная команда, готовая помочь советом Резюме и портфолио присылайте в Telegram @cyberspirit или на почту: hr@tamashi.games
Lucky
#lua #удаленка #gamedev #git Студия Tamashi Games ищет Lua-разработчика на постоянную удалённую работу. Суть работы: разработка и сопровождение клиентской части авиационного тренажера. Требования: — Готовность уделять нашим задачам минимум 20 часов в неделю — Хорошие знания Lua — Понимание принципов работы клиент-серверных приложений — Базовые знания Git или готовность получить их в процессе работы Задачи: В составе команды разработчиков: — Реализация UI приборных панелей самолета по спецификациям Плюсами будут: — Знание ЯП C++ — Знание OpenGL, SFML (Мы готовы научить кандидата всему перечисленному ниже) — умение летать в X-Plane (предпочтительно) и/или MS Flight Simulator — знание модов ZiboMod и/или PMDG 737NG 800 (умение работать с кокпитом 737-800) — опыт работы с ProSim или SimAvionics Условия: – Удалённая работа – Почасовая ставка – Любой удобный рабочий график – Дружелюбная опытная профессиональная команда, готовая помочь советом Резюме и портфолио присылайте в Telegram @cyberspirit или на почту: hr@tamashi.games
👍
Egor
Нужен софт. Есть клетки, которые состоят из мини клеток на 32х32. Как указано в картинке, можно изменять форму клетки большой, с шагом в мелкие клетки. От своей изначальной точки, он может перемещаться всего на радиусе в 48 клеток. Размеры и количество клеток должны увеличиваться/уменьшаться при скроле мышкой. Загружается картинка и на него накидывается эта сетка. Нужно видеть координаты точки изначально у точек координаты 0,0. Должна работать на винде. Уметь сохранять работу как проект PS: сетка взята из solid works. Но нужна более легковесная и простая софтина. Бюджет - 300$ (~20000 руб) По всем вопросам пишите @nengchak
Nibeon
#lua #удаленка #gamedev #git Студия Tamashi Games ищет Lua-разработчика на постоянную удалённую работу. Суть работы: разработка и сопровождение клиентской части авиационного тренажера. Требования: — Готовность уделять нашим задачам минимум 20 часов в неделю — Хорошие знания Lua — Понимание принципов работы клиент-серверных приложений — Базовые знания Git или готовность получить их в процессе работы Задачи: В составе команды разработчиков: — Реализация UI приборных панелей самолета по спецификациям Плюсами будут: — Знание ЯП C++ — Знание OpenGL, SFML (Мы готовы научить кандидата всему перечисленному ниже) — умение летать в X-Plane (предпочтительно) и/или MS Flight Simulator — знание модов ZiboMod и/или PMDG 737NG 800 (умение работать с кокпитом 737-800) — опыт работы с ProSim или SimAvionics Условия: – Удалённая работа – Почасовая ставка – Любой удобный рабочий график – Дружелюбная опытная профессиональная команда, готовая помочь советом Резюме и портфолио присылайте в Telegram @cyberspirit или на почту: hr@tamashi.games
Ого, крутяк)
Дмитрий
Какой репл
Дмитрий
Я не знаю что такое репл
Дмитрий
gsub?
Дмитрий
Понял
Snusmumriken
Потому что принть.
Snusmumriken
Да, у луа нет репла, у стандартного луа-интерпретатора есть РЕЛ (read-eval-loop).
Snusmumriken
Хочешь реПл? Напиши свой мод интерпретатора, это не так уж и сложно, разве что надо парсить выражения на предмет "есть чо напринтить?".
Anonymous
Что такое мод интерпреиатора?
Snusmumriken
Это кастомный интерпретатор.
Anonymous
А, понял
Snusmumriken
Вот так выглядит стандартный "РЕЛ"-интерпретатор. Ну, он ещё может запускать скрипты типа lua /path/to/script.lua, и по мелочи с флагами-командами. https://www.lua.org/source/5.1/lua.c.html В своём варианте можно написать что угодно, хоть репл, хоть веб-сервер который исполняет то что ему сунули в POST, хоть что.
Snusmumriken
Где оно служит?
Snusmumriken
Фигня в том, что у луа нет такого, что что угодно можно привести к строке. У базового интерпретатора ещё куча ограничений, особенно в том что он каждое выражение pcall'ит, создавая отдельную область видимости (по этой причине почти не работает local).
Snusmumriken
Ух ты, прикольно, не знал
Snusmumriken
Snusmumriken
Ну тады что я могу тебе посоветовать. Берёшь такой код интерпретатора, и к каждому чанку на loadline дописывай return.
Snusmumriken
Оно действительно так работает, но там есть прекол с теми же выражениями.
Snusmumriken
Питон или нода, на какой-нибудь a = 20 напечатает 20, а луа нет ))
Саша
и питон не напишет
Snusmumriken
Помнится писал, ну лан
Snusmumriken
Но твоя задача упрощается, берёшь ты такой lua.c из lua5.3, компилишь его с либами от 5.1/5.2 и получаешь миленький РЕПЛ-интерпретаторик. Если есть ошибки — фиксишь.
Саша
просто 20 — напечатает.
Dika
Помнится писал, ну лан
В жсе напечатет только из-за того, что a = 20 является выражением, которое возвращает 20. С var a = 20 такого не будет (и поведение будет аналогично питоновскому).
Snusmumriken
Саша
a = 20 не напечатал ведь
Snusmumriken
Питон или нода, на какой-нибудь a = 20 напечатает 20, а луа нет ))
А я не говорил про "а = 20", я говорил только про 20, но кажись меня глюкнуло. В каком-то из интерпретаторов с этим сталкивался, что ты ему слово или стейтмент, он тебе всё печатает.
Саша
да и пофиг
Snusmumriken
У меня внезапно возник вопрос: кто в здравом уме будет на постоянной основе реплить в луях?
Саша
не знаю как в луях, а в питонах я часто в реплах сижу
Snusmumriken
Питоны лучше адаптированы для реплов, а репл луёв лично я использую только для быстрых проверок, типа "как работает эта регулярка", чтобы потом запихнуть её в скрипт, в смысле в файл скрипта. Это когда запускать сам скрипт дольше и сложнее.
Snusmumriken
А так — шо луа шо питон шо жс — гораздо хуже адаптированы к реплу чем баш/цмд, и использовать их вместо баша — какой-то мазохизм. А, ну, калькулятор с переменными, да.
Snusmumriken
Какито, каждую функцию?
Snusmumriken
Типа, исследуешь как именно работают всякие table.concat и string.sub?
Snusmumriken
Потому что "самописные" функции — берётся файлик для тестов, в него пишется что-то более-менее сложное и запускается шорткатом. Ошибся? Дописал и снова запустил. Потому что переписывать каждый раз более-менее сложные самописные функции в РЕЛе — стрёмно. И чем больше функция тем более стрёмно. И ошибки искать стрёмно, потому что норм код вперемешку с текстом ошибок.
Snusmumriken
Просто настрой "запуск текущего файла в интерпретаторе", и скорость цикла "правка-запуск-правка-запуск" ускорится в мильярд раз.
Snusmumriken
Хе, костыли, но зато быстро. Шорткат "alt + f4" не используется по техническим соображениям.
Snusmumriken
Snusmumriken
Хмммм. Дописать недописанную - не? Зачем тестировать файл с чем-то недописанным? : )
Snusmumriken
Хех, когда я пишу либу (даже большую), я пишу её полностью или почти полностью, а потом начинаю гонять тесты : )
Snusmumriken
Как раз потому что это не игра на love и помещается в голове, можно сначала полностью написать. Это игры на лове надо постоянно запускать в недописанном виде.
Snusmumriken
Прост если функции используют другие функции из того же модуля (что регулярно происходит), то тебе полюбас придётся запихивать в репл почти весь файл, кроме той самой недописанной. Да и привести недописанную к синтаксически корректному виду (ровно чтобы не упало с ошибкой) — дело трёх секунд.
Snusmumriken
Не, я не против, делай как хочешь, просто лично я нахожу активное репленье не особо оптимальным.
Snusmumriken
А, да. Если тебе неожиданно понадобится ООП, и ты будешь тестировать не отдельные функции а методы — репл будет больше мешать чем помогать, потому что выделить отдельную функцию не получится, надо подгребать весь класс, замутить примерчик с объектом и уже запускать.
Snusmumriken
Уууу, сложна, ну лан : ) (и весь файл должен быть "дописан", т.е. синтаксически корректен)
Snusmumriken
Во, я вообще страшное дело сделал, я запускаю скрипты в запускаторе для скриптов. Типа lua /path/to/script/runner.lua /path/to/script.lua (сорц https://pastebin.com/njdrw0pj) А всё для того чтобы подгребались библиотеки из текущей директории и выводилась ошибка вместо закрытия терминала, а ещё можно было дебажить РЕЛом после окончания исполнения/при ошибке.
Snusmumriken
Да, Луа глупая, поэтому она ищет библиотеки/модули только в луа-либсах и рядом с интерпретатором, но совсем не рядом с запускаемым файлом. И о какой магии речь? Всё и так предельно понятно: мы добавляем пути до библиотек поблизости исполняемого файла в package.path/cpath.
fgntfg
☑ перепиши интерпритатор
Snusmumriken
Да надо бы, тупо чтобы юзабилити поднять чутка.
Snusmumriken
Не а. Если запихнуть этот common.lua рядом с интерпретатором, или по любому из предоставленных ТЕБЕ путей (у меня засраны LUA_PATH/CPATH, поэтому у тебя там вариантов будет меньше), то найдёт. (содержимое common.lua — return 10)
Snusmumriken
А хотя забавно, под линуксами ".common" работает, но ТОЛЬКО если "текущая директория" настроена на текущий файл. Если запускать шорткатом, "текущая директория" расположена хз где, вплоть до рядом с исполняемым файлом текстового редактора. Не исключено что под виндовсами аналогично, но запускатель надёжнее : )
Snusmumriken
Snusmumriken
Вот, любая рабочая директория и всё типа ок, вне зависимости от ОС.
Νῑκόλαος
привет всем, есть ли библиотека для решения задач с теорией графов?
Leon174
Гугл поломался штоле? https://github.com/dromozoa/dromozoa-graph https://github.com/chen0040/lua-graph https://github.com/nymphium/lua-graphviz http://luagraph.luaforge.net/index.html
Leon174
Или так https://luarocks.org/search?q=graph
Александр
Привет всем. Допустим, существует некий глобальный стейт L. В нем есть какие переменные. Мы заспаунили тред, запустили в нем корутину, в ней создали какой-то объект a = { ... };. Правильно ли я понимаю, что "владелец" a - это не L, а некий дочерний стейт, стейт потока? Что произойдет с владельцем, если я запишу ссылку на a в глобальные переменные L, после чего поток и корутина умрут? Я получу мертвую ссылку и сегфолт в дальнейшем?
Александр
Вопрос навеян следующей проблемой: Есть глобальная таблица S в основном и единственном lua_State. В программе создаётся и уничтожается множество потоков+корутин. Корутины активно взаимодействуют с S - пишут, читают, чистят (S = {}). Когда приходит время уничтожить S из основного стейта, крашится на luaL_unref. В этот момент все корутины уже мертвы, но чувствую, что в S как-то оказались ссылки на переменные от мертвых корутин.
Snusmumriken
Привет всем. Допустим, существует некий глобальный стейт L. В нем есть какие переменные. Мы заспаунили тред, запустили в нем корутину, в ней создали какой-то объект a = { ... };. Правильно ли я понимаю, что "владелец" a - это не L, а некий дочерний стейт, стейт потока? Что произойдет с владельцем, если я запишу ссылку на a в глобальные переменные L, после чего поток и корутина умрут? Я получу мертвую ссылку и сегфолт в дальнейшем?
На луёвой стороне, есть только стейт, содержащий области видимости. Что ты подразумеваешь под "потоками + корутинами"? Если потоки ("многопроцессорные") тут вторичные и не используются (или используются с другим луа-стейтом) то исключи их из вопроса. Что я понял: у тебя есть луа-стейт в котором запускается куча корутин, использующих какую-то глобальную фигню, но оно дропает когда ты принудительно её сносишь unref'ом.
Александр
На луёвой стороне, есть только стейт, содержащий области видимости. Что ты подразумеваешь под "потоками + корутинами"? Если потоки ("многопроцессорные") тут вторичные и не используются (или используются с другим луа-стейтом) то исключи их из вопроса. Что я понял: у тебя есть луа-стейт в котором запускается куча корутин, использующих какую-то глобальную фигню, но оно дропает когда ты принудительно её сносишь unref'ом.
Я юзаю sol2 в качестве абстракции, там используются понятия sol::thread и sol::coroutine. Для каждой корутины там нужно создавать тред (lua_newthread используется внутри sol::thread), чтобы одновременно могли существовать разные корутины. И вот у каждого треда там свой lua_State*, который как я понял "дочерний" для основного
Александр
То, что существуют "дочерние" стейты - это факт. Я логгировал их адреса :) Видимо, они легковесные и как-то наследуют большую часть функционала от основного