Bit
@Racsicofalapatorius , а можно примеры кода и комментарии, что именно не так? Просто я тоже не понимаю, в чем конкретно претензии, и чем глобальные переменные мешают.
vvzvlad
Трешняк они, сказали же. "Ты что, дальтоник, красный от зелёного отличить не можешь?")
Валентин
фу, какие вы токсичные
Bit
Ну, видимо мне, простому смертному, не понять ))
Vlad
Использовать луа как конфиг файл для движка норм, или кринж?
Bit
Почему бы и нет?
Vlad
Просто синтаксис явно удобнее чем у какого нибудь .cfg
mva
mva
ну, тут, точнее, вопрос в том, чего хочется от конфига
mva
если нужен именно конфиг, декларативный, то да, почему не json
mva
а если хочется возможность применять логику в конфиге, то норм
Vlad
Ну, тут, под дальнейшее расширение больше.
Vlad
Вдруг я когда то захочу запилить поддержку скриптинга.
Ivan
Использовать луа как конфиг файл для движка норм, или кринж?
Пока ты живешь только в луа, то норм.
Но вот когда (и если) система разрастается и из этого конфига нужно читать не только программам на луа, то тогда наступает жопа.
Так что если вероятность что когда-нибудь этот конфиг нужно будет читать из других языков программирования, то лучше так не делать. А если будет только луа и всех в команде устраивает конфиги в луа, то почему бы и нет =)
Александр
Ivan
Огонь решение. В другой язык программирования тащить луа только чтобы прочитать конфиг.
ㅤ
Парсер подмножества языка, а не весь Lua.
ㅤ
Чисто как JSON. Видел для JS такое.
Ivan
Во-первых где гарнитии что в конфиге используется только какая-то часть луа? Как только конфиг становится на языке программирования сразу начинается что туда можно впихнуть if-чик какой-нибудь и еще небольшую логику — это же конфгиу относится
ㅤ
Ну и нет проблемы встроить для потенциально сложных конфигов Lua, который, на минуточку, для того и нужен.
ㅤ
Это не такое извращение, как Electron. Давайте поговорим про Electron.
ㅤ
Ivan
Vlad
Ivan
Vlad
Если это вообще твой пет проджект, то делай как тебе нравится и никого не слушай =)
Собственно я использую луа, просто потому что он удобно парсится в то что мне нужно. Пример кода на С++:
void readConfig(GameData& data, ControlState& ctrls)
{
LuaScript script("conf.lua");
if(!script) return; // Then defaults will be loaded.
std::string filename = script.get<std::string>("config.map");
data.initMapFromFile(filename.c_str());
screenWidth = script.get<int>("config.screenWidth");
screenHeight = script.get<int>("config.screenHeight");
screenBits = script.get<int>("config.screenBits");
....
}
Tom
Snusmumriken
fgntfg
Хмм. А что если сделать глобальный void*, выделить память и использовать только его?
Snusmumriken
Поздравляю, ты только что изобрёл глобалспейс ))
Snusmumriken
1. Её нет в луях, если очистить весь глобалспейс и подгрузить глобальные таблички в локальную фигню (то же — со всеми остальными скриптами);
2. Этого почти нет в жаве, и в прочих пакетно-модульных языках;
mva
в похапе, кстати, вроде, по умолчанию переменные локальные, например :)
mva
но мне кажется ОПу не нравится что в луне объекты/классы=таблицы
mva
просто оне не смог по-человечески это объяснить
fgntfg
Хмм. Надо посмотреть как в lua на прямую с памятью работать.
Snusmumriken
Ffi. malloc, ffi.copy etc.
fgntfg
ff.uckthis
fgntfg
Через ffi не ощущения не не
Snusmumriken
Igor
Судя по всему iuplua.so он нашёл, но не нашёл какую-то его зависимость, ldd посмотри, понятно станет
Igor
Через LD_PRELOAD_LIBRARY можешь, указав путь до libiup
Igor
Проверь ещё ld.so.conf
Igor
И выполни ldconfig
Igor
Может с кешем что-то не так
Igor
И поэтому не ищет
Igor
На линуксе вообще линкование динамики - это отдельная эпопея
Igor
Долго со всем этим разбирался
Igor
в ld.so.conf можно пути указать, по которым ищет
Igor
Но ты же, как я понял, в lib64 сунул
Igor
Так что видеть должен в любом случае
Igor
Как знаешь, но в принципе да. С переменными окружения - это q&d решение
Igor
Можно в принципе libiup скопирнуть в папку с luaiup, тоже сработает, зависимости сначала ищутся в в корневой папке файла, который запросил зависимость
Igor
А можно вообще iuplua собрать сразу же без линкования, зашив libiup в него
Igor
Много решений есть
Igor
Меня вообще подбешивают эти скрипты configure и ему подобные, эти автотулзы оюычно обладают никакущей переносимостью, если только автор проекта не подзапарился над всем этим
Igor
Я make и configure файлы использую только в большущих проектах, по типу nginx, а если собирать вручную всякую мелочь типа iup, можно и самому команды написать
Snusmumriken
(прямо сейчас "развлекаюсь" с таким, кошмар)
Igor
Переносимость конф гурационных скритов не столько проблема собираемого ПО, сколько самого линукса, от дистра к дистру ну очень многое меняется
Snusmumriken
Под виндовсом тоже много чего приятного :)
Igor
Ну да, даже больше местами
Igor
Но в целом на винде попроще со сборкой
Igor
По крайней мере тех проектов, которые не GNUтые
Snusmumriken
Только если есть VS и проект этой самой студии. Тут всё сравнительно шоколадно. Если нет — придётся кочать cmake и пытаться состыковать с VC/MinGW или ещё чем.
Igor
Ой, cmake под вин я избегать вообще пытаюсь как можно сильнее
Igor
Что тут, что в unix-like это жуть жутчайшая
Igor
Куча зависимостей, удовлетворение которых может занять немало времени
Igor
Я тех разработчиков, которые в мультиплатформу sln проекты суёт расцеловать готов
Snusmumriken
Хех, следующий уровень — это запихнутый в репозиторий компилятор tcc со всеми либами, и bat + sh для сборки. Правда, только для сишки. Типа самосборка.
Anonymous
В рамочку:
[удовлетворение зависимостей]
Tom
Lucky
Lucky
Удовлетворение зависимостей
Lucky
ну, у мну вендекапец наступил с очередным мегаапдейтом, сложивший систему в перманентный синий экран смерти
Igor
Я бсоды в последнее время ловлю разве что от очень крутого драйвера на сетевую карту, которые асусы впихнули в мать
Igor
В общем если не считать бсоды в модуле tcpip.sys, то в последний раз проблемы с виндой у меня были во времена семёрки