Забавные новости 0й-Ti :)

Тема в разделе "WASM.HEAP", создана пользователем UbIvItS, 18 июн 2018.

Статус темы:
Закрыта.
  1. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Ну, я не знаю, причем тут я, но в целом я согласен. Но нужно понимать, что ассемблер утыкается в набор машинных инструкций, а не в комфортность и красоту их написания, для примерно этого во многих ассемблерах есть макросы, да и никто не мешает сделать из любого приятного глазу синтаксиса сделать компилятор в ассемблер.
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
  3. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    В общем, юзать модные молодежные современные компили не нужно, они говнокод генерят. Ясно, понятно.
     
  4. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.460
    Адрес:
    Россия, Нижний Новгород
    Раз уж начали про UB, попробуйте угадать, что выдаст эта программа:
    Код (C++):
    1. #include <cstdio>
    2.  
    3. int func(int* ptr)
    4. {
    5.     const int value = *ptr;
    6.     if (ptr == nullptr)
    7.     {
    8.         printf("ptr == 0\n");
    9.         return value;
    10.     }
    11.  
    12.     printf("ptr != 0\n");
    13.     return value;
    14. }
    15.  
    16. int main()
    17. {
    18.     func(nullptr);
    19.     return 0;
    20. }
    Возможные варианты:
    • Упадёт
    • Напишет ptr == 0
    • Напишет ptr != 0

    Независимо от того, что вы предположили, вы угадали: в зависимости от компилятора, оптимизаций и настроек компиляции возможны все три варианта.

    https://godbolt.org/z/ccPE9Grda

    Этот UB вносит компилятор и от языка не зависит (например, воспроизводится и в расте, в зависимости от уровня оптимизаций).
     
  5. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Что тут гадать? Если она не упадет, то этот компиль удаляется и юзается тот, который будет генерить то, что от него требуется, а не отсебятину. Обколются своими клангами, а потом возмущаются, когда у них бесконечные циклы из кода пропадают.
     
  6. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.460
    Адрес:
    Россия, Нижний Новгород
    Тогда придётся выбросить и msvc, и gcc, и clang, потому что во всех трёх возможны варианты, когда не падает.
     
  7. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Ну, придется, так придется. Делов то. Есть компили, которые делали до эпохи малолетних говнокодеров на петоне по туторам на ютубе. В них невозможны варианты, когда не упадет.
     
  8. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Ну допустим, но в них все твои циклы будут на 2 процента медленнее, тк в них будет хуже оптимизация. А ты же знаешь, что 2 процента - это уже негодно для рилтайма.
     
  9. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Мои не будут. У меня же там нет пирамиды "зеро-кост" абстракций. Практически каждая строка транслируется в одну-две машинные инструкции, особо оптимизировать и нечего.
     
  10. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    К сожалению, будут, тем самым ты уподобишься ржавым пориджам, еще одного спеца потеряли, эх... А самое обидное в том, что те компиляторы, которые возводят UB в абсолют, на самом то деле правы с точки зрения стандарта языка. С твоей точки зрения стандарт и сам язык не верный, а не новомодные компиляторы. Ты по сути предал то, во что верил, это печально...
     
  11. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330


    А все потому, что у Ржавого на 2 процента циклы медленнее, почему об этом все молчат?!
     
  12. CaptainObvious

    CaptainObvious Member

    Публикаций:
    1
    Регистрация:
    18 янв 2024
    Сообщения:
    87
    [​IMG]
     
    UbIvItS нравится это.
  13. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    они сишный код на препроцессоре ржаки выдают за ржачный... нарушают, редиски, ПАРАДИГМУ :laugh1::laugh2::laugh3:
    просто не надо выдумывать сферического коня в вакууме и всё будет получше. на обычных компах в большинстве случаев самыми быстрыми оказываются однопоточки. а если делаешь многопоточку, делай ключ для задания кол-ва потоков и таким дикобразом получаешь предельную адаптивность.. асинки - совсем из разряда клинического идиотизма: ожидание и исполнение чётко прописывается на потоках (желательно именованных) :)
     
  14. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Чувачок преисполнился циклами, но как-то забыл сказать, какие циклы на 2 процента медленнее каких:
     
  15. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    короче, Ты не фига не догнал == речь шла о вложенных циклах и глубине вложенности :grin:
     
  16. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Вложенность - это, конечно, вложенность, но и два процента - это целых два процента.
     
    CaptainObvious нравится это.
  17. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    давай уж тадЫ поконкретней: время исполнения цикла растёт по экспоненте с глубиной его вложенности. Иль Ты на эту тему поспорить хочешь? :)
     
  18. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Но вот в Хаскелле, например, нет циклов, так что вроде бы нечему быть на 2 процента медленнее, но есть рекурсия, которая часто разворачивается компилятором в цикл, остается только развернуть рекурсию в рекурсии, чтобы получить экспоненту, или два процента в зависимости от глубин вложенности.
    --- Сообщение объединено, 13 фев 2024 ---
    Вы говорите, мол Ржавый то, Ржавый сё, а бабуля Ада готова ему фору дать в некоторых моментах (как минимум в формальной верификации кода):
     
  19. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.241
    как ОНО всЁ лукаво :)
     
  20. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.330
    Клятые рептилоиды из своих белых домов вещают, что будущее должно быть "безопасным по памяти", но мы то знаем, что это всё заговор ржавых и петухоновских пориджей, которые хотят убить православные языки программирования: https://www.whitehouse.gov/oncd/briefing-room/2024/02/26/press-release-technical-report/
     
Статус темы:
Закрыта.