Pavel
это треккер торрентов - им некогда менять в сайте ) div -они от блокировок бегают.
Pavel
за год ничего не меняли в структуре
Pavel
вот добавление нового - это да плюс
Tverd
Кто хочет заработать? Люди готовы платить за биндинги к Godot I'll donate $1000 if someone has a working and fully documented binding for Lua.
Tverd
https://godotdevelopers.org/forum/discussion/18552/if-someone-make-a-binding-to-luajit-for-godot-i-throw-a-lot-of-dollars-to-his-face
Elias
Это довольно немного для такого проекта, на самом деле. Особенно учитывая то, что он просит полную документацию, ага 😂
Tverd
Дык никто и не говорит что этого на всю жизнь хватит ))))) Подзаработать )
Tverd
К тому же реализованы биндинги к питону и ниму, думаю что не сильно сложно это реализовать для луа
Elias
Возможно 🤔 Самое страшное - возьмешься за это, а какой-нибудь индус или китаец за пару недель напишут...
Snusmumriken
Хех, неплохо. И на самом деле не очень сложно, просто очень муторно.
Elias
Ага, вот то, что это займет очень много времени отталкивает в первую очередь.
Vitaly
Привет! Может кто ткнуть на алгоритм для deep merge двух таблиц?
Anonymous
Заипало это навязывание яндекс-браузера. ФСБшный проект какой-то
Georgy
попробуй Кок-Кок
mihacooper [МСК -2]
Заипало это навязывание яндекс-браузера. ФСБшный проект какой-то
cадись на Tor браузер и используй DuckDuckGo поиск)
Elias
Скачивай страницы через wget и читай в emacs
Anonymous
Скачивай страницы через wget и читай в emacs
Я таких матюков даже не знаю, если честно ))
Elias
😂😂 Референс к тому, что Столлман как-то писал, что он так делает.
Aiwan \ (•◡•) / _bot
Snusmumriken
Тебе на pure-lua или ты можешь написать ffi-биндинг?
Snusmumriken
Блин, на самом деле где-то болтался, но глубоко закопан: копипастил код пачками, смотрел что работает.
Roman
А насколько дорого пересечение ffi?
Snusmumriken
Цена - отрицательна. Нужно только иметь нужную виртуальную машину/расширение.
Roman
Цена - отрицательна. Нужно только иметь нужную виртуальную машину/расширение.
я когда читал про luajit/ffi, там писалось что оно небесплатно
Snusmumriken
Колбеки - небесплатные и довольно медленные, но тебе их надо использовать раз в тыщу лет под очень специфические вещи.
Roman
мои наблюдения в pypy говорят о том же: 40ns vs 53ns на вызов ф-ии
Snusmumriken
Хмм. Лады.
Snusmumriken
Колбеки? Ты знаешь что это в данном контексте?
Snusmumriken
Это вызов lua-функций на сишной стороне. Типа знаешь? Передаёшь в сишную функцию указатель на луа-функцию, и она там типа дёргается с некоторой периодичностью. С какой частотой тебе нужно такое?
Snusmumriken
Вот именно.
Snusmumriken
Инициализация структур например.
Snusmumriken
Вызов функций чуть сложнее, потому что разные функции сами по себе с разной скоростью работают, ща подберу что-нибудь.
Snusmumriken
Второй варик, но он не очень корректен из-за медленности вывода в консоль.
Snusmumriken
Но в общем, суть ясна, надеюсь? Вызов сишной функции вообще не даёт оверхеда, инфа сотка. Функции стандартной библиотеки вызываются аналогичным образом. Все table.insert и print - это сишные функции. Ffi делает биндинг других сишных функций (какие ты хочешь) в себя. А вот сам по себе, сишный код быстрее, особенно на всяких deflate и прочих простых работах с буферами, поэтому цена - отрицательна. Луа, при работе со строками, создаёт кучу новых строк в строковом буфере, строки в луа - иммутабельны. А вот в сишке - простые массивы которые можно спокойно читать/изменять по одному символу. Прирост скорости чудовищный. Миллионы вызовов в секунду? За милую душу. http://luajit.org/ext_ffi.html
Roman
итого 2.0384938716888 0.34296894073486
Snusmumriken
Ты написал libadd? : )
Roman
Ты написал libadd? : )
yep. и все что она делает - складывает 2 числа )
Snusmumriken
Боюсь что такая разница как раз за счёт бешеной оптимизации luajit. Оно трассирует байткод на разогреве, а сишные функции хреново трассируются, и всё равно разница небольшая. Попробуй меньше раз вызвать, где-то 20к раз, чтобы не успело разогреться ))) Как альтернатива - впихни туда работу со строками/таблицами.
Snusmumriken
Ты бы почитал хотя бы как оно работает, всяко знать больше будешь. Лучше - в сурцы загляни.
Snusmumriken
P.S. Ты в сишные функции собрался пихать одно действие или сразу пачку? Попробуй найти любой pure-lua-deflate и сравнить разницу с биндингом. В биндинге будет прирост в пару сотен раз минимум даже внутри самого luajit.
Group Butler [beta]
Hi کوثر!
Roman
P.S. Ты в сишные функции собрался пихать одно действие или сразу пачку? Попробуй найти любой pure-lua-deflate и сравнить разницу с биндингом. В биндинге будет прирост в пару сотен раз минимум даже внутри самого luajit.
у меня в приложение прилетает большой кусок shared memory в котором лежат сишные структуры. внутри этих структур есть указатели на другие структуры итп. фактически, там кольцевой буфер по которому мой код должен бегать
Snusmumriken
И чего? Какие-то проблемы?
Vsevolod
Вызов функции через ffi делается за 10 нс, если там нет char* -> lua string
Vsevolod
Без ffi - сотка
Vsevolod
То есть, для каждого типа данных могут быть свои расходы
Vsevolod
Userdata через стандартный plain lua - это очень дорого: взять метатаблицу, извлечь заданное поле, сравнить стррки
Vsevolod
Ад и Израиль, блин
Roman
Вызов функции через ffi делается за 10 нс, если там нет char* -> lua string
Ну где-то около той разницы что я намерил в pypy: 40ns vs 53ns
Snusmumriken
Ох. Вы понимаете что есть ещё время, которое сама функция (луёвая или сишная) тратит на исполнение себя? В идеале, стоит сделать несколько вариантов: 1. Тест чисто сишной функции 2. Тест чисто луёвой функции, которая делает то же самое 3. Тест вызова сишки из луёв И всё это, в идеале, без luajit и с ним. Но сложная работа с буферами со стороны сишки всё равно гораздо быстрее чем ковырять их на луа-стороне, оверхед на конвертацию из/в lua-string ничтожна в сравнении с этим.
Roman
итого 2.0384938716888 0.34296894073486
Я уже показывал цифры. Не имеет значения пустой вызов это или сложение чисел. Цифры те же
Group Butler [beta]
Hi Saracen!
Vsevolod
Мне тут стало интересно, насколько вариант с n раз lua_pcall хуже, чем если эти n вызовов зачейнить прямо в lua
Vsevolod
Проверю на днях
Group Butler [beta]
Hi Анатолий!
Group Butler [beta]
Hi Ivan!
Group Butler [beta]
Hi @⁠kiss24bot!
Snusmumriken
Чего-чего?
Snusmumriken
Чего-чего-чего?
vvzvlad
X)
Snusmumriken
По крайней мере честно, знаете ли.
Anonymous
Я попробовал сейчас воспользоваться. Это не бот, а человек
Anonymous
Ссылку на бота даёт
Snusmumriken
Боты сейчас разные бывают. Так как боты не могут самостоятельно присоединяться к чатам, особые кулхацкеры обманывают телегу, и делают ботов из клиентов телеграмма.
Anonymous
Я с ним общался, там реально человек)
Snusmumriken
Аналогично работают всякие прокси, например связки "скайп + телега" или "discord/slak + телега". Для них нужно резервировать номер мобильного и всячески симулировать человеческую активность, но он всё равно может быть ботом. Воу, на самом деле это мало что значит. Сейчас - человек, когда человек не может отвечать - отвечает бот.
Anonymous
А так, хорошая мысль - сделать бота в attended режиме, на сложные вопросы - вручную отвечать
Anonymous
Snusmumriken
api клиентов тележки легко выковыривается из apk. И ничего они с этим не сделают, java-smali никак не защитить, разве что обфускацией :<
Vsevolod
а что с этим сделать?
Vsevolod
там же все равно тель-афон нужен
Snusmumriken
Человеко-бота. Номер телефона - фигня. Покупаешь пучок симок за пятачок в переходе у Ашота.
Anonymous
У них возможно даже сорцы апк где то валяются
Anonymous
Телеграм же открытая софтина, кажется
Snusmumriken
Не совсем.
Saphire
Не совсем.
Ноуп же?