Pull to refresh

Релиз Mono 4.0 с импортом кода из referencesource.microsoft.com и corefx

Reading time 2 min
Views 23K

— Сделали поддержку C# 6 по-умолчанию
— Потюнили в плане улучшения производительности GC и рантайм
— Ускорили операции с float на 30-40%
— Добавили поддержку PowerPC64 LE
— И, самое главное импортировали очень большой кусок BCL из .NET Framework.
Список импортированного кода
Полностью импортированы:
— System.Decimal
— System.Collections
— System.Collections.Concurrent
— System.Collections.Generic
— System.Collections.Specialized
— System.ComponentModel
— System.ComponentModel.Design
— System.Diagnostic.Contracts
— System.Linq
— System.Linq.Parallel
— System.Text.RegularExpressions
— System.Runtime.CompilerServices
— System.Threading.Tasks

Частичный импорт/замена

System:
— ArraySegment
— BitConverter
— Boolean, Byte, Char, Decimal, Int16, Int32, Int64, SByte, UInt16, UInt32, UInt64,
— Convert
— DateTime, Decimal
— Guid
— Lazy
— Random
— TimeSpan
— Version
System.Collections.Generic
— HashSet
— И вообще по большей части код заменён
System.Diagnostics.Contracts
System.Globalization
— Entire calendar stack
— DaylightTime
— TextInfo
System.IO
— BufferedStream
— Stream
— MemoryStream
— StreamReader, StreamWriter, StringReader, StringWriter, TextReader, TextWriter
System.Linq.Expressions
— DynamicExpression, ExpressionVisitor
System.Net
— Cookie, CookieCollection, CookieContainer,
— FtpWebRequest
— WebClient
System.Text
— Обработка кодировок юникода и ANSI, остальные пока старым методом, так как реализация от MS использует WinAPI
System.Threading (примерно на 60%)
По импорту прогресс всё ещё можно смотреть тут.

Ещё убрали профили 2.0 и 4.0, то есть, запустить скомпилированный под них код можно, а вот собирать теперь получится только под 4.5.

Относительно вопроса «Зачем, Microsoft же портирует .NET самостоятельно?». Идея в том, что MS сейчас портирует (и неизвестно когда допортирует) достаточно небольшое подмножество дотнета. Mono же предоставляет desktop/server профиль и продолжит его предоставлять, интегрируя код от Microsoft. В дальнейшем также планируется выпускать такое же подмножество под названием Mono Core, которое можно будет использовать средствами DNX.
Сейчас взяли те куски, которые в Mono местами криво работали или представляли из себя портянку из throw new NotImplementedException().

Так что если у вас проект на Mono не запускался в связи с косяками из чего-то вышеперечисленного, то самое время попробовать снова.
Tags:
Hubs:
+54
Comments 7
Comments Comments 7

Articles