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...