Skip to content

Conversation

@jonathanpeppers
Copy link
Member

@jonathanpeppers jonathanpeppers commented Oct 1, 2025

Make CoreCLR the default runtime.

Fixes or (temporarily) disables a number of tests which were failing because of a variety
of reasons, such as:

  • Use of 32-bit ABIs (CoreCLR supports only 64-bit ones)
  • MonoAOT use (not supported by CoreCLR)
  • Using discrete assemblies in the apk instead of assembly stores (CoreCLR supports only the latter)
  • Mono.Cecil lack of support for R2R assembly images.
  • A handful of typemap tests (CoreCLR managed typemap support is buggy, another solution is being worked on)

Additionally, it parametrizes a number of tests with the runtime type,
so that they ran for both MonoVM and CoreCLR (and, eventually, NativeAOT)

@jonathanpeppers jonathanpeppers force-pushed the dev/peppers/usemonoruntime branch from ad0ed28 to c9bb3bb Compare October 15, 2025 13:37
@jonpryor
Copy link
Contributor

I assume this means that in .NET 11 CoreCLR will be the default runtime…

@grendello grendello self-assigned this Oct 20, 2025
@grendello grendello force-pushed the dev/peppers/usemonoruntime branch 4 times, most recently from dbf485e to 8000aef Compare October 23, 2025 11:32
<_AndroidRuntime Condition=" '$(PublishAot)' == 'true' and '$(UseMonoRuntime)' != 'true' ">NativeAOT</_AndroidRuntime>
<_AndroidRuntime Condition=" '$(PublishAot)' != 'true' and '$(UseMonoRuntime)' != 'true' ">CoreCLR</_AndroidRuntime>
<_AndroidRuntime Condition=" '$(_AndroidRuntime)' == '' ">MonoVM</_AndroidRuntime>
<_AndroidRuntime Condition=" '$(PublishAot)' == 'true' ">NativeAOT</_AndroidRuntime>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happens in Debug builds when you have <PublishAot>true</PublishAot> in the project file? Does it try to still run with NativeAOT? For "PublishAOT Debug builds", I believe we need to use CoreCLR 🤔 I suppose we can fix that later though.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think in this case it will try to use Mono AOT as it is now, at least the error messages I've seen suggest that. Yeah, we can't use NativeAOT for debug builds.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's address this in another PR, I think Debug mode should mirror what a console app does. It would use CoreCLR there.

@grendello grendello force-pushed the dev/peppers/usemonoruntime branch 2 times, most recently from 0ead24b to 3492e3f Compare October 27, 2025 15:55
@grendello
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@grendello grendello force-pushed the dev/peppers/usemonoruntime branch 2 times, most recently from a55d6f6 to dae743f Compare October 28, 2025 14:35
@grendello
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@grendello grendello force-pushed the dev/peppers/usemonoruntime branch from dae743f to 23a5d24 Compare October 28, 2025 19:56
@grendello grendello marked this pull request as ready for review October 29, 2025 09:57
@grendello
Copy link
Contributor

/azd run

@grendello grendello force-pushed the dev/peppers/usemonoruntime branch from a4ea6e9 to da832e4 Compare October 31, 2025 08:50
The removed classes contain tests which fail on CoreCLR (possibly
due to not supporting the managed typemap, but it requires more
research) and should be fixed in a separate PR.
@grendello grendello force-pushed the dev/peppers/usemonoruntime branch from da832e4 to 0d9b143 Compare November 3, 2025 14:59
@grendello
Copy link
Contributor

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants