Igor
cjson - полностью сишная библиотека, которая без внешних зависимостей работает с жысоном
Артур
Артур
Да. В сериализаторе проблема была. Я строки json в таблу засунул, а там в середине nill был. И из цикла по нахождению nill выходил😁👍
Артур
Кстати! Начал штудировать Иерузалимски с тетрадкой. Я наконец-то понял почему переменные глобальные по умолчанию! И это намного лучше чем локальные. Особенно для маленьких скриптов с тонной библиотек.
Aqendo
Igor
Igor
Мне бы наверное тоже не помешало её перечитать и мини-конспекты на этот раз делать
Aqendo
Благодарю
Aqendo
Читаю книгу и смотрю, сколько же вещей есть в луа которые мозг не воспринимает что они могут работать, к примеру:
a = {}
a[1] = "nnn"
a["x"] = "mMm"
print(a.x)
Вот я бы в жизни не поверил что такое где-то возможно и будет работать корректно
Igor
Редко смешанные таблицы использую, но да, иногда полезно бывает
Igor
Ну а вообще, мне Lua прям максимально полюбился именно после прочтения PiL полного
Aqendo
Я ещё помню удивился, когда переменные можно объявлять через строки, типа
_ENV["ab"] = 1
print(ab)
Артур
Aqendo
Артур
Aqendo
Артур
Работает :)
А! Блин!!! Мы же в окружение (_ENV) пихаем. Точно!
Aqendo
И это ведь даже не как define работает, не константа
Aqendo
Только вот я так понял в луа нет
a -= 1 и a--?
Igor
:)
Артур
Артур
Александр
Скорости😁
а это уже к интерпретации вопросы, если взять jit или вообще на aot "интерпретатор" перейти, то по идее всё должно быть так быстро как это быстро в сишке на O1
Igor
Igor
хотя и в идее звучит не очень
Igor
байткод Lua - не нативный байткод процессора, на котором запускается программа. JIT, конечно, создаёт нативный байткод, но не сразу же для всей программы, а со временем, производя нужные оптимизации
R
Александр
это только по идее
Ну полагаю, что это из-за того, что всё по классике сводиться к битве интерпретатации и компиляции.
Igor
так что в любом случае нехилая такая доля времени уходит на "превращение" луёвого байткода в нативку
Александр
байткод Lua - не нативный байткод процессора, на котором запускается программа. JIT, конечно, создаёт нативный байткод, но не сразу же для всей программы, а со временем, производя нужные оптимизации
ну собственно это плата за интерпретируемость и языковые плюшки. А касательно прекомпиляцию для jit/aot, то это конечно верно, но можно сделать иерархический jit с кэшированием, где прекомпиляция будет происходить один раз, после чего по сути внутри будет работать почти родная к процессору версия программы.
Igor
в принципе да
Igor
но у Майка такой факапнутый жит, что как он работает понимает только сам Майк)))
Александр
Другой вопрос в том, что это всё изврат, который по время/результат не особо себя оправдывает и всё равно быть прям сишкой луа не сможет.
Александр
Igor
куча ассемблерного кода, заумные структуры сишного кода
Igor
жесть короче
Aqendo
извините что врываюсь, но есть какой-то лёгкий способ установить луарокс+луажит на винду?
Igor
вот тута описано всё https://github.com/luarocks/luarocks/wiki/Installation-instructions-for-Windows
Igor
всё делается точно так же, как и для Lua 5.1
Александр
Ну это проблема по сути того, что разрабов не так много и проект по сути вокруг маленькой группы людей вертится, будь луа популярнее, я полагаю jit-ниндзь было бы больше и возможно выше была бы и культура кода и его поддержки. А так luajit по своей серьёзности примерно на уровне tcc держится, т.е. кончено круто, но круто с кучей оговорок.
Aqendo
Igor
А почему 5.3?
Aqendo
да вот хрен знает, у меня вообще луажит 2.1.0
Igor
Igor
надо ему помочь слегка, создай в %appdata% папку luarocks
Igor
он не умеет сам првоерять, существует она или нет
Aqendo
решил всё-таки сбилдить, теперь он не может найти луа в пути где установлен луа
Aqendo
Aqendo
создал, он начал в конфиг всё записывать но по какой-то причине все равно в указанных директориях не видит ни incdir, ни libdir
Igor
luajit же собран?
Igor
luajit.exe и lua51.dll существуют?
Aqendo
существуют
Aqendo
собрал через msvcbuild
Igor
Igor
буквально только что собрал
Igor
install /msvc /lv 5.1 /lua "D:\luajit\src" /inc "D:\luajit\src" /lib "D:\luajit\src" /bin "D:\luajit\src"
Aqendo
щас попробую
Aqendo
Igor
👍
Aqendo
чёт оно всё равно хреново установилось (, буду разбираться
Aqendo
видно не судьба
Aqendo
вроде компилил через mvsc тогда почему во время установки luasocket требует mingw32-gcc, к тому же во в начале установки кучу раз пишет путь не найден, странно как-то
Артур
R
Артур
Igor
у меня с моей команды всё отлично собралось
Snusmumriken
Igor
Aqendo
окей, он всё равно в начале пару ошибок выдал что "системе не удается найти указанный путь", но написал что установил, установил в директорию луа/systree... пытался сделать require, луа не нашел сокет, окей, думал как в си прописать путь по папкам, написал require("systree/share/lua/5.1") и он воспринимает точку как слеш, что происходит я без понятия