[Перевод] .Net CoreCLR (GC, runtime, ...) вышел в Open Source [переводится]

Мы рады сообщить что CoreCLR теперь находится на github и теперь вы имеете доступ ко всем его исходным кодам. CoreCLR является средой исполнения .NET Core, выполняя такие функции как сборку мусора или компиляции в конечный машинный код. .Net Core — это модульная реализация .Net, которая может быть использована как база для огромного количества сценариев, масштабы которых варьируются от простых консольных утилит до вэб-приложений, хостящихся в облаке. Чтобы понять, чем отличается .Net Core от .Net Framework, посмотрите на пост «Введение в .Net Core«Теперь вы можете скачивать исходники CoreCLR, бранчеваться, и делать pull requests, также вы можете компилировать его прямо на своем ПК. Мы выпустили полную и актуальную реализацию CoreCLR, которая включает RyuJIT, .Net GC, родной Interop и множество других компонент .Net runtime. Данный релиз следует тем же принципам, что и все наши последние релизы библиотек, вышедших в open-source: сделать весь .Net Framework open sourced.1406f408d1b2455686e6ad5d1b470afa.pngСегодня ядро .Net компилируется и отрабатывает (видимо имеется в виду CI) на Windows. Мы добавим имплементации для специфических для Mac и Linux платформенных вещей в ближайшие пару месяцев. Также мы уже имеем некоторый специфический для Linux код в .Net Core, однако мы только начали портировать с Windows на остальные платформы. Напротив, мы хотели открыть исходные тескты с самого начала, чтобы вы вместе с нами пропутешествовали бы к другим платфромам, возможно, внося свой вклад.Репозиторий CoreCLR по своей структуре очень похож на репозитория CoreFX, в котором многие из вас в течении последних месяцев успели поработать.Мы будем продолжать развивать оба репозитория одновременно, чтобы вы по итогы чувствовали себя естественно, находясь в поистине огромной кодовой базе.С точки зрения размера, репозиторий CoreCLR состоит из примерно 2,6 миллионов строк кода. Причем в рамках этих рассчетов GC занимает около 55 тысяч, а сам JIT — около 320 тысяч строк. Также мы недавно поделились с вами, что CoreFX занимает 500 тысяч строк кода, что составляет около 25% от его предполагаемого итогового размера. И, страшно сказать, но когда все будет готово, мы будем иметь около 5 миллионов строк кода.на GitHub

411229c5a226409ab5e811a79ec6dc11.png Одним из ключевых различий между репозиториями является то, что CoreFX написан на C#, тогда как CoreCLR содержит огромное количества кода как C#, так и C++. Также репозиторий CoreCLR требует огромного количества тулов для построения кода, часть из которых не идет в поставку с Visual Studio. Мы оставили зависимость на CMake, opensource и кроссплатформенную систему построения проектов. Поскольку нам была необходима система сборки, которая прекрасно бы себя чувствовала и на Windiws, и на Mac, и на Linux, мы посмотрели на различные варианты и как итог, выбрали CMake.

Вы можете узнать, как собирать CoreCLR из CoreCLR Developer Guide. Команда будет постоянно обновлять его, особенно когда Linux и Mac станут реальностью.

Мы также очень надеемся, что сообщество внесет свою лепту в развитие проекта путем создания pull requests (от переводчика: CoreFX имеет огромное количество контрибьюторов, которые постоянно пишут код для CoreFX). .Net Core из-за своего раземра работает на огромном количестве сценариев, и потому очень важно иметь большое количество тестов чтобы покрыть максимальное их количество.

Это очень здорово — видеть реализации .Net CoreFX и CoreCLR — в open source. И вы будете удивлены, какие типы приложений можно будет с ним построить. Есть два типа приложений, которые можно построить на текущий момент: ASP.NET 5 Web-приложения и сервисы Консольные приложения Мы говорили про ASP.NET 5 приложения около года и теперь вы можете построить их используя как .Net Framework, так и CoreCLR/CoreFX. ASP.NET 5 использует mono runtime и может работать как на Mac, так и на Linux. Как только .Net Core станет поддерживать эти системы, вы сможете использовать его на этих платформах. Вы можете узнать больше, как работать с ASP.NET 5 из блога команды ASP.NET или на вэбсайте asp.net. Также, если хотите попробовать ASP.NET 5 в деле прямо сейчас, то скачайте Preview версию MS Visual Studio 2015.Мы хотим сделать возможным построение CoreFX и CoreCLR репозиториев и использовать результаты в приложениях ASP.NET 5, но пока это не является возможным по нескольким техническим причинам, однако мы работаем над этим. Конечная цель очень комплексна: мы должны иметь возможность сочетать изменений сообщества (forks) и наши собственные изменения и получать в итоге базовый стек для ваших приложений.

Консольный тип приложений позволяет понять что такое CoreCLR. Также он предоставляет очень гибкую базу для построения абсолютно любого приложения, какое бы вы ни захотели. Наибольший процент инфраструктуры. которую мы используем для тестирования использует именно этот тип приложения. Также вы можете построить свой собственный CoreCLR и запускаь приложения поверх него.

На данный момент консольный тип приложений для .Net Core является побочным продуктом нашего технологического процесса. И в течении нескольких последующих месяцев мы будем формировать его как полностью готовый тип приложений, включая шаблоны кода в Visual Studio и отладчик (т.е. его нет, похоже, — прим. перев.). Также мы будем поддерживать OmniSharp для консольных приложений (кто не знает — Sumlime based IDE для .NET). Так что, скоро у вас будет полноценная возможность сборки кроссплатформенных приложений, которые будут запускаться с одного исполняемого файла.Ниже представлена первая демка консольного приложения, запущенного под CoreCLR.

4cd1e47c375840a0a1f92c5252dca2b3.png

[скоро тут будет продолжение статьи, я ее прямо сейчас перевожу]7a407b46e6d14bdf99d72dc4c90d2226.png

© Habrahabr.ru