Windows XP mod 2022 (новости, перспективы, общение)

Тема в разделе "WASM.HEAP", создана пользователем xpmod21, 23 янв 2022.

Метки:
Статус темы:
Закрыта.
  1. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Про что вы спорите? Пингвинятники уже давно создали совершенный компилер, который умеет быстро, качественно и дёшево одновременно:
    изображение_2022-02-25_222730.png
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Да-да, мелкомягкие уже давно не тащат против GCC и LLVM.
     
  3. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Уже кстати показывал, что -O3 нифига не лучшая оптимизация длины кода, даже тупо на уровне выбора единичной инструкции.
     
  4. Artem_N

    Artem_N Artem N

    Публикаций:
    0
    Регистрация:
    1 мар 2009
    Сообщения:
    74
    И как же это можно сделать в реалиях x86? Понимаю, что вопрос в пустоту, но так, для порядку.

    Вопрос со звёздочкой: какая архитектура позволяет генерить код и по размеру и по производительности одновременно?
    Вопрос с двумя звёздочками: если все инженеры тупые и не понимают, то нужно им как бы объяснить, что не дело это - оставлять в системе команд жЫрные и тормозные опкоды.
    Вопрос с тремя звёздочками: ты хоть понимаешь чем размер кода отличается от производительного?! Чтобы два раза не вставать: во времена бытовых компов приходилось разворачивать циклы...
     
  5. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Там еще есть -Os (а для самых маргиналов -Oz), который можно сочетать с -O3, чтобы окончательно сбить с толку вендузятников. И не забывайте про -flto, почему все всегда забывают про -flto?
     
  6. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    В основном выключает различные выравнивания судя по описанию, не похоже чтобы этот ключ подключал секретную опцию, с которой компилер выбирает inc reg вместо add reg,1.
     
  7. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Забавно, что:
    Код (C):
    1.  
    2. int inc(int one) {
    3.     return one + 1;
    4. }
    5.  
    с любой из оптимизаций генерирует:
    Код (ASM):
    1.  
    2. inc:
    3.     lea eax, [rdi+1]
    4.     ret
    5.  
    как и студия:
    Код (ASM):
    1.  
    2. one$ = 8
    3. inc PROC ; COMDAT
    4.     lea eax, DWORD PTR [rcx+1]
    5.     ret 0
    6. inc ENDP
    7.  
     
  8. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    А што в этом забавного? Что не rcx использует под первый аргумент с дефолтным calling convention?
     
  9. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Да, не понятно, почему RDI, а не RCX. Ну и просто использование инструкции LEA для "инкремента" аргумента 32-битного инта и запихивания его в EAX.
     
  10. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Ну так лучшие же умы трудились над компилером, их пути неисповедимы. Укажи __stdcall может по-человечески начнет генерировать. Здесь не только инкремент, но и пересылка в другой регистр, тут lea уместна.
     
  11. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Эмм, не начнет, X64 же, он просто проигнорирует просьбу сделать stdcall функцию по идее.
     
  12. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    https://gitlab.com/x86-psABIs/x86-64-ABI
    изображение_2022-02-26_001541.png
    Вобщем у пингвинятников своя атмосфера и своё видение. У них аргументы принято передавать в rdi,rsi,rdx,rcx,r8 и r9, в таком порядке.
     
  13. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Ну это все объясняет. Не то, чтобы в этом было что-то плохое, как бы другая система имеет право быть другой, просто это удивило немного.
     
  14. xpmod21

    xpmod21 Забанен

    Публикаций:
    0
    Регистрация:
    30 май 2021
    Сообщения:
    128
    Смысл обсуждать тонкости реализации какого-то компилятора. Лучший показатель - это современные программы, собранные в современных пакетах - огромные размеры, медленная работа, элементарные программы требуют огромный ресурс. Это всё неоправданно, это всё говнокод.
     
  15. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Смысл обсуждать психологию, меньшинства, маргиналов любителей хр и тому подобное на форуме программистов? Но почему-то же это все тут обсуждается.
    --- Сообщение объединено, 26 фев 2022 ---
     
    Mikl___ нравится это.
  16. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    А элементарные - это какие?
     
    Mikl___ нравится это.
  17. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Вангую, что в списке будет браузер, который уже давно не элементарная программа (хотя браузер состоит из элементов, но ТС скорее всего под элементарным имел ввиду простая, а не состоящая из элементов). Там столько технологий напихано, которые должны беспрекословно следовать стандартам. Один JIT-компилятор чего стоит там, очень комплексный модуль, не говоря уже об отрисовке всяких сложных декларативных штук, типа HTML5, SVG, CSS3 или WebGL.
     
  18. xpmod21

    xpmod21 Забанен

    Публикаций:
    0
    Регистрация:
    30 май 2021
    Сообщения:
    128
    Возьми новый Блокнот, посмотри размер и учти сколько файлов он ещё использует, кроме самого ехе-шника. Запусти старый в новой системе и наоборот. Почувствуй разницу.
     
  19. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    изображение_2022-02-26_185231.png
    Ну запустил. Вшивые 860кб, набор библиотек заурядный, я бы даже сказал куцый. С 16Гб оперативной памяти могу позволить себе запустить примерно 17179869184/880640=19508 копий блокнота без выгрузки в своп-файл. Из-за десятка-двух килобайт мне обосраться и не жить теперь?
     
    Rel нравится это.
  20. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.455
    Адрес:
    Россия, Нижний Новгород
    В Win11 пофиксили:


    upload_2022-2-26_19-38-28.png
     
Статус темы:
Закрыта.