Блог пользователя MikeMirzayanov

Автор MikeMirzayanov, 6 лет назад, По-русски

Привет!

В качестве допустимого компилятора на Codeforces и в систему Polygon добавлен язык C++17. В качестве компилятора используется 32-битный mingw64 версии 7.2.0 (позже будет обновлен, когда выйдут новые версии). Учитите, что мы используем патч от halyavin для ускорения ввода-вывода при использовании scanf/printf (подробнее можно прочитать здесь). Точный используемый дистрибутив можно установить на Windows из нашего пакетного менеджера PBOX по ссылке http://pbox.me/packages/mingw-w64-7

Точная используемая строка компиляции:

g++.exe -static -DONLINE_JUDGE -Wl,--stack=268435456 -O2 -std=c++17 -o %name%.exe %1 2>compilation.log

Удачных решений на С++17,
MikeMirzayanov

  • Проголосовать: нравится
  • +693
  • Проголосовать: не нравится

»
6 лет назад, # |
  Проголосовать: нравится -45 Проголосовать: не нравится

MikeMirzayanov Can you please add any music player to CF? I want switch Hurts' and "Time and Glass"' songs without switching to another tab or phone.

»
6 лет назад, # |
  Проголосовать: нравится +13 Проголосовать: не нравится

MikeMirzayanov today I faced a problem when I want to add problem from polygon to mashup contest, I can add an old problems but when I want to add a new problem the error Could not download problem descriptor is shown up, and I am create the package and add access read for codeforces in polygon. what is the problem?

»
6 лет назад, # |
  Проголосовать: нравится +14 Проголосовать: не нравится

Почему так упорно и настойчиво не добавляете Visual C++ 2017? Ну, или на крайняк 2013.

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    на нем решения быстрее

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится -31 Проголосовать: не нравится

    кто-то пишет на вижле?)

    • »
      »
      »
      6 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится

      А в чем проблемы от написания олимпиадных задач в вижуалке? Ничего лучше я не видел (CLion в данном контексте примерно равен VS)

      • »
        »
        »
        »
        6 лет назад, # ^ |
          Проголосовать: нравится -13 Проголосовать: не нравится

        CLion во много раз хуже вижака

        • »
          »
          »
          »
          »
          6 лет назад, # ^ |
            Проголосовать: нравится -10 Проголосовать: не нравится

          и чем же он хуже? тем, что настроить сложнее? или тем, что под винду не очень оптимизирован? опять же, я не очень понимаю фетиша, девать под виндой. Это же просто извращение))

          • »
            »
            »
            »
            »
            »
            6 лет назад, # ^ |
              Проголосовать: нравится +10 Проголосовать: не нравится

            Мне, например, очень нравится вижаковский отладчик. Ни один другой отладчик не сравнится с ним в скорости/удобстве.

      • »
        »
        »
        »
        6 лет назад, # ^ |
          Проголосовать: нравится -28 Проголосовать: не нравится

        Простите, может я не понимаю фетиша, но юзать вижуалку -- такое себе. Для сп хватает блоксов/subl/atom, которые можно настроить за пару минут, которые не так сильно грузят систему, и которые банально не перегружены кучей информации, которую вы НИКОГДА не будете использовать) CLion, примерно, из той же категории... Еще можно vim настроит, но это уже перебор)))

        • »
          »
          »
          »
          »
          6 лет назад, # ^ |
            Проголосовать: нравится -18 Проголосовать: не нравится

          Ну лично мне кодеблокс не нравится. Хуже внешний вид. Сильно хуже подсветка. Чуть сложнее со сборкой. И так далее. И настраивается VS за пару минут, даже на моем ноутбуке (3 Гб) работает вполне быстро.

          • »
            »
            »
            »
            »
            »
            6 лет назад, # ^ |
            Rev. 2   Проголосовать: нравится -15 Проголосовать: не нравится

            а вы пробовали атом/сублайм? я юзал вижуалку, и занятие не из приятных.

            UPD: Кодеблокс хз, под unix-подобные системы он завозится с 1000 и 1 багом... Особенно под мак ось. Но под виндой вполне нормально.

            • »
              »
              »
              »
              »
              »
              »
              6 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится

              Я использовал VSCode (по идее он похож на Атом), но мне вижуалка для плюсов нравится больше.

              • »
                »
                »
                »
                »
                »
                »
                »
                6 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится

                нуу, это не совсем то. А чем вижуалка лучше?

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  6 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится

                  Не нужно настраивать пути поиска хедэров для автодополнения

          • »
            »
            »
            »
            »
            »
            6 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится

            Попробуй sublime-text. Офигенный редактор, оптимизация, можно настроить под верблюда, комьюнити, мультиплатформенность

            • »
              »
              »
              »
              »
              »
              »
              6 лет назад, # ^ |
                Проголосовать: нравится +8 Проголосовать: не нравится

              Он платный, разве нет?

              • »
                »
                »
                »
                »
                »
                »
                »
                6 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится

                Нет. Там есть пожертвования, которые могу тебя долбать каждые 20 (или больше) сохранений. Да, это мешает, но не так сильно. Сам редактор остается лучшим

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  6 лет назад, # ^ |
                    Проголосовать: нравится +24 Проголосовать: не нравится

                  Sublime Text may be downloaded and evaluated for free, however a license must be purchased for continued use.

              • »
                »
                »
                »
                »
                »
                »
                »
                6 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится

                мы же все понимаем, какое большинство софта стоит у тебя на компе, тем более если ты юзаешь вин... А найти, гхм, кряк на сублайм занимает меньше 1й минуты)

    • »
      »
      »
      6 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Да. И таких людей гораздо больше, чем пишущих на Scala или Javascript, которые есть в списке языков.

    • »
      »
      »
      6 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      причем тут visual studio? Речь идет о компиляторе, а не об IDE/редакторе. Никто не запрещает писать код в sublime и компилировать его с помощью MSVC

      • »
        »
        »
        »
        6 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        вы сейчас серьезно?)

        • »
          »
          »
          »
          »
          6 лет назад, # ^ |
            Проголосовать: нравится +5 Проголосовать: не нравится

          а в чем проблема? Если, как все приличные программисты, пользоваться cmake или любой другой системой сборки, то единственное различие между MSVC и MinGW будет в необходимости один раз запустить vcvarsall.bat и задавать тип конфигурации debug/release на этапе компиляции

          • »
            »
            »
            »
            »
            »
            6 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится

            Вижуалка умеет в CMake. Конечно, странности есть (например нельзя просто так взять и перезапустить отладчик. Нужно остановить, а потом запустить), но в целом работает.

    • »
      »
      »
      6 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится

      Пишут, и очень многие.

      В контексте разработки под винду компилятор MSVC++ вместе со всеми его багами и фичами — стандарт де-факто. Если Вы решите собирать/портировать под винду какой-либо опенсорсный софт — делайте это на здоровье, собирайте его чем хотите (возможно, с правками исходников и/или сборочных скриптов). Другое дело, что если Вам потребуется работать с какой-либо из плюсовых (не сишных) библиотек, поставляемых в бинарном виде, то тут неизбежно полезут наружу все различия в ABI между разными компиляторами. А теперь догадайтесь с одного раза, чем будут собраны все эти бинарные библиотеки.

      Относительно юзания MSVC++ на контестах: в те годы, когда я участвовал в NEERC (2011-2013), на машинах участников были MSVC++ 2008 Express, Far и Eclipse (не помню, был ли в нем плагин CDT). Есть лютые фанаты текстовых редакторов — с ними понятно, чем они пользовались. А что с любителями IDE? Предагаете им использовать тогдашний забагованный Eclipse? Люди добрые, дайте этому диванному аналитику по рукам чем-нибудь...

      P.S. Вот, кстати, если я сейчас решу написать здесь контест — чем мне пользоваться? На работе я разрабатываю под винду с использованием VS 2015 Pro. Дома у меня стоит VS 2017 Community. Понятно, что код я буду писать в студии, но мне придется при использовании многих привычных на работе фич вспоминать: а входят ли они в ту часть стандарта тогда еще C++0x, которую майкрософты реализовали в VS 2010?

      • »
        »
        »
        »
        6 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        Все-таки, очень хочется получить ответ от администрации. MikeMirzayanov, почему так долго не обновляется компилятор Visual C++?

»
6 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

32-битный mingw64... Думаю, что проект было бы неплохо переименовать, например, в MinGW-Modern, что бы не было таких странностей)

»
6 лет назад, # |
  Проголосовать: нравится -13 Проголосовать: не нравится

Hope that user can use gif as the profile photo!

»
6 лет назад, # |
  Проголосовать: нравится +70 Проголосовать: не нравится

Why not a 64-bit compiler?

»
6 лет назад, # |
  Проголосовать: нравится -21 Проголосовать: не нравится

C++17 is way too old, waiting for C++20 support

»
6 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Is C++17 support __int128 ?

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +22 Проголосовать: не нравится

    It's not in standard and never was. It's an extension for 64-bit compiler (very fast 2-"digit" biginteger), so it won't be on Codeforces unless it begins to use 64-bit compiler. Reasons not to do this are described in this comment.

»
6 лет назад, # |
  Проголосовать: нравится +64 Проголосовать: не нравится

I always wonder why CF is based on 32-bit compiler. Does server run on 32bit cpu?

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +144 Проголосовать: не нравится

    No, it's so because of Kernel Patch Protection on 64-bit editions of Windows.

    As you know, Codeforces servers run machine code from untrusted sources. If you want to do this without compromising system security, you need to establish a sandboxed environment. There are many different ways to achieve this, the most obvious one is virtualization. But it's really expensive to restart a virtual machine each time when a new test is run. So, here comes another method of sandboxing: system call interception. By using it, you can intercept dangerous system calls, such as ExitWindowsEx or OpenFile and terminate the running solution due to security violation. This is done by loading a kernel-mode driver and patching the system call table. But KPP prevents this. That's why 32-bit versions of Windows are used for implementing such sandboxes.

»
6 лет назад, # |
  Проголосовать: нравится +19 Проголосовать: не нравится

Looks like christmas came early this year!!!!

»
6 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Are there any new features that are useful for compeititons as well?