169 похожих чатов

Поч компиляторы плохи? не любят си, но в чем проблема

компилятора никто не пишет

83 ответов

13 просмотров

Хз, для меня лично Си как язык крайне неудобен

Callous-Therefore Автор вопроса
The Bird of Hermes
Хз, для меня лично Си как язык крайне неудобен

мне удобно писать на нем, вот только я не понимаю хейта в его сторону

Callous-Therefore Автор вопроса
The Bird of Hermes
ООПа нет -> в топку

в основном хейт про компиляторы

Callous Therefore
в основном хейт про компиляторы

Ну а компилятор... Компилятор пихает в бинарник всякое

Callous Therefore
мне удобно писать на нем, вот только я не понимаю ...

Тебе ответили аргументированно, ты сказал "мне удобно, я не понимаю". Так это твои проблемы, что не понимаешь. Нравится - пиши. Как тебе чужой человек объяснит твоё непонимание?

Callous-Therefore Автор вопроса
КТ315
Тебе ответили аргументированно, ты сказал "мне удо...

почему не любят компилятор, я не особо шарю как он переводит в ассемблерный код(алгоритмы оптимизации и т.п), поэтому и спросил

Callous-Therefore Автор вопроса
Callous-Therefore Автор вопроса
КТ315
И что?

я и спросил почему

Callous Therefore
я и спросил почему

Я и отвечаю - потому что.

Callous-Therefore Автор вопроса

нормальные компиляторы, главное у людей с расстройствами ничего не проси

Callous Therefore
почему не любят компилятор, я не особо шарю как он...

если они пропускают UB код или что-то в таком духе, то это не делает их плохими. задумка самого языка такая, где разработчику все дозволено. хочешь писать более безопасный код? есть плюсы или всякие анализаторы. а про бинарники бред, там никакого мусора нет.

ödemarkens son
если они пропускают UB код или что-то в таком духе...

А почему же тогда хелловорлд на сях в разы больше ассемблерного?)

The Bird of Hermes
А почему же тогда хелловорлд на сях в разы больше ...

ХВ на фасм 2кб. ХВ на С, ну килобайт 5. за то на С экзешник лучше структурирован, и эти ХВ и пару килобайт в 2024 - бред. найди что-то получше чем ХВ для сравнения, ибо считать байтики смешно как-то

Callous Therefore
мне удобно писать на нем, вот только я не понимаю ...

Итак, ты поднял конфликт в чате. Кто будет отвечать?

КТ315
Итак, ты поднял конфликт в чате. Кто будет отвечат...

Да не конфликт это, просто очередной виток старого доброго спора на тему асм против си

ödemarkens son
ХВ на фасм 2кб. ХВ на С, ну килобайт 5. за то на С...

И на Си я не видел хелловорлдов прям на 5 килобайт)

The Bird of Hermes
Да не конфликт это, просто очередной виток старого...

Эта тема 5 лет уже шелушится, меня она лично задолбала.

The Bird of Hermes
И на Си я не видел хелловорлдов прям на 5 килобайт...

Потому что полтора. tcc hello.c, пример в комплекте.

у тебя устройство, на котором ты сейчас пишешь, держится на легаси коде С. ну, будь бы язык такой плох, у тебя ОС давно еще упал бы. я не помню каких-то новостей, чтобы корпорации теряли миллионы из-за этого языка. все работает (даже с UB), все держится, вопросы?

s54820
Потому что полтора. tcc hello.c, пример в комплект...

Отлично, получили наконец-то 1 килобайт ассемблерного кода. Правда компилятор оптимизирует намного хуже gcc, но кого волнует. Наконец-то догоним ассемблер.

s54820
Потому что полтора. tcc hello.c, пример в комплект...

А ещё не полтора. Всего-лишь в ... 2400 раз больше FASM'а, но да. Загадили оптимизацию, в размер не осилили, но круто, круто!

КТ315
Да, в байтах.

А, забавно, я вообще говорил про размер экзешника🤣

The Bird of Hermes
А, забавно, я вообще говорил про размер экзешника🤣

Ну, а это elf'ы, потому что там интереснее. В Windows tcc может быть и осилил в полтора байта, а в Linux всё, сдулось.

КТ315
Отлично, получили наконец-то 1 килобайт ассемблерн...

Он вообще не оптимизирует, в этом его смысл. То же самое можно сделать с MSVC, который уже оптимизирует. cl /MD hello.c 8к.

КТ315
Ну, а это elf'ы, потому что там интереснее. В Win...

Опять транзистор сравнивает разные вещи с гордым видом. У тебя сисколлы, у тцц либц. Напиши на Си с сисколлами, будет столько же.

s54820
Он вообще не оптимизирует, в этом его смысл. То же...

gcc оптимизирует хуже clang, clang иногда тоже выдаёт ересь. Оба ни в размер, ни в скорость. И тут такой брутальный tcc, в размер, но вообще как бревно по скорости. А потом MSVC такой, и хуже по оптимизации, чем clang. Я требую БОЛЬШЕ компиляторов!

КТ315
gcc оптимизирует хуже clang, clang иногда тоже выд...

Хочешь маленький размер, попробуй SCC

КТ315
Он тоже не оптимизирует?

Не, ну что-то оптимизирует (типа деления на константу), но очень немного.

Денис Rabbit
Не, ну что-то оптимизирует (типа деления на конста...

Ну, то есть это просто PureBasic, который будет генерировать код, который даже новичок лучше напишет. Шикарное решение, надеюсь ты это будешь использовать в своих проектах, ну чтоб помедленнее было.

КТ315
Ну, то есть это просто PureBasic, который будет ге...

Я использую в своих проектах, чтобы побыстрее было. Мне во время разработки нужны не оптимизации, а скорость сборки.

s54820
Я использую в своих проектах, чтобы побыстрее было...

Так я не понял, а что-то нормально заточенное у Сишников есть? Одни костыли по итогу. Ни в размер, ни в скорость. Даже ни в скорость компиляции, потому что FASM быстрее компилирует. Когда Сишники уже объединят clang какой-то с tcc, и сделают адекватный компилятор?

КТ315
Так я не понял, а что-то нормально заточенное у Си...

Кста, а у тебя с моими макросами быстро компилировалось?

КТ315
Так я не понял, а что-то нормально заточенное у Си...

Это называется инструмент под задачу. Мне не нужен объединённый clang с tcc. У меня есть clang, есть tcc. Я их оба использую. Они оба адекватные. Ну ладно, tcc чуть менее ок, потому что полтора живых разработчика.

The Bird of Hermes
Кста, а у тебя с моими макросами быстро компилиров...

1 секунда на: 1) твои макросы 2) 2 директивы file в сумме на 4 мегабайта 3) макрос шифрования кода на этапе компиляции 4) сам код

s54820
Это называется инструмент под задачу. Мне не нужен...

Клиенту надо маленький размер и отличная оптимизация. Что делать? Clang, или tcc?

КТ315
Клиенту надо маленький размер и отличная оптимизац...

Этот клиент сейчас рядом с тобой в одной комнате? Ни разу в жизни никто не просил у меня маленький размер. Никогда. Всем абсолютно пофигу, сколько весит программа, пока она работает. Скорость иногда имеет значение (иногда, не для хелловорлдов, не для морд, которые апи дёргают и ничего не считают), и часто именно размер помогает тебе этой скорости добиться. И на него всё равно никто не смотрит.

s54820
Этот клиент сейчас рядом с тобой в одной комнате? ...

Ну и пофиг тогда. А меня клиент никогда не просил писать на С. Я пишу на ассемблере, и клиенту вообще пофиг, цена от этого никак не меняется.

Ладно, но все равно больше чем 1 килобайт)

Всё ещё больше ассемблера. Не угонится, не осилит. Не создан ещё такой С компилятор, который бы выиграл ассемблер по размеру. Машина тупее человека, была и будет.

КТ315
Ну и пофиг тогда. А меня клиент никогда не просил ...

А меня просили писать и на C89 обязательно (хотя C11 уже был), и на C++ разных, и на новых и старых питонах до какой-то версии или от какой-то версии. Конечно, если ты делаешь одноразовый тул, и исходник никому не нужен, никто на язык не смотрит. Если это кусок функциональности или будет развиваться — всё просят, и за кодстайл ругают.

The Bird of Hermes
Ладно, но все равно больше чем 1 килобайт)

где может примениться 1 кБ проги в данных услловиях?

Aiwan \ (•◡•) / _bot
где может примениться 1 кБ проги в данных услловия...

Нигде, ты же сам такой скинул. Скинь что-то очень большое на tcc, а мы это перепишем на ассемблер, получится меньше в 2 раза.

КТ315
Нигде, ты же сам такой скинул. Скинь что-то очень ...

Конечно получится. Оно вообще не оптимизирует. Даже простые вещи. Не пытается даже. Ты лучше иди fftw обгони. И чтобы поменьше получилось, вот тогда будет повод хвастаться.

Потому что это стартовая точка, не? Старт у FASM от 1 килобайт, у tcc - 2. Пишем большой проект, получаем у тсс около 60 килобайт, у FASM - 40-50.

КТ315
Потому что это стартовая точка, не? Старт у FASM ...

ок, если два раза вызову хелловорд в 1 коде размер увеличится в 2 раза?

КТ315
Потому что это стартовая точка, не? Старт у FASM ...

Нет, это не так работает. Это 1+n и 2+n соответственно. Математика, понимаешь.

s54820
Конечно получится. Оно вообще не оптимизирует. Даж...

Что такое fftw? Снова кто-то компилятор написал? Плодятся как кролики.

s54820
Нет, это не так работает. Это 1+n и 2+n соответств...

Ты тоже неправильно посчитаешь. Надо на реальных условиях проверять, как я предложил. А я по опыту знаю, что будет разница в 10-20 килобайт, если у тсс - 60. Опыт, а не математика!

s54820
https://www.fftw.org/

Да там одни асмовставки небось.

КТ315
Да там одни асмовставки небось.

Асм там конечно есть. И мегабайты кода тоже.

s54820
Асм там конечно есть. И мегабайты кода тоже.

Так не интересно, это не Сишный код, это асмосишный. И разработчики когда это писали, были вынуждены в слезах учить ассемблер, чтобы писать нормальный код на С. Давай что-то полностью чисто Сишное!

КТ315
Так не интересно, это не Сишный код, это асмосишны...

Как только ты напишешь что-то, что не использует сишный код, так сразу.

s54820
Как только ты напишешь что-то, что не использует с...

Я не использую Сишный код. Я использую какие-то байты инструкции, которые были скомпилированы кем-то каким-то msvc... Не знаю, что это язык.

КТ315
Я не использую Сишный код. Я использую какие-то ба...

Но при этом интринсики почему-то ассемблер.

s54820
Но при этом интринсики почему-то ассемблер.

Ну, по обратной аналогии Сишник использует ассемблерную инструкцию. Как если бы я использовал Сишный .с код. Логично?

КТ315
Ну, по обратной аналогии Сишник использует ассембл...

Нет. Интринсик — это такая специальная функция. Она не на ассемблере, ты её не видишь, но она где-то есть. Это просто байтики, которые компилятор включает в объектник. Это могут быть байтики одной инструкции или нескольких. Никто не знает. Инструкций не существует, существует функция.

ödemarkens son
ХВ на фасм 2кб. ХВ на С, ну килобайт 5. за то на С...

Я не понимаю, почему это вообще проблема. Если мы говорим про большие проекты, то константа на размер ничтожна, если про хелловороды, то какая разница, один килобайт или сто?

Joshua Jakowlew
Я не понимаю, почему это вообще проблема. Если мы ...

я про это и говорю, сейчас время, когда десятки гб вообще ни о чем

ödemarkens son
я про это и говорю, сейчас время, когда десятки гб...

Причем здесь десятки гб? Речь идет о килобайтах. Когда оператива измеряется в гигабайтах, а разме диска в сотнях гигабайт, то разница в ресурсах даже на порядки ничего не значит. Будет процес потреблять 2мб озу или 20 - какая разница?

КТ315
Так не интересно, это не Сишный код, это асмосишны...

Так сразу, как только сишка начинает использовать асмовставку, ломается переносимость)

Ну я говорил про ограниченно возможную переносимость

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта