Обратная польская запись

Тема в разделе "WASM.BEGINNERS", создана пользователем assch, 4 сен 2021.

  1. Rel

    Rel Well-Known Member

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

    Делать не собираешься, но поорать, что все кругом - гaвно, обязан. Это, судя по всему, общая черта всех васмовских спецов.
     
  2. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    Rel,
    давайте этот пункт внесем в правила форума , узаконим то, что и так стало нормой :rtfm:
     
  3. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Вообще-то удобство отладки во всяких GDB обеспечивает отладочная информация, которая всего лишь связывает строчки исходного кода с инструкциями. Километровые портянки избыточного кода это "optimization for compilation time (default)", так в мане про -O0 сказано. У студии свои причуды, но загаживанием кода лишними инструкциями она не болеет. Подавляющее большинство вендовых программ из-под студии вышли, и если бы это было нормой в ней, даже не обратил бы внимания.
    Мой стиль акын - что вижу, про то и пою. Причин видеть в некоторых сортах гавна фиалки у меня нету.
     
  4. Rel

    Rel Well-Known Member

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

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
  6. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Bashforth
    В репе проекта указано, что 100 000 пустого цикла выполняется за 15с.
    в моём запуске - где то не больше 5-ти секунд. :)
     
  7. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    В продолжение темы гавнокомпилей. Установленный на свежую win11 devc++ отказался работать, выдав -1073741819 (C0000005). Копание в нем привело к самому обыкновенному переполнению буфера, которое венда зачем-то намеренно организовала g++.exe, накормив его хуком msvcrt.dll._access->acspecfc.dll._access. Самое занятное, что хук ничего не делает, только сам вызывает msvcrt.dll._access и садится в лужу не выравняв стек перед выходом. А причина установки этого хука - MajorOsVersion=4 и режим совместимости, которым майкрософт решили всё починить. И standalone-версия mingw с абсолютно той же проблемой. Понятно, что это козни БилаГейца и тайного правительства. Просто возник вопрос - я что один этим гавном пользуюсь? (виндой11 или гцц, нужное подчеркнуть).
     
    alex_dz нравится это.
  8. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    133
    Начиная с 10 венда в разнос пошла
     
  9. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Да последняя винда всегда такая. Просто воплей про "мне сломали мой драгоценный компиль, верните всё взад" че-то не слышно. Будто реально никому не надо.
     
  10. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    У меня MinGW работает нормально под 11 вендой, поставь версию поновее, может быть, не знаю, что там идет в пачке с devc++, но предполагаю, что этот ваш спецовый дедовский гуан из времен, когда динозавры были большими.
    --- Сообщение объединено, 16 фев 2024 ---
    Screenshot_2024-02-16-10-23-25-283_com.brave.browser-edit.jpg
     
  11. f13nd

    f13nd Well-Known Member

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

    ЗЫ: условие, при котором винда глумится над импортом msvcrt.dll, оказалось сложней, чем тупо проверка MajorOsVersion.
     
  12. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Кроме работоспособности на новых системах или вместе с ними мало чем отличается? Отключи или наоборот включи режимы совместимости. Да и потом, причем тут IDE? У тебя же компилятор фейлит, так? Поставь себе компилятор новый и используй старую IDE, не?
     
  13. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Ты такой вумный. "Режимы совместимости" выгдядят так:
    изображение_2024-02-16_180858203.png
    Если ты думаешь, что я где-то галки ставлю, чтобы такое происходило, то нет. ntdll.dll сама выбирает надо хук поставить или нет. aspecfc.dll содержит в себе профили для приложений, которым устанавливается режим совместимости:
    Хз откуда берет строку DEVC, но механизм какой-то очень замороченный. Сменив MajorOsVersion я видимо только отбил хеш файла и это помогло на какое-то время, также можно переместить файл в другое место. Но каким-то образом винда потом все равно понимает, что несчастное приложение надо поставить на костыли.
    --- Сообщение объединено, 16 фев 2024 ---
    ЗЫ: вероятно майкрософт не считают дедовское гуано совместимым только с ХР и готовы залечить пациента до смерти, лишь бы все было благолепно и совместимо.
     
  14. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Короче :censored:Винда полна загадок и неожиданных открытий. \windows\apppatch\sysmain.sdb это база данных, в которой можно крутить эти самые фиксы про совместимость. Галка в свойствах файла таки имеет отношение к этому механизму, но они действуют независимо. Ставить и снимать галку не помогает. Таки да, редактирование файла помогало, но видимо винда зацепившись за versioninfo основного приложения, притягивала фикс обратно к гцц. А mingw32-make это похеренная этим механизмом утилита из состава отдельной mingw и поэтому оно до кучи тоже не работало. Остается добавить только что эта суровая шняга начинается еще в ядре и на момент вызова LdrInitializeThunk в PEB уже есть флаг (=1), включающий act->apphelp->aspecfc.
    Код (Text):
    1. [[fs:[18]+30]+1e8]+210
    изображение_2024-02-17_010747666.png
     
  15. Kulesh

    Kulesh Member

    Публикаций:
    0
    Регистрация:
    16 фев 2024
    Сообщения:
    30
    Парни вы чё? Это же Windows