mva
mva
ну так говорю же, на скорую руку, на коленке, чтобы протестировать шрифт :)
Tadeusz
ояебу, это игра?)
mva
я не собирался этот код ни с кем шарить :D
mva
ну, точнее, собирался "причесать когда будет время и вбросить на гитхаб"
mva
но со временем бида
Ilya
Гитхаб - это промежуточное звено всего лишь 😊
Ilya
Кстати, что-то подобное говорил и Hisham в своем докладе об использовании Lua для приложений.
Mikhail
Гитхаб - это промежуточное звено всего лишь 😊
ну я на гитхабе помогаю в баголовстве и надеюсь, что мне помогут сам луарокс использую для работы. но если ты делаешь игру.. нафига тебе луарокс?
Mikhail
кроме как для тест энварнмента и тестов?
Ilya
Или что имеется в виду?
Ilya
Не совсем понял
Mikhail
ну кое что есть я про busted и подобное
Ilya
По поводу "нафига луарокс при разработке игры" - например, чтобы обеспечить консистентное дерево пакетов. Т.е. можно установить все пакеты в локальную директорию и прописать путь к ней (что-то типа package.path = './localrocks/?.lua;./localrocks/?/init.lua) - и этот путь будет валиден для всех пакетов. Преимущества: * Не надо скачивать ничего ручками с гитхаб и раскидывать по директориям * Нет свалки "своих" и "чужих" пакетов в одном каталоге (или, как альтернатива, нет необходимости запихивать десятки путей в package.path) * Легко создать новое дерево пакетов и переключиться на него (поменяв лишь префикс в package.path / package.cpath)
Ilya
Чем не нравится, расскажи? 😉
mva
мне, вот, кстати, ОЧЕНЬ не нравятся релизы Lua новее 5.1
mva
знаете чем?
Ilya
Мне он тоже не нравится)) Но все же он лучше, чем ничего... А то, что не нравится, можно в виде issues на гитхаб отправить... Ну и... Взять напильник в руки и начать фиксить 😃
Ilya
знаете чем?
Нет, но интересно узнать.
Mikhail
я врагу буду советовать
Ilya
Сайт или что?
Ilya
А какая тебе инфа еще нужна? )) Это ж оупен сорс ))
mva
Нет, но интересно узнать.
sh-4.4$ for v in jit 5.1 5.2 5.3; do lua$v -e 'print(_VERSION,jit and jit.version or ""); print(package.path,package.cpath);'; done Lua 5.1 LuaJIT 2.1.0-beta3 ./?.lua;/usr/share/luajit-2.1.9999/?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua ./?.so;/usr/local/lib/lua/5.1/?.so;/usr/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/loadall.so Lua 5.1 ./?.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua;/usr/lib64/lua/5.1/?.lua;/usr/lib64/lua/5.1/?/init.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua ./?.so;/usr/lib64/lua/5.1/?.so;/usr/lib64/lua/5.1/?.so;/usr/lib64/lua/5.1/loadall.so Lua 5.2 /usr/share/lua/5.2/?.lua;/usr/share/lua/5.2/?/init.lua;/usr/lib64/lua/5.2/?.lua;/usr/lib64/lua/5.2/?/init.lua;./?.lua /usr/lib64/lua/5.2/?.so;/usr/lib64/lua/5.2/loadall.so;./?.so Lua 5.3 /usr/share/lua/5.3/?.lua;/usr/share/lua/5.3/?/init.lua;/usr/lib64/lua/5.3/?.lua;/usr/lib64/lua/5.3/?/init.lua;./?.lua;./?/init.lua /usr/lib64/lua/5.3/?.so;/usr/lib64/lua/5.3/loadall.so;./?.so
mva
вот этим
mva
обратите внимание на пути
mva
в 5.4 то же самое
mva
кому вообще в здравом уме могло прийти поменять приоритет путей и поставить "локальные" (которые в той же дире) в конец?
mva
(вопрос риторический)
Ilya
А что мешает взять и поставить их в начало? )
mva
А что мешает взять и поставить их в начало? )
то, что это нужно либо делать в каждом скрипте, либо патчить и пересобирать Lua?
mva
а это не всегда возможно (особенно в продакшне)
Ilya
Хм. local root = arg[0]:gsub('\\', '/'):match'^(.*)/' package.path = root .. '/?.lua;' .. root .. '/?/init.lua'
Это типа ты написал, чем правильно заменить ./?
Snusmumriken
Ага. И чем заменять кучу деревьев со скриптами. Выгружаешь в папку с проектом нужные тебе скрипты и радуешься.
Snusmumriken
Под вендой не работает [./] (и даже [\\.]), поэтому при кроссплатформе приходится городить.
mva
Зачем, можно же в LUA_PATH
да, давайте исправлять идиотизм разработчиков костылями по всем своим серверам и девелоперским машинам
Ilya
Да, ну у меня был чисто пример.
Ilya
да, давайте исправлять идиотизм разработчиков костылями по всем своим серверам и девелоперским машинам
По-моему установка переменных среды - вполне себе вписывается в механизм конфигурации сервера / деплоймента.
mva
Хм. local root = arg[0]:gsub('\\', '/'):match'^(.*)/' package.path = root .. '/?.lua;' .. root .. '/?/init.lua'
на самом деле, в package.config хранится разделитель путей текущей ОС :)
mva
это говно сделали только в Lua5.2+ и НЕПОНЯТНО ЗАЧЕМ
mva
мне в lua-l никто не ответил
mva
я даже лично к роберто приставал, но он не ответил
Snusmumriken
По-моему установка переменных среды - вполне себе вписывается в механизм конфигурации сервера / деплоймента.
Да, оно неплохо работает если у тебя всё в докере. Или если ты запускаешь скрипты bat-никами, в которых прописываются глобальные переменные. Ну а если ты хочешь кинуть проектную папку другану или эту же папку разворачивать на серваке - придётся морочиться жутко. Особенно с разными версиями скриптов, которые могут быть то тут то там. > на самом деле, в package.config хранится разделитель путей текущей ОС :) Пасиба, забыл про это дело.
mva
просто отдельным ответом ответь, лол
mva
:)
Ilya
Я хз тоже, зачем это сделали, но проблемы большой не вижу 😊
Snusmumriken
Проблема в том, что это не изменит повсеместно использующуюся версию 5.1 и/или luajit ((
Snusmumriken
У меня уже жуткое смирение от того что "ничего не изменить, потому что всё пишу под 5.1/luajit".
Ilya
😉
Snusmumriken
Типа, 5.2-5.4 конечно хороши, но там нет достаточно супер-крутых изменений чтобы действительно требовалось переходить.
Ilya
И достаточно много сломано, чтобы не переходить просто так 😉
Snusmumriken
:3
Ilya
(имхо)
Snusmumriken
Что в его PUC-луа отсутствует даже завалящий JIT, который в пять раз медленнее чем версия Майка Поля, хе. И такого же завалящего метода вызова внешних интерфейсов.
mva
правда, их включенность у юзера не предугадаешь :)
mva
нужно тестировать :)
Snusmumriken
в jit (2.1) есть плюшки из 5.2 и 5.3
Есть. Но если я буду где-то кроме "своих проектов" использовать БОЖЕСТВЕННЫЙ goto, то меня будут бить тапками за несовместимость с ванильной 5.1
Snusmumriken
за гото, кстати, тебя и без того могут тапками закидать :)
Вот это уже их проблемы. Скрипты работают и делают это отлично.
mva
Вот это уже их проблемы. Скрипты работают и делают это отлично.
ты же в курсе, да, что goto сделали для неосиляторов нормального написания бесконечных циклов и выхода из них? :)
Snusmumriken
Иди нафиг, я тоже могу написать миллиард таких скриптов безо всяких goto. Но использую goto для улучшения читабельности и уменьшения вложенности, поэтому опять таки иди нафиг.
Snusmumriken
ты же в курсе, да, что goto сделали для неосиляторов нормального написания бесконечных циклов и выхода из них? :)
Мне плевать для кого они это сделали, я хочу continue для минимальной вложенности при обработке списков.
Ilya
Да, continue не помешало бы.
mva
++
Ilya
Но ответ в стиле "используйте goto" - это брррр... ))
Snusmumriken
goto continue - норм замена. Но не для 5.1 ))
mva
для 5.1 был какой-то костыль на замену, кстати
Snusmumriken
Был. Под названием: function processItemList(list, i, item) if not bla-bla then return end if not bla then return end do_something_good end for i, v in ipairs(list) do processItemList(list, i, v) end
Snusmumriken
Городить лишние функции когда можно взять БОЖЕСТВЕННЫЙ goto? )))
mva
не
mva
гото не бошественный как минимум потому что метки смотрятся уныло
mva
в 5.1 в файле только код (для выполнения), комменты, и определение переменных и функций