Mono 4.0: C# 6.0 und Microsoft-Code im Laufzeitsystem

Das Mono-Projekt hat am 29. April 2015 Mono 4.0.0 veröffentlicht. Die Laufzeitumgebung übernimmt in dieser Version erstmals mehrere Komponenten aus Microsofts Reference Source, CoreFX und CoreCLR. Außerdem wird C# 6.0 zum Standard des mitgelieferten C#-Compilers.

Mono bleibt eine plattformübergreifende Implementierung der .NET-Laufzeit und der zugehörigen Klassenbibliotheken. Für Entwicklungsumgebungen, Werkzeuge und Spieleprojekte mit Windows-, Linux- oder macOS-Anteil war die neue Version deshalb vor allem wegen der gemeinsamen Codebasis interessant. Die aus Microsoft-Code übernommenen Komponenten standen unter der MIT-Lizenz.

C# 6.0 und Microsoft-Code in Mono

Mono 4.0 ersetzte unter anderem Teile von System.Collections, System.Linq, System.Text.RegularExpressions und System.Threading durch angepassten Microsoft-Code. Der Schritt sollte die Kompatibilität mit .NET verbessern und die Pflege häufig genutzter Klassen erleichtern. Mono lieferte weiterhin eigene Bibliotheken aus, die an die plattformübergreifende Laufzeit angepasst waren.

Der C#-Compiler unterstützte nun die Sprachfunktionen von C# 6.0 als Standard. Wiederholte Builds erzeugten zudem keine neue GUID mehr, sofern der Quellstand gleich blieb. Für Projekte mit reproduzierbaren Build-Prozessen war das eine praktische Änderung an der Compiler-Ausgabe.

Optimierungen für Laufzeit und Debugging

Die Release Notes nennen Optimierungen für Gleitkommaoperationen, LLVM auf ARM und den Just-in-Time-Compiler. Über die Option -O=float32 konnten Anwendungen 32-Bit-Gleitkommaberechnungen mit geringerer Präzision und kürzerer Laufzeit verwenden. Ein leichterer Debugger und neue LLDB-Skripte ergänzten die Werkzeuge für die Fehlersuche.

Die Veröffentlichung knüpfte an die plattformübergreifende Entwicklungsarbeit rund um Xamarin.Forms an. Auch die Unity-Lernwerkzeuge zeigen, wie wichtig gemeinsame Laufzeit- und Editorbausteine für Projekte mit mehreren Zielsystemen sind. Mono 4.0 entfernte außerdem die Build-Erzeugung für alte .NET-2.0-, .NET-3.5- und .NET-4.0-Referenzassemblies, ältere Binärdateien blieben laut Projekt aber weiterhin ausführbar.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein