fgntfg
А есть еще извращенная запись без первого нуля .22
Snusmumriken
А ещё есть шестнадцатиричка: 0xFF. А ещё есть римское писание: XXI И шумерские засечки тоже никто не отменял )))
fgntfg
а юникод последнее поддерживает?
Snusmumriken
Не а ))
akamit
спасибо, (%d+%.?%d*) помогло
fgntfg
Значит кастом шрифт для Lёв
Snusmumriken
На глифах
akamit
спасибо, (%d+%.?%d*) помогло
а вот почему в данном случае %w+ не работает?
Snusmumriken
спасибо, (%d+%.?%d*) помогло
Моя доброта не знает границ, будешь потом внукам рассказывать, а они не поверят.
akamit
просто интерпретировать число как строку с точкой
Snusmumriken
а вот почему в данном случае %w+ не работает?
Потому что точка - не буква и не цифра а знак препинания. .* - покатит, но оно вообще всё сгребёт.
Snusmumriken
спасибо, (%d+%.?%d*) помогло
О, кстати, отрицательные числа оно не заберёт. А вот это - заберёт. '%-?%d+%.?%d*' Ну вот ты и увидел "класс настоящих чисел" в формате регулярок. Мнимые числа и константы типа e/pi не обработаются, ну и хрен с ними.
Snusmumriken
А у tonumber, схема работы более сложная. Ещё учитывается точка или запятая в качестве дробного разделителя, в зависимости от локали.
Snusmumriken
С разными системами счисления тоже работает: > print(tonumber('11111011111', 2)) 2015 Офигительно крутая штука.
Alexander
Не а ))
https://en.wikipedia.org/wiki/Cuneiform_Numbers_and_Punctuation юникод клинопись отлично поддерживает. а вот шрифты --- не особо поддерживают :)
Snusmumriken
Ух ты, а я не выкопал : ) Значит можно писать парсер клинописи в числа )))
Group Butler [beta]
Hi chaff!
Anonymous
ohai~
Anonymous
кароч, мне нужно завершить функцию где попало. как это сделать?
Anonymous
if var == nil then do return end end пробую что-то такое, валится
Anonymous
чтобы было понятно, опыт у меня ровно пара часов
Anonymous
Просто return посреди if
Anonymous
сейчас попробую
Anonymous
if var == nil then return end такое чот не проканало
Anonymous
@chaff function r(var) if var == nil then return end print(var) end r(44) https://www.lua.org/cgi-bin/demo
Anonymous
а, лол, я не в том файле изменения чекаю
Anonymous
Еще лучше только когда файл закешировался ;)
Anonymous
работает, спасибо!
Anonymous
Я спать, больше помощи не жди!
Anonymous
а я уже всё сделал, лол
Snusmumriken
@chaff function r(var) if var == nil then return end print(var) end r(44) https://www.lua.org/cgi-bin/demo
Короткая запись - if not var then return end, но оно срабатывает на false. Ещё тут работает типичное сишное приведение значения к булеану: bool = not not var
Sergey
if not war
fgntfg
#define war var
Snusmumriken
Commit 16.01.18 + #define war love make(war); РЕБЗЯ Я ВСЁ ПОФИКСИЛ
vvzvlad
ага, а потом в функции, реализующий ответ на нападение будет make(love);
fgntfg
А это будет работать тоже
Snusmumriken
ага, а потом в функции, реализующий ответ на нападение будет make(love);
Ты знаешь такой антипаттерн как 'Паблик Морозов', и как его делают? В заголовке чилда класса пишут #define private public, и всё, все приватные поля родителя становится публичными.
vvzvlad
А это будет работать тоже
я имею ввиду, что это сродни #define TRUE FALSE — заменит везде, не разбираясь, да еще и в коде с виду все будет нормально, make(war), а в бинарнике make(love).
Group Butler [beta]
Hi ᅠ!
Deleted Account
Hi ᅠ!
дороу бот
Snusmumriken
Snusmumriken
Для тех кто ещё не освоил метатаблицы https://habrahabr.ru/post/346892/
Snusmumriken
Ща прибудет народ, я оставил ссылку на чатик.
Group Butler [beta]
Hi Petr!
Group Butler [beta]
Hi Наиль!
Snusmumriken
Привет ребят.
Group Butler [beta]
Hi Roman!
Tverd
Хорошая статья, Снус!
Group Butler [beta]
Hi Сергей!
Group Butler [beta]
Hi Vladimir!
Group Butler [beta]
Hi Aleksander!
Group Butler [beta]
Hi Kirill!
Group Butler [beta]
Hi Pavel!
Pavel
Подскажите, как добавить OpenGL 3.3 и выше к LuaJIT. Есть ли готовая обёртка или как самому обернуть (если есть хорошее описание).
Group Butler [beta]
Hi mihacooper!
mihacooper [МСК -2]
и тебе привет
Group Butler [beta]
Hi Revertron!
Group Butler [beta]
Hi 👾 Алёна 👾 Helen Allien!
Snusmumriken
Подскажите, как добавить OpenGL 3.3 и выше к LuaJIT. Есть ли готовая обёртка или как самому обернуть (если есть хорошее описание).
Тебе обязательно 3.3? На самом деле, не сложно, если есть dll/so-библиотека. Подключаешь библиотеку ffi.load('lib'), пишешь хедер на функции ffi.cdef[[]] (можно автоматически распарсить .h-заголовки), дёргаешь функции. Возможно есть уже готовые. Готовая портабельная обёртка с OpenGL 2.1 (сейчас - 2d, довольно скоро потянет 3d) и кучей игровых ништяков - Love2d.
Snusmumriken
Список особо крутых ffi-биндингов: http://wiki.luajit.org/FFI-Bindings OpenGL GLUT 3.x: https://github.com/nanoant/glua Просто большой комплект либ (некоторые - биндинги, но они созданы для совместной работы друг с другом, поэтому иногда, приходится переписывать убирая лишние зависимости): https://luapower.com/
Ilya
Где-нибудь есть нормальный мануал по установке Lua (5.1) + Luarocks на Windows? Я это как-то сделал для 5.3, но теперь мне страшно вспоминать об этом, и, боюсь, повторить будет сложно.
Ilya
А надо.
Ilya
Да, и чтобы можно было компилировать сишные модули - в этом весь смысл.
Snusmumriken
Да, и чтобы можно было компилировать сишные модули - в этом весь смысл.
Сишные модули можно компилировать через MinGW/VS, у них регулярно есть Makefile. Для VS - прописываем кучу лабуды в свойства проекта, для MinGW - пишем makefile и пихаем в стандартную include-директорию нужные Lua-заголовки. Кстати, можно поставить Luarocks, но там под вендой много всякой фигни, которую приходится прописывать в пути, в unix-подобных ставится в три строчки баша.
Pavel
По поводу OpenGL, поясните, как "автоматически распарсить заголовки". Я понимаю так, надо обработать препроцессором, а что ещё? Есть готовый GLFW, надо только OpenGL.
Group Butler [beta]
Hi 6 :)!
6 :)
Revertron
Revertron
А никто не знает есть ли где-то уже JIT для Lua 5.3?
Snusmumriken
Нет, потому что Luajit - это другая виртуальная машина, основанная на 5.1 для скорости/простоты. Можно задонатить Майку Полу чтобы он переписал всё нафиг, но это дорого (десятки-сотни тысяч уе), и тогда посыпется филигранная оптимизация. Можно переписать самостоятельно, но уровень навыков программирования на сишке должен быть где-то в районе Майка Пола, а свободного времени - с пол года. Да и объективно - не очень нужно.
Vsevolod
а зачем lua 5.3?
Revertron
а зачем lua 5.3?
для многопоточности, интиджеров и т.п.
Vsevolod
какой многопоточности?
Snusmumriken
Ох. В Lua 5.3 нет многопоточности. Там довольно небольшая разница с 5.1, в основном - несколько лишних ключевых слов и метаметоды.
Vsevolod
инты в 5.3 есть, но от них сплошная боль
Vsevolod
тем более, что инты есть и в luajit...
Snusmumriken
В Luajit есть не только int, но и unsigned long-long int и все остальные сишные типы включая структуры, в т.ч. многомерные. Подробнее - тут: https://habrahabr.ru/post/113804/
Vsevolod
именно