Snusmumriken
что ента такое
Ну типо знаеш, ты такой хочешь что-то откуда-то скочать. Оно не даёт тебе просто так ево скочать. Ты такой должен просимулировать цепочку запросов: — вот я делаю запрос со страничкой того, что хочу скочать, и получаю пачку куков — вот я делаю запрос с логином, передаю кукисы странички и получаю куку сессии — вот я делаю запрос за фигнёй которую хочу скочать, ссылку на которую выудил со странички того что хочу скочать ура ура Особенно весело когда что-то кочаеш в 50 потоков с пачкой проксей, и у каждой прокси должна быть своя пачка куков, свой юзерагент и прочая лабуда.
Domka
ля как сложна :(
Domka
надо будет когда нибудь занятся интернатом
Domka
Михаил
поздравьте меня
Михаил
я пропатчил луажыт и добавил туда fn
Михаил
Михаил
код действительно расширяемый, не нужно было всё перелопачивать
Snusmumriken
А я в непатченный луажыт добавляю нелегальных штук, всё средствами базовой луашки.
Михаил
еще немного - и я смогу добавить { } вместо do end))
Snusmumriken
На табличках навернёшься с некислым шансом.
Михаил
возможно. но я весь lj_parse перечитаю и будет ясно
Михаил
самое главное что я хочу добавить это +=
Igor
самое главное что я хочу добавить это +=
Вот кстати не понимаю, почему в LuaJIT нет какого-нибудь дефайна, чтобы активировать вот такой прикольчик
Snusmumriken
Потому что теряется синтаксическая совместимость. Луажыт по синтаксису полностью соответствует слегка ограниченному 5.3, например (без битопов). В общем, если пишешь для луажыт — код спокойно запустится в 5.2/5.3.
Михаил
еще континью надо добавить
Snusmumriken
goto есть.
Igor
Потому что теряется синтаксическая совместимость. Луажыт по синтаксису полностью соответствует слегка ограниченному 5.3, например (без битопов). В общем, если пишешь для луажыт — код спокойно запустится в 5.2/5.3.
Но тому же 5.1 уже не соответствует, хоть на нём и базируется. Я ж не говорю делать эту штуку включенной по дефолту, просто кто захотел – включил это сложенице
Snusmumriken
Хотя у меня на работе обычная луашка 5.1, и там именно добавляли continue патчем. А ещё оформление лямбд через do-end а ля: local status, result = pcall(do return 10 end)
Михаил
/* List of LHS variables. */ typedef struct LHSVarList { ExpDesc v; /* LHS variable. */ struct LHSVarList *prev; /* Link to previous LHS variable. */ } LHSVarList;
Михаил
Что может значить LHS?
Snusmumriken
Ну и ещё можно делать простенькие процедурки а ля local foo = do doSome1() doSome2() end foo()
Михаил
Что может значить LHS?
Снус, знаешь мб?
Snusmumriken
Хз
Snusmumriken
Мб left hand side
Михаил
RHS еще есть, да, наверно)
Snusmumriken
Точно left hand side. Полагаю, это что-то типа LHS == RHS if foo + 10 == bar - 30 then ... end https://www.vedantu.com/maths/lhs-and-rhs-examples
Михаил
ну да
Михаил
все что до =
Михаил
parse RHS идет сразу после lex_check(ls, '=')
Snusmumriken
А ещё я накатал простейшую фигню для выдачи кратенькой справочки из официальной доки. Надо её залить в какой-нибудь гит.
Luсky
самое главное что я хочу добавить это +=
подсмотри в сорцах pico-8 и tic-80
Михаил
только посмотрите...
Михаил
и даже с вложенными переменными с фигурными скобками работает
Михаил
fn fib(n) { if n == 1 then return 1 end if n == 2 then return 1 end return fib(n - 1) + fib(n - 2); } fn main() { print("enter a number"); local f = tonumber(io.read()) print("fib: " .. tostring(fib(f))) } main();
Михаил
Michael@HPP1322SR:/s/Projects/LuaJIT/src> ./luajit syntaxtest.lua enter a number 9 fib: 34
Luсky
Колдовство👍
Михаил
следующий - for
Михаил
fn main() { for k, v in pairs{"foo", "bar", "baz"} do { print(k, v); } for i = 1, 5 { print(i) } } main();
Михаил
Все-таки пришлось оставить do. когда я его убираю, тело цикла задевается парсингом выражения после in и не считается телом цикла, а потом парсер требует {
Михаил
красота
Михаил
остались ветвления. их я сделаю примерно так же
Михаил
if smth { ... } elseif smth { ... } else { ... }
Михаил
надо еще сделать {} опциональными как в с/с++
Snusmumriken
Расшаришь?
https://pastebin.com/h2kZnX4u
Igor
https://pastebin.com/h2kZnX4u
Производительность не измерял? Интересно, насколько медленнее метавызовы будут работать в данном случае по отношению к чистому коду
Snusmumriken
Ммм.
Snusmumriken
Производительность не измерял? Интересно, насколько медленнее метавызовы будут работать в данном случае по отношению к чистому коду
Но вообще, на чистой луашке, в зависимости от глубины. Например, вот тут, i:tostring() local function foo(v) for i = 1, 10 do if i % 2 == 0 then local f = i:tostring() end end end получается быстрее чем tostring(i) тут local function foo(v) for i = 1, 10 do if i % 2 == 0 then local f = tostring(i) end end end Потому что лукапы. Но мы можем закешировать tostring в начале функции, тогда оно в чистой луашке будет чуть быстрее чем метатабличный переход. У luajit насрать в обоих случаях, оно при сборке трассы сокращает все лукапы/переходы и результат получается одинаковым.
Snusmumriken
Ну, вообще примерно так.
Snusmumriken
Ящитаю что незначительно.
Igor
Ну, вообще примерно так.
Ну меня именно случай с житом интересовал, ага. В чистом луа очевидно будет медленнее с кучей вложений
Igor
Ну прикольненько
Igor
И удобно
Snusmumriken
Да, я уже вовсю рофляю, даже в бенче накрутил.
Snusmumriken
Меня просто задолбало заворачивать всё подряд в дикое количество функций. foo = (5):pow(2):format("%.5d"):print("foo: %s") -- или foo = string.format("%.5d", math.pow(5, 2)) print("foo: " .. 5) foo = ("0xBEEF"):match("0x(%x+)"):tonumber(16):print() -- или foo = tonumber(("0xBEEF"):match("(0x(%x+))"), 16) print(foo) Пусть прямые последовательности действий будут прямыми.
Snusmumriken
Должно быть можно.
Snusmumriken
Я вот думаю что скоро испорчусь, и буду давать нубикам примерчики луёвого кода вот с этой фигнёй, а они будут сидеть и страдать что так не могут.
Сергей
skill issue
Snusmumriken
Они от этого тоже испортятся
Всеволод
Они от этого тоже испортятся
Так и изобретают фреймворки к Джаваскрипту, разве нет?
Snusmumriken
Фреймворки к жаваскрипту по крайней мере не расширяют синтаксис. Но вообще да.
Всеволод
Фреймворки к жаваскрипту по крайней мере не расширяют синтаксис. Но вообще да.
синтаксический сахар же. Я охренел когда впервые увидел связку coffescript >chai> matcha
Hello, World! 🎄
Hello, World! 🎄
Hello, World! 🎄
Этот код я нашел в своем учебном заведении
Сергей
а что означают интовые word excel access
Hello, World! 🎄
А что не так?
Для зарплаты указано smallint
Igor