— Сделали поддержку 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%)
— 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 не запускался в связи с косяками из чего-то вышеперечисленного, то самое время попробовать снова.
Комментарии (7)
xeon
04.05.2015 13:21Были большие надежды, на этот релиз, но пока что всё еще проблемы с SSL. Просто физически невозможно подключиться к SQL Azure, т.к. там ssl обязателен.
kekekeks Автор
04.05.2015 13:53+1Его ещё пилят. Смотреть тут:
trello.com/c/PvUaV89u/16-tls-stack
github.com/mono/mono/tree/work-newtls
github.com/mono/mono-tls
VISTALL
Спасибо. Пропустил я их реализ.
Я так понимаю они используют Roslyn в качестве компилятора?
kekekeks Автор
Пока свой допилили до кондиции. Но Roslyn вроде как давно уже на Mono запускается.