Runtime: Mono + dotnet/runtime Migration

Created on 18 Dec 2019  路  15Comments  路  Source: dotnet/runtime

These are the high level sets of tasks / priorities leading up to and after parts of mono are migrated into dotnet/runtime.

Before Migration

  • [x] Determine steps needed to enable dotnet/runtime testing for mono
  • [x] Enable PR Sync Bot and test

Migration

Post Migration

Priority I (Near completion)

Priority II

area-Infrastructure-mono tracking

Most helpful comment

Is there a plan to port Mono to use the .NET Core GC?

Xamarin and Blazor are the primary workloads for Mono. CoreCLR GC (as is) is likely a worse option for these workloads than the current Mono GC. We may experiment with it, but the Mono GC is here to stay until we have a data that confirm the .NET Core GC would be a better choice for the primary Mono workloads.

All 15 comments

What is PR Sync Bot?

Are these worth calling out specifically

  • Add build configurations for iOS and Android
  • Porting of code into System.Native
  • Porting of code into libraries, changing #ifdef to partial classes in many cases
  • Add build configuration for Windows desktop (?) and CI (?)

Post migration

  • Size measurements, trimming as necessary, infrastructure to protect size.

@danmosemsft The goal is to get the build going first. Any implementation changes will come once the infrastructure is in place and working.

A few more post migration tasks:

  • run mono/tests tests and mono/mini tests on MonoVM on CI
  • run MonoVM's soft debugger tests on CI (this will some coordination with https://github.com/mono/debugger-libs)

I just opened the PR that adds Mono to the repo: https://github.com/dotnet/runtime/pull/1912 :)

What will the story be for those running mono on Linux? Would there still be a way to build it and install it via makefiles? Will there be a similar story for .NET 5 as a replacement?

@borgdylan Mono as you know it will stay around as an option, but for .NET 5 the packaging/distribution is a bit different.

is this just port of monovm and aot , which will use .net core's gc . Or is the entire mono runtime along with mono's gc is getting ported here ?
Interested because mono vm and JIT runs in many places where .net core does not and .net core's gc is way better than mono's gc. (my opinion)

It is the entire Mono runtime including Mono's GC (sgen).

Is there a plan to port Mono to use the .NET Core GC?
I would prefer having one garbage collector for only in terms of testing and maintenance.

Is there a plan to port Mono to use the .NET Core GC?

Xamarin and Blazor are the primary workloads for Mono. CoreCLR GC (as is) is likely a worse option for these workloads than the current Mono GC. We may experiment with it, but the Mono GC is here to stay until we have a data that confirm the .NET Core GC would be a better choice for the primary Mono workloads.

I don't see anything in that list for publishing runtime packs. Is that missing? If so, it seems like it should be added. W/o that, there isn't a user experience.

When doing the planning for migrating the mono runtime into the repository there was no cleanly defined user experience. Given that we decided to cut the runtime packs and publishing because there wasn't a clear goal for us to plan around. Instead we decided to separate migrating mono into the runtime and then work on publishing, official builds and packaging once we had a defined scenario to plan that around.

Is that available now for us to look at?

Tagging subscribers to this area: @directhex
See info in area-owners.md if you want to be subscribed.

For the most part, I think we're migrated. I think what's left is for 6.0 and beyond.

Was this page helpful?
0 / 5 - 0 ratings