Михаил
Михаил
второе точно не про меня
Михаил
Михаил
только это будет выглядеть примерно так
i =~ +10
Михаил
не надо в _G лезть
Михаил
и надо будет еще сохранить тот способ, которым ты достиг i
для глобальных и локальных переменных это var_lookup(...)
Михаил
и повторить его заново
UtoECat
Возня с _G это из за safeenv... Не важно...
ну точней из-за моих велосипедов... с luau как-то возился. На каждый загруженный файл или строку кода делаю свой _G - по умолчанию в luau он readonly, думал повысить совместимость этим...
UtoECat
Михаил
не надо 💀
надо дядя.. иначе не сделать
Igor
Странный прикол в луях какой-то нашёл
Igor
У меня есть программка с легеньким шифрованием, грубо говоря защита от дурака
Igor
Ключи генерирует временные в зависимости от конфигурации компьютера и указанного времени действия ключа
Igor
Работала сто лет нормально и сейчас заказчик прибегает (звонит) с ошалелым голосом
Igor
Ключи рабоать мол перестали
Igor
Бесконечные генерируются нормально, а временные - нет. Сел я разбираться и понять не могу, че не так, пока не заметил, что генерируемый ключ оказался почему-то короче на один байт...
Igor
Проверил все входные данные и они ну все одного размера, очевидно верного
Igor
Но стоило мне в одном месте в кейгене форматирование строки убрать, как тут же ключи верные генерироваться начали :/
Igor
Видимо форматтеру не понравились бинарные данные какие-то, я всегда думал, что их безопасно ему передавать
Igor
Это вот буквально единственное изменение, которое я сделал, чтобы всё заработало
Сергей
прикольная соль :D
Igor
Igor
Генерируешь ключ на 10 минут, всё верно, 31 байт на выходе
Igor
Генерируешь наподольше - хоба, на байт меньше
Михаил
о, на луях проекты пишут
Михаил
помимо игор
Сергей
помимо игор
снус даже работает луа программистом
Михаил
сегодня собираюсь выкатить обнову с операторами в релиз
Михаил
вот как эти ваши ридми писать?? и документации
Lucky
Lucky
примеры к каждому оператору делой.
Михаил
Михаил
сколько их там... возведи 10 (примерное колво разных символов) в степень 4 - максимально возможная длина для удобства
Михаил
10к операторов
Михаил
ну я порежу некоторые, например чтобы кастомные не начинались с =, а на равно будут только = ==
Михаил
еще стоит наверно ===
Михаил
со смыслом как в жс
Михаил
ну и все, а остальные только на +-?*% и т.д.
Михаил
и еще вот идея для оператора ?.
все, заканчивающиеся на точку, будут считаться подобными точке (и слово после него будет считаться исключительно константной строкой, а не именем переменной)
Михаил
и приоритет надо проверить
Михаил
local obj = {field = 96};
local refobj = ref {obj};
refobj*.field = 128;
print(obj.field) -- 128
как-то так
Михаил
вместо ->
Михаил
всё, вот релиз
https://github.com/reglnk/LuarJIT/releases/tag/v1.0
Lucky
Михаил
Lucky
что это
https://github.com/instead-hub/instead
Михаил
скоро будет оператор ?. и я даже знаю как его добавить
Михаил
ан нет, печаль. только подобие точки
Михаил
Михаил
вот так оно работает.. если and or то появляются бранчи
Михаил
Михаил
придется вообще в операторах разобраться
Михаил
могу только сказать, что автор данного алгоритма - гений
Михаил
/* Priorities for each binary operator. ORDER OPR. */
static const struct {
uint8_t left; /* Left priority. */
uint8_t right; /* Right priority. */
} priority[] = {
{6,6}, {6,6}, {7,7}, {7,7}, {7,7}, /* ADD SUB MUL DIV MOD */
{10,9}, {5,4}, /* POW CONCAT (right associative) */
{3,3}, {3,3}, /* EQ NE */
{3,3}, {3,3}, {3,3}, {3,3}, /* LT GE GT LE */
{2,2}, {1,1} /* AND OR */
};
#define UNARY_PRIORITY 8 /* Priority for unary operators. */
Михаил
Разбить приоритет операторов на левый и правый! чтобы разделить их на левоассоциативные и правоассоциативные
Михаил
это же гениально! это шедевр
Михаил
если приоритеты равны то парсится слева направо, иначе справа налево (если один оператор везде)
Михаил
Михаил
я не знаю как это описать, мне даже понять полностью сложно
Михаил
как он все приоритеты расставил
Михаил
даже грустно стало
Михаил
я думал я достаточно креативный. а оказалось я пишу просто однообразное говно
Михаил
какой тут глубокий алгоритмический смысл
Михаил
вам такое на сайтах по изучению с++ не расскажут
Михаил
замечу, там есть goto, куча препроцессора, а вместо табов он юзает 2 пробела или один таб на 8 символов. а код дофига плотный, просто считайте количество sloc равно количеству строк кода в файле. и в начале он был почти нечитаемым. какое теперь ничтожное зрелище - впаривание, что если ты не юзаешь определенный стиль вида X, то ты полное чмо и не программист
Михаил
"оставляйте комменты чтобы мне легче было читать и редактировать, читать код некогда"
Михаил
Михаил
как ты поймешь ска без кода
UtoECat
Михаил
практически ничего не объясняют
Михаил
веб разработку на высокоуровневых япах теперь сложно назвать программированием
Михаил
как жить теперь
Михаил
Михаил
я же ўеб разработчик
UtoECat
практически ничего не объясняют
хуже отсутствия комментариев - бессмысленные комментарии. Ака
int64_t price = 0;
// проходимся по списку товаров
for (struct cart_item* i = cart->items; i != NULL; i = i->next)
price += i->price * i->amount;//складываем цену товаров
Михаил
здесь они именно... нет, не такие, зачем исправил
Михаил
в общем я впервые решил вчитаться в код... а это был только парсер