Ouverture (complète) du code source de la CLR

5752191166_5d28e6ce39_z

Microsoft vient de mettre en ligne l’ensemble du code source de la CLR .Net (incluant le Runtime + classe de base)

Comme annoncé en Novembre 2014 par Scott Guthrie, Microsoft continue sa stratégie d’ouverture : chaque développeur disposait déjà via Visual Studio 2013 Community Edition d’un outil de développement complet et performant, d’un outil de compilation ouvert (Roslyn).

Ce qui est encore plus intéressant est la volonté de Microsoft (avec l’aide de la communauté Mono) de porter aussi le framework sous Linux. J’attends cela avec impatience et la possibilité de développer nativement des applications multi-OS.

N’hésitez pas à aller jeter un coup d’oeil sur le code disponible à l’adresse suivante : https://github.com/dotnet/coreclr.

Côté classes de base (répertoire https://github.com/dotnet/coreclr/tree/master/src/mscorlib/src), on y trouve par exemple les implémentations de :

  • la classe “String” et l’utilisation des Contract permettant d’interagir avec le compilateur et l’IDE
  • la classe “Boolean” avec l’implémentation de la méthode TryParse (et ses différentes optimisations)
  • les classes “int (Int32)”, “long (Int64)”

C’est sympa de voir qu’un certain nombre de pratiques plutôt qualifiées de moyenne sont pas mal utilisées dans leur code :

  • Beaucoup de compilation conditionnelle (normale pour attaquer plusieurs cibles)
  • Beaucoup de code “unsafe” (normal pour les performances)

Pour ceux que ca intéresse, il était déjà possible de rentrer en debug dans le code source du framework. Plus d’infos ici.