Create core library
To implement its own core library, MOSA generates a “dummy” one that includes all the public APIs but without the actual implementation code. The Create core library utility takes care of doing that work. To clone the official .NET core library repository, it requires git
. Here are the available command line arguments for the utility:
Short name |
Long name |
Description |
---|---|---|
-o |
--output |
Sets the output directory. |
-c |
--copy-files |
If enabled, only copies and patches the source files and stops. |
To run the utility, simply execute the following command on any platform:
dotnet bin/Mosa.Utility.CreateCoreLib.dll -o Output
The process can take between a few seconds to a few minutes depending on the speed of your internet connection and PC. At the end, you should get a System.Runtime.dll
file at the directory where you executed the utility. At the end, you should get a console output that looks like this:
Cloning .NET runtime GitHub repository...
Cloning into 'runtime'...
remote: Enumerating objects: 65953, done.
remote: Counting objects: 100% (65953/65953), done.
remote: Compressing objects: 100% (42248/42248), done.
Receiving objects: 100% (65953/65953), 88.04 MiB | 9.16 MiB/s, done.
remote: Total 65953 (delta 25898), reused 34761 (delta 20956), pack-reused 0 (from 0)
Resolving deltas: 100% (25898/25898), done.
Updating files: 100% (58901/58901), done.
Parsing input files...
Patching System.DirectoryServices.manual.cs...
Patching System.Net.Http.Json.cs...
Patching System.Net.Http.WinHttpHandler.cs...
Patching System.Configuration.ConfigurationManager.cs...
Patching System.Data.Common.cs...
Compiling source files...
Decompiling assembly...
Removing project file...
Removing Properties folder...
Patching System.Collections.Generic/PriorityQueue.cs...
Patching System.Collections.Generic/PriorityQueue.cs...
Patching System/Nullable.cs...
Patching System/ReadOnlySpan.cs...
Patching System.Runtime.InteropServices/Marshal.cs...
Patching System.Runtime.InteropServices/MemoryMarshal.cs...
Patching System.Runtime.CompilerServices/Unsafe.cs...
Patching System.Numerics/Vector.cs...
Patching System.Runtime.Intrinsics/Vector64.cs...
Patching System.Runtime.Intrinsics/Vector128.cs...
Patching System.Runtime.Intrinsics/Vector256.cs...
Patching System.Runtime.Intrinsics/Vector512.cs...
Patching System.Threading/Volatile.cs...
Patching System.Threading/Interlocked.cs...