Uh oh!
There was an error while loading. Please reload this page.
[wasm] Allow assemblies to be skipped for AOTMode=AotInterp - #48500
[wasm] Allow assemblies to be skipped for AOTMode=AotInterp#48500radical wants to merge 27 commits into
Conversation
- The reason for this change is that generating the app bundle is optional now. Eg. in case of blazor, which handles the layout itself. - In that case, the assemblies will be used for other things during `WasmBuildApp` target (eg. AOT). - Change the name to reflect that
Uh oh!
There was an error while loading. Please reload this page.
| </ItemGroup> | ||
| <ItemGroup> | ||
| <_AotInputAssemblies Include="@(_WasmAssemblies->Distinct())"> | ||
| <_AotInputAssemblies Include="@(_WasmAssembliesInternal->Distinct())" Condition="'%(_WasmAssembliesInternal.InterpOnly)' != 'true'"> |
There was a problem hiding this comment.
InterpOnly
- Could we use a non-abbreviated name
InterprettedOnly? Users might need to configure it. - Might also want to consider something like
AOTMode=Intepretted.
This would look like:
_AotInputAssemblies Include="@(_WasmAssembliesInternal->Distinct())" Condition="'%(_WasmAssembliesInternal.AOTMode)' != 'Interpretted'">There was a problem hiding this comment.
Might also want to consider something like AOTMode=Intepretted.
Does it make sense to have the possible values for AOTMode to be as what Android, and iOS have? @lewing@marek-safar@jonathanpeppers
There was a problem hiding this comment.
What we have now:
It kind of maps to the native side:
runtime/src/mono/mono/mini/jit.h
Lines 46 to 72 in 1d9e50c
There was a problem hiding this comment.
I don't think our integer values matter at build time for what is passed at runtime.
There was a problem hiding this comment.
And those c# enum names are the strings used with $(AOTMode) (or equivalent property name)?
There was a problem hiding this comment.
Our property is $(AndroidAotMode) right now, but we can use a new one in .NET 6 to match other platforms. I'm fine with $(AOTMode) if that is what we pick.
There was a problem hiding this comment.
Sorry, I'm not being clear. What values do you use for $(AndroidAotMode)? Are they $(AndroidAotMode)=normal, $(AndroidAotMode)=hybrid etc, to match the C# enum?
There was a problem hiding this comment.
It looks like they all map exactly to this C# enum, except for Intepreter:
Uh oh!
There was an error while loading. Please reload this page.
This was added earlier to support blazor workload which only uses AOT. But that has since been fixed to correctly use `WasmBuildApp`+`@(WasmNativeAsset)`, so this can be removed.
ghost
commented
Feb 24, 2021
Tagging subscribers to 'arch-wasm': @lewing Issue Details
|
Co-authored-by: Pranav K <prkrishn@hotmail.com>
.. and enable it by default.
….wasm with symbols .. defaults to True.
1. tests in `src/tests` failed with: `Bug: The wasm build started with 2 assemblies, but completed with 11.` .. this was because they build with `$(WasmResolveAssembliesBeforeBuild)=true` and that adds to the original list of assemblie. So, skip checking in that case. 2. AOT functional tests failed with: `Bug: The wasm build started with 356 assemblies, but completed with 178. ` .. this was because the original list had dupes! So, ensure to count only distinct items.
radical
commented
Feb 25, 2021
Unrelated test failures in |
radical
commented
Feb 25, 2021
Test failures being tracked in #48751 |
lewing
left a comment
There was a problem hiding this comment.
The changes look good to me. I'd like to come to some broader consensus on naming, especially Aot vs AOT and the (Aot|AOT)Mode bits.
lewing
commented
Feb 26, 2021
But I'm ok to approve to unblock things if @pranavkm is waiting on this? |
This uses `mono-cil-strip` from a mono installation. And in it's current form it can cause issues, so disabling it for now.
radical
commented
Mar 15, 2021
The parts of this that didn't do naming changes have been merged as part of #49446 . I will open a new PR, when we have a consensus on the naming. |
Allow skipping AOT, per assembly with
%(_InternalForceInterpret)metadatabuild: Rename
@(WasmAssembliesToBundle)->@(WasmAssembly)new
$(WasmNativeDebugSymbols)to control symbols for dotnet.wasm (useful only for AOT case), which defaults to truePath handling fixes for AOT builds on windows
add
create-packs.projfor setting up packs from a local build, for quick local testing