📜 ⬆️ ⬇️

Mono 4.0 release with import code from referencesource.microsoft.com and corefx


- Made support for C # 6 by default
- Punched in terms of improving GC and runtime performance
- Accelerated operations with float by 30-40%
- Added support for PowerPC64 LE
- And most importantly, a very large chunk of BCL was imported from the .NET Framework.
List of imported code
Fully imported:
- 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

Partial import / replace

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
- In general, for the most part the code is replaced
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
- Processing of unicode and ANSI encodings, the rest is still the old method, since the MS implementation uses WinAPI
System.Threading (approximately 60%)
For import progress can still be viewed here.
')
Profiles 2.0 and 4.0 were also removed, that is, you can run the code compiled for them, but now you can only assemble under 4.5.

Regarding the question "Why, Microsoft is porting .NET itself?". The idea is that MS is now porting (and it is not known when the port) is a fairly small subset of the dotnet. Mono also provides a desktop / server profile and will continue to provide it, integrating Microsoft code. In the future it is also planned to release the same subset called Mono Core, which can be used by means of DNX.
Now we took those pieces that worked crookedly in places in Mono or were a wrapper from throw new NotImplementedException ().

So if your project on Mono did not start due to jambs from something above, then it's time to try again.

Source: https://habr.com/ru/post/257167/


All Articles