Крылатый
Anonymous
А если без него никак то как тогда?
Малвари что-ли разрабатываешь, раз без асма никуда?
Pepe 🐸
А если без него никак то как тогда?
Так в каких случаях никак? В экзотических архитектурах?
Крылатый
Если уж очень нужно, то да, чо нет-то? Но я бы предпочёл выносить такие вещи отдельно.
Stanislav
ARM не такой уж и экзотический...
ну такое, последний раз когад на арме надо было оптимизировать, пришлось только неон интринсики брать
Pepe 🐸
Малвари что-ли разрабатываешь, раз без асма никуда?
А почему в малварях без асм никуда?
Anonymous
А почему в малварях без асм никуда?
Раньше вообще почти все малвари на асме писались, дабы успешнее скрываться от антивирусов и иметь небольшой размер. Сейчас же малварщики настолько обленились, что есть даже поделия, тащащие за собой .NET Framework.
Evgenii
А почему в малварях без асм никуда?
без самомодифицируещего кода быстро отловят
Evgenii
И зачем делать двойную работу?
Потому что если компилятор узкое место не может соптимизировать, то либо делать работу, либо терпеть тормоза
Anonymous
Потому что если компилятор узкое место не может соптимизировать, то либо делать работу, либо терпеть тормоза
Под x86 такого скорее нет, чем есть. Под различные ARM, AARCH64 и прочие возможно.
Evgenii
И зачем делать двойную работу?
так-то можно все на питоне написать, зачем лишнюю работу делать
MrSmith
так-то можно все на питоне написать, зачем лишнюю работу делать
Не помнишь статью на хабре, где пасан компиллер писал, его еше упрекнул чувак про связывание или еше что-то что там вставка, и его спросили, а как ще то, и он посеялся. Ну и не забываем про линь кстати там это добро еше есть
Anonymous
Был у нас в конторе сотрудник, который любил на каждый чих ассемблерные вставки делать. В результате его код на review постоянно отправлялся на доработку, а он больно получал по рукам рельсой. Потом он исправился. 😊
Evgenii
либо запатчить компилятор ))
ну если там эвристика которая фейлится, то патч не тривиален
MrSmith
Та я просто не понимаю, почему на си писать для связки с питоном норм, а асм вставочки не норм, че там сложного то, помойму асм один из самых дружелюбных языков' - выучил команду и в бой
Anonymous
Если ты пишешь just for fun для себя - хоть весь проект пиши на асме, всем плевать.
Anonymous
Если же ты пишешь для организации, то такой код не пройдёт review и тебе отправят его назад на доработку, т.к. собрать его под другую архитетуру будет невозможно, а поддерживать сложнее написанного на тех же чистых крестах или сях.
Vladislav
Если ты пишешь just for fun для себя - хоть весь проект пиши на асме, всем плевать.
если ты пишешь кросплатформенный продукт, то использовать асм тебе придется. как для инициализации и low level абстракций, так и для оптимизаций/ускорений алгоритмов
MrSmith
Вставки на ассемблере - нулевая портируемость, плохая поддерживаемость.
А у скалы поддерживаемость прям вообще щик или у кода базы на крестах ага ага. Ну напиши си код поставь ifdef.
MrSmith
+1
Vladislav
про организацию - феерический бред :)
Vladislav
и как вендоры пилят дровишки и aes-ы под свое железо с такими правилами :)
Anonymous
Речь о прикладном ПО.
Anonymous
openssl прикладное
Это либа и её код - адское говно. А равно как и ffmpeg.
Vladislav
не на мейке и не на питоне
Крылатый
У людей проблемы с целеполаганием.
Vladislav
потом делай глубокомысленные заявления :)
Крылатый
Какой пиздец.
Vladislav
согласен
Anonymous
про организацию - феерический бред :)
К примеру возьмём Telegram Deskop. Написан на плюсах с использованием Qt. Кроссплатформенное ПО. Найди в нём ассемблерные вставки пожалуйста. Его код тоже лютое говно кстати.
Anonymous
телеграм десктопу асм не нужен
Ну вот, ты сам себе противоречишь. С логикой-то дружить надо.
Anonymous
если ты пишешь кросплатформенный продукт, то использовать асм тебе придется ^^ Я вижу тут противоречие.
Anonymous
☝️
Нет, это шаред-либа.
Vladislav
ну докажи, что там асм вреден
Anonymous
Vladislav
и не дергай из контекста, не позорься
Anonymous
Ясно. С вами, сэр, разговор окончен ибо не имеет смысла.
Vladislav
MrSmith
Конструктивно
Pepe 🐸
К примеру возьмём Telegram Deskop. Написан на плюсах с использованием Qt. Кроссплатформенное ПО. Найди в нём ассемблерные вставки пожалуйста. Его код тоже лютое говно кстати.
Код лютое говно это все таки не очень аргумент. К тому же исходят как правило из промышленных говностандартов для говнософта который очень важно поддерживать при высокой текучке низкоквалифицированных кадров
Stanislav
папку 3dparty не считаем
Stanislav
Кек в QT вставочки показать?
да и откуда им взяться, если visual C++ х86_64 не поддерживает инлайн асм
Дмитрий
MrSmith
ну покажи
https://github.com/qt/qt/blob/0a2f2382541424726168804be2c90b91381608c6/src/corelib/arch/qatomic_ia64.h
MrSmith
Anonymous
и?
Экзотическая архитектура.
Stanislav
давай посвежее возьмем
Stanislav
https://github.com/qt/qtbase/tree/dev/src/corelib/arch
Evgenii
давай посвежее возьмем
https://github.com/qt/qtbase/blob/dev/src/gui/painting/qdrawhelper_neon.cpp#L74
Stanislav
#ifdef __ARM_NEON__
Stanislav
дальше
Anonymous
Попробуй ещё разок. Снова промах.
Stanislav
кому то было лениво интринсики использовать
MrSmith
Для борьбы со сложностью, придумали инкапсуляцию, заверни в функцию и все, опиши сверху норм комментом, что и как, а так выходит, нельзя потому что мы так сказали, конечно asm уж слишком низкий уровень, но это не повод не юзать, потому, что не осилил
Stanislav
да, а у С++ слишком высокий уровень и накладные расходы, поэтому только С с асм вставками, только хардкор