You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This means that in AOT mode the property becomes: CanEmitObjectArrayDelegate=false and in order to support this setting Mono would have to implement a private CoreLib API which:
creates a strongly typed Delegate (e.g. Func<int, int>) that boxes all it's arguments
puts the arguments into an array
dispatches to a Func<object?[], object?> delegate to do the actual work, and finally
ivanpovazan
changed the title
[mono] Investigate enabling to respect
[mono] Investigate enabling CanEmitObjectArrayDelegate to respect IsDynamicCodeSupported=falseAug 7, 2023
ivanpovazan
changed the title
[mono] Investigate enabling CanEmitObjectArrayDelegate to respect IsDynamicCodeSupported=false
[mono] Investigate enabling CanEmitObjectArrayDelegate to respect DynamicCodeSupport feature switch in System.Linq.Expressions library
Aug 7, 2023
ivanpovazan
changed the title
[mono] Investigate enabling CanEmitObjectArrayDelegate to respect DynamicCodeSupport feature switch in System.Linq.Expressions library
[mono] Investigate enabling CanEmitObjectArrayDelegate to respect DynamicCodeSupport feature switch in System.Linq.Expressions library
Aug 7, 2023
Based on discussion in: #87924 investigate performance and size impact of enabling
runtime/src/libraries/System.Linq.Expressions/src/System/Dynamic/Utils/DelegateHelpers.cs
Line 16 in 4415472
DynamicCodeSupport
feature switch setting, ie:This means that in AOT mode the property becomes:
CanEmitObjectArrayDelegate=false
and in order to support this setting Mono would have to implement a private CoreLib API which:Func<int, int>
) that boxes all it's argumentsFunc<object?[], object?>
delegate to do the actual work, and finallyReferences: comment1 and comment2.
This would also align how
System.Linq.Expressions
is supported in other AOT compilers - NativeAOT.The text was updated successfully, but these errors were encountered: