
Механизм выполнения кода нового поколения уже запущен!
Мы рады сообщить, что недавно мы заменили наш механизм выполнения кода механизмом выполнения кода 3-го поколения. Новый движок был полностью переработан с нуля, чтобы работать лучше, повысить стабильность и быть более гибким, чтобы справляться с постоянно меняющимся набором языков и зависимостей, которые необходимы для того, чтобы вы всегда были на вершине своей игры.
Наряду с этим новым выпуском мы также выпускаем ряд обновлений, которые поставляются с новым движком.
Новые языки

Теперь мы поддерживаем PowerShell, Fortran, Julia и NASM! Эти языки в бета-версии, и на момент публикации пока нет доступных / многих ката. Если у вас есть опыт работы с любым из них, сообщество может использовать вашу помощь в переводе существующего контента - что, оказывается, довольно хороший способ заработать некоторую награду в этом процессе.
Новые языковые версии
Мы не только добавили совершенно новые языки, но также добавили новые версии ко многим из существующих поддерживаемых языков, которые мы уже поддерживаем.
- Рубиновый МРТ 2.5
- Haskell GHC 8.2
- Твердость 0.4.19
- Ржавчина 1.25
- Swift 4
- Эликсир 1.6.4
- Кристалл 0,24
Примечание о новых версиях со старыми ката. Любые существующие ката, совместимые как есть с новыми версиями, уже были обновлены с использованием этих версий по умолчанию.
Улучшения
- Python: Улучшенный фреймворк V2 - Пример кумитэ
- Python: вывод Unicode
- Python: больше не используется конкатенация для объединения предварительно загруженного кода решения и фикстуры. Это означает, что теперь вы будете получать логичные сообщения об ошибках!
- TypeScript:
/// <referenceбольше не требуется - Инфраструктура: больше вычислительных ресурсов каждому :)
Исправление ошибок
- Правильная поддержка C ++ 14
numpyна Python 3.6
Устаревшие
- Узел 0.10.33
Фон
Мы (и под нами, мы подразумеваем kazk) уже некоторое время работаем над этим обновлением. Это была огромная работа.
Версия раннера 1-го поколения была построена около 5 лет назад. Он вообще не использовал Docker (Docker был на ранней стадии бета-тестирования) и представлял собой песочницу вокруг Node и Ruby, которую можно было взломать. В конце концов мы выпустили наш Code Runner 2-го поколения, который использовал Docker и интерфейс командной строки с открытым исходным кодом. Он выполнил свою работу, и благодаря многим участникам мы смогли расширить наши языковые предложения. Однако производительность была нестабильной, и ее было очень трудно поддерживать. Многие языковые версии Codewars были заморожены для обновления из-за сложности наших образов Docker. Когда мы добавляли языки, наши серверы исчерпывали свои ресурсы. Попытка управлять тем, какой контент использует, какая версия библиотек вышла из-под контроля.
Наш новый бегун рассчитан на длительный срок службы. Все, от облачного провайдера, инфраструктуры, архитектуры и реализации, было переработано. Мы сможем быстрее поддерживать языковые обновления и в конечном итоге предоставить больший выбор при создании ката, который зависит от разных библиотек. Мы рады тому, что нас ждет в будущем.
Codewars хотели бы поблагодарить не только Казка (который официально присоединился к команде Codewars!), Но и donaldsebleung за вклад в реализацию Fortran, Bubbler за вклад в новую структуру Python CW V2 и PowerSchill за его первоначальный вклад к реализации PowerShell.
Новый раннер уже запущен в Codewars и вскоре будет запущен для клиентов Qualified.io. Мы очень рады тому, что нас ждет с этим новым двигателем, мы только прикоснулись к нему. Следите за обновлениями!
Подробнее о последних добавлениях читайте на GitHub.
Еще одна вещь ... Предупреждение о дублировании Ката.

Не имеющий отношения к новому исполнителю кода, нам нужно объявить еще одно обновление. Теперь в редакторе ката мы представляем список возможных повторяющихся ката, основанный на названии редактируемого ката. Показанные ката на самом деле могут не быть дубликатами, но если какие-либо из них кажутся похожими, авторы ката (сенсей) должны сначала проверить их, чтобы убедиться, что они создают что-то уникальное.