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


    — Сделали поддержку 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 не запускался в связи с косяками из чего-то вышеперечисленного, то самое время попробовать снова.
    • +54
    • 23.1k
    • 7
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 7

      +3
      Спасибо. Пропустил я их реализ.

      Сделали поддержку C# 6 по-умолчанию


      Я так понимаю они используют Roslyn в качестве компилятора?
        +3
        Пока свой допилили до кондиции. Но Roslyn вроде как давно уже на Mono запускается.
        +4
        Просто отлично!
          +3
          Т.е. для того чтобы пощупать C# 6 на микрософтовском .NET мне надо ставить VS CTP, а для того чтобы на mono — можно вполне себе релиз?
            0
            Ну у них свой компилятор со своим циклом релизов.
            0
            Были большие надежды, на этот релиз, но пока что всё еще проблемы с SSL. Просто физически невозможно подключиться к SQL Azure, т.к. там ssl обязателен.

          Only users with full accounts can post comments. Log in, please.