Привет!
В качестве допустимого компилятора на 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
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.
Also a porn collection, please. Could help with hard problems (ahem).
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?
Are you sure you have provided an access to the problem for "codeforces" user?
Yes
I need more details. Please, send me a message with ids of the problem in Polygon and your mashup id. Thanks.
Fixed now. Thanks.
Thank you the problem solved
but now its give judgment faild when i submit code to the problems in codeforces
I am having the same problem. The problems i create always fail to judge submissions.
I am also facing the same problem. Judgement failed.
Fixed too.
Thank you so much
Почему так упорно и настойчиво не добавляете Visual C++ 2017? Ну, или на крайняк 2013.
на нем решения быстрее
Вообще не аргумент
кто-то пишет на вижле?)
А в чем проблемы от написания олимпиадных задач в вижуалке? Ничего лучше я не видел (CLion в данном контексте примерно равен VS)
CLion во много раз хуже вижака
и чем же он хуже? тем, что настроить сложнее? или тем, что под винду не очень оптимизирован? опять же, я не очень понимаю фетиша, девать под виндой. Это же просто извращение))
Мне, например, очень нравится вижаковский отладчик. Ни один другой отладчик не сравнится с ним в скорости/удобстве.
Простите, может я не понимаю фетиша, но юзать вижуалку -- такое себе. Для сп хватает блоксов/subl/atom, которые можно настроить за пару минут, которые не так сильно грузят систему, и которые банально не перегружены кучей информации, которую вы НИКОГДА не будете использовать) CLion, примерно, из той же категории... Еще можно vim настроит, но это уже перебор)))
Ну лично мне кодеблокс не нравится. Хуже внешний вид. Сильно хуже подсветка. Чуть сложнее со сборкой. И так далее. И настраивается VS за пару минут, даже на моем ноутбуке (3 Гб) работает вполне быстро.
а вы пробовали атом/сублайм? я юзал вижуалку, и занятие не из приятных.
UPD: Кодеблокс хз, под unix-подобные системы он завозится с 1000 и 1 багом... Особенно под мак ось. Но под виндой вполне нормально.
Я использовал VSCode (по идее он похож на Атом), но мне вижуалка для плюсов нравится больше.
нуу, это не совсем то. А чем вижуалка лучше?
Не нужно настраивать пути поиска хедэров для автодополнения
Попробуй sublime-text. Офигенный редактор, оптимизация, можно настроить под верблюда, комьюнити, мультиплатформенность
Он платный, разве нет?
Нет. Там есть пожертвования, которые могу тебя долбать каждые 20 (или больше) сохранений. Да, это мешает, но не так сильно. Сам редактор остается лучшим
мы же все понимаем, какое большинство софта стоит у тебя на компе, тем более если ты юзаешь вин... А найти, гхм, кряк на сублайм занимает меньше 1й минуты)
Да. И таких людей гораздо больше, чем пишущих на Scala или Javascript, которые есть в списке языков.
причем тут visual studio? Речь идет о компиляторе, а не об IDE/редакторе. Никто не запрещает писать код в sublime и компилировать его с помощью MSVC
вы сейчас серьезно?)
а в чем проблема? Если, как все приличные программисты, пользоваться cmake или любой другой системой сборки, то единственное различие между MSVC и MinGW будет в необходимости один раз запустить vcvarsall.bat и задавать тип конфигурации debug/release на этапе компиляции
Вижуалка умеет в CMake. Конечно, странности есть (например нельзя просто так взять и перезапустить отладчик. Нужно остановить, а потом запустить), но в целом работает.
Пишут, и очень многие.
В контексте разработки под винду компилятор 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?
Все-таки, очень хочется получить ответ от администрации. MikeMirzayanov, почему так долго не обновляется компилятор Visual C++?
32-битный mingw64... Думаю, что проект было бы неплохо переименовать, например, в MinGW-Modern, что бы не было таких странностей)
Hope that user can use gif as the profile photo!
~
Why not a 64-bit compiler?
C++17 is way too old, waiting for C++20 support
Is C++17 support __int128 ?
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.
I always wonder why CF is based on 32-bit compiler. Does server run on 32bit cpu?
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.
Why not sandbox on Linux? You will have your 64-bit compiler while being able to isolate executables from using system calls.
Is there a reason Linux is not used?
Visual Studio compiler.
Do you know kernel patch protection alternative for linux?
If you want to patch Linux kernel, you can just modify the source code and build it. This is what all Linux geeks are supposed to do routinely.
You can take a look at Chernov's patch, which is a part of testing system named Ejudge.
https://ejudge.ru/download/linux-4.9.77-4.9.77-cher1.diff
How to use it (russian)
Was it reviewed by professional security explorers, like Project Zero? I think that no. Anyway, each patch to kernel is potential security problem.
BTW, why cgroups aren't used for isolation? Are they too slow?
See this, used in IOI for example.
It looks just like I want to have — native kernel tools based isolation. But I will write mine, of course. (Yes, I like building bycicles:))
Looks like christmas came early this year!!!!
Are there any new features that are useful for compeititons as well?
https://stackoverflow.com/questions/38060436/what-are-the-new-features-in-c17 :/