Светомеч
Светомеч
Единственный минус для меня - не такой шустрый
Alexey
Я постоянно сейчас использую zbs для Lua/Perl
vitaly
Snusmumriken
Это мой гражданский долг
Snusmumriken
Maxim
Lucky
зебра ннорм
Lucky
пробовал её для инстеда
Lucky
пришлось немного понастраивать её конечно
mva
кстати, а вот в тарантуле местный разлив luarocks'ов научили ставить пакеты в субдиректорию текущей директории (так сказать, попроектно)
mva
а апстримные до этого ещё не допозли?
mva
// а то я вообще по старинке ставлю пакеты глобально через системный пакетный менеджер, сам же и опакечивая нехватающие
Snusmumriken
Ну я типа прописал LUA_PATH/LUA_CPATH. У меня из-за этого иногда бывают проблемы с игрушками (они типа ругаются что внутриигровые скрипты не могут найти себя, или ищутся не там где надо). Компилю либы самостоятельно с tcc (без luarocks). Если выплёвываю "проект" - копипастю либы в директорию. Кстати, можно было бы замутить что-то похожее на npm
Maxim
Maxim
Snusmumriken
Я не выхожу из дома
Maxim
просьба относиться к анимации с юмором )
Maxim
Я не выхожу из дома
у меня сегодня спросили "почему ты приезжаешь к 17:00 последнюю неделю?"
Maxim
интересно чем будет заниматься дальше по жизне этот челобака
Maxim
деньги на проезд он не взял, обиделся наверное
Dmitry
Snusmumriken
Особых потерь в скорости не видно (я пока не жаловался, хех).
Варнинги - слабовато, там упор несколько на другое.
Совместимость - в каком плане? Дефолтные дефайны в зависимости от ОС/архитектуры? По моему, они передраны с gcc, так что тоже должно быть норм.
Snusmumriken
В любом случае, если и требуется какая-то микро-адаптация либы - это действительно "микро-адаптация". Мне не лень доадаптировать, но впадлу таскать между миллиардом компов компилятор на 300мб. Tcc хорошо сочетается с синхронизацией гугл-облака и с "быстрой разработкой", с очень короткими итерациями между фиксом и новым запуском.
Snusmumriken
Ну, за что я люблю скрипты: запустил, вывалилось, пофиксил, снова тут же запустил.
Tcc даёт мне примерно то же самое с сишкой.
Dmitry
он ещё и ощутимо быстрее компилит? класс 👍🏻
> Мне не лень доадаптировать
вот это пугает))
и под линь, и под винду с tcc компилишь?
Snusmumriken
Snusmumriken
Snusmumriken
Собственно, помнится, tcc встроен в luajit, и частично через него реализован ffi-интерфейс (вываливание мапы новых сишных функций, которые мы грузим с дллок).
Что особенно забавно, luajit может "изнутри себя" подцепить уже встроенный в него tcc и делать всякую грязь. Типа чего-то такого:
-- ... через ffi мапим tcc-фигню и получаем указатель активного lua_state
local code = [[
int lua_newfunc(lua_State *L){
float a = lua_checknumber(L, 1);
float b = lua_checknumber(L, 1);
lua_pushnumber(L, a + b);
return 1;
}
void export(lua_State *L){
lua_pushfunction(L, lua_newfunc);
}
]]
tcc_rebuild(code)
local func = ffi.C.export(luastate)
print(func(1, 2)) --> 3
Snusmumriken
Или так: https://github.com/Playermet/luajit-tcc/blob/master/examples/add_symbol.lua
Ну в общем, с tcc можно мутить много грязной грязи. Главное - не делай это в проде без тестов: можно и bsod словить, если постараться.
Saphire
Так TCC он на то и Tiny, что код у него может быть не сильно оптимизирован.
сравнение эпичнее получается )
Snusmumriken
(ничего страшного)
Snusmumriken
Последняя версия от 17 декабря 2017, плюс мб отдадут "сообществу".
А ещё, стандарты сишки довольно давно не выходили : )
Ей можно быть замороженной в развитии.
Snusmumriken
Нуу.. Да.
Собственно, это фиксы стандарта 11 года.
Snusmumriken
Полноценные - не выходили с 11 года, и то, в 95% случаев используется стандарт С99, почти двадцатилетней давности, как самый универсальный-стабильный.
Snusmumriken
В общем, я к тому что, что TCC - достаточно для того, чтобы комфортно себя чувствовать ближайшие лет сорок : )
Snusmumriken
А ещё лучше будет если писать всё бинарно вручную и полировать каждый каждый кусочек каждой фигни, чтобы к моменту своей смерти как раз завершить свой hello-world : )
Вопрос, будет ли разница в результате значительной.
Snusmumriken
А вот это уже зависит от задач : )
Snusmumriken
Значит буду собирать то, где необходимы новые инструкции (и прирост от них будет иметь значение) с gcc.
Snusmumriken
Ну, полка для инструментов большая, каждому найдётся место.
Мои основные инструменты - "напильники", по типу чистого luajit-интерпретатора или tcc, но никто не запрещает по необходимости доставать монстров.
У меня где-то даже стоит visual studio на 30гб всего подряд, только используется хорошо если десяток раз в год.
Snusmumriken
Время от времени вылезают чуваки, которым надо помогать на c#-basic, и некоторые товарищи выкладывают в гит не сборки для makefile, а как раз visual studio-проекты.
Snusmumriken
Преподы ведущих вузов страны : )
Я тип веду "обучально-репетиторскую" деятельность, а многие вузы-училища учат только basic на VS.
Snusmumriken
Ну, база у народа худо-бедная появляется. Иногда.
Saphire
На первом курсе там вообще ворд
Snusmumriken
Практически все сферы которые тебе нужны. Тут разве что нет настолько удобных библиотек для матана вроде numpy.
Так - хоть под десктоп на qt лепим окошки-формочки на луях.
vitaly
vitaly
опять тишина - пойду поработаю головой
Mikhail
Последний (10й) урок по Черепашке.
Наконец-то реальная игра для 2х игроков.
Последний, потому что всё. Кончились функции.
https://youtu.be/aAfSN21jty0
Lucky
эту фиговину я так и не смог скомпилить
Lucky
ругаются на отсутствие какой-то древней либы
Lucky
по кр. мере .deb
Lucky
а виндовый крашится в вине
Snusmumriken
О, коронщики!
z1pa
👋😁
Anatoliy
Ребята подскажите как в луа правильно описать в операторе if проверку условия по многим параметрам с помощью логических операторов, т.е. у меня примерно такое выражение if (v~="F") and (v~="Q") and (v~="L") and (v~="P") and (v~="T") then
Anatoliy
т.е. проверка на то что v должно быть не равно "F" "Q" "L" "P" и "T"
Anatoliy
но оно не работает, где то что то не так
Viacheslav
Где-то в другом месте ошибка, ага
Anatoliy
Почему то проскакивает мимо последующего тела внутри then
vvzvlad
скобочки в таком виде не обязательны
vvzvlad
но ломать не должны
Anatoliy
Anatoliy
У меня после if еще идет elseif - elseif ftype[1] == "C" then
Anatoliy
и вот его проскакивает
Anatoliy
ftype - список где каждый элемент - один строковый символ
Anatoliy
вот проверяю - если первый элемент ftype будет равен "C" то выполняем дальше внутри тело
Anatoliy
Первый элемент точно "C"
Anatoliy
Странно что за бред
Anatoliy
записал x = (v~="F") and (v~="Q") and (v~="L") and (v~="P") and (v~="T")
Anatoliy
if not x then
Anatoliy
и тело после then пошло выполнятся
vvzvlad
напиши print((v~="F"), (v~="Q"), (v~="L"), (v~="P"), (v~="T"))
vvzvlad
а, хм
Anatoliy
хотя x у меня точно true, проверил, a not x - false
Snusmumriken
if not v:find'^[FQLPT]$' then
Snusmumriken
Проверка на символ из набора в квадратных скобках регуляркой. По мне - один из простых/практичных вариантов.
Anatoliy
Да правильно, не освоил я еще луа в совершенстве, есть и более простые методы чем я клепаю😁
Snusmumriken
Со словами из набора уже сложнее: луа не тянет конструкции типа "foo|bar". Ну, по умолчанию. Есть либы pcre, которые так умеют.