Please subscribe to the official Codeforces channel in Telegram via the link https://t.me/codeforces_official. ×

VladimirYakovlev's blog

By VladimirYakovlev, 10 years ago, In Russian

На Timus Online Judge обновлены компиляторы:

  • MinGW GCC 4.9.1

  • Clang 3.5

  • FreePascal 2.6.4

  • JDK 8.0

  • Scala 2.11.2

  • Python 2.7.8

  • Python 3.4.1

Некоторые изменения:

  • Благодаря компилятору Clang на Тимусе теперь поддерживается C++14.

  • Для всех новых компиляторов ненулевой код возврата решения теперь приведет к результату проверки Runtime error (non-zero exit code).

  • Вызов функции exit а Питоне больше не приведет к Runtime error.

  • В MinGW программы линкуются с libmsvcr110, а не с libmsvcrt, что, например, позволяет пользоваться спецификатором %lld, а не %I64d. Если интересно, как это настроить, спрашивайте.

  • Проблема с BigInteger.isProbablePrime в JDK теперь решается не как раньше. В JDK 8.0 этот метод перестал по-умолчанию зависеть от SecureRandom. Теперь isProbablePrime использует ThreadLocalRandom, который инициализируется исходя из MAC-адреса и текущего времени. Поскольку MAC-адрес на сервере никогда не меняется, а его определение требует доступа к опасным функциям, этот шаг инициализации ThreadLocalRandom был убран.

Подробнее в новостях на Тимусе.

UPD. Как в MinGW слинковать программу с libmsvcr110.

Создаем файл specs.msvcr110:

%rename cpp msvcrXX_cpp

%rename cc1plus msvcrXX_cc1plus

*cpp:
%(msvcrXX_cpp) -D__MSVCRT_VERSION__=0x1100

*cc1plus:
%(msvcrXX_cc1plus) -D__MSVCRT_VERSION__=0x1100

*libgcc:
-lmingw32 -lgcc -lgcc_eh -lstdc++ -lmoldname -lmingwex -lmsvcr110

В командную строку компилятора добавляем опцию -specs=specs.msvcr110.

  • Vote: I like it
  • +25
  • Vote: I do not like it