Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ensure ICU is fully linked out in invariant mode #43689

Closed
CoffeeFlux opened this issue Oct 21, 2020 · 9 comments · Fixed by #48120
Closed

Ensure ICU is fully linked out in invariant mode #43689

CoffeeFlux opened this issue Oct 21, 2020 · 9 comments · Fixed by #48120
Assignees
Labels
arch-wasm WebAssembly architecture area-Build-mono size-reduction Issues impacting final app size primary for size sensitive workloads
Milestone

Comments

@CoffeeFlux
Copy link
Contributor

CoffeeFlux commented Oct 21, 2020

This is enabled by other work we're doing as part of .NET 6, but we should add assertions in addition to that to make sure everything really is going away.

We should be able to create a new project with the latest SDK, set the following properties, and have the native ICU bits fall away:

    <InvariantGlobalization>true</InvariantGlobalization>
    <WasmBuildNative>true</WasmBuildNative>
@CoffeeFlux CoffeeFlux added arch-wasm WebAssembly architecture area-Build-mono labels Oct 21, 2020
@CoffeeFlux CoffeeFlux added this to the 6.0.0 milestone Oct 21, 2020
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the untriaged New issue has not been triaged by the area owner label Oct 21, 2020
@CoffeeFlux CoffeeFlux removed the untriaged New issue has not been triaged by the area owner label Oct 21, 2020
@lewing
Copy link
Member

lewing commented Oct 24, 2020

To do this we need to be able to scan the linked assemblies for qcalls and we are running into #43791

@lewing
Copy link
Member

lewing commented Nov 11, 2020

qcall linking should be in #43798 what is the status here?

cc @vargaz @EgorBo

@vargaz
Copy link
Contributor

vargaz commented Nov 11, 2020

This will be solved when pinvoke linking is enabled since the icall qcalls are treated as pinvokes.
However, the icu data/startup code still needs to be disabled.

@CoffeeFlux
Copy link
Contributor Author

CoffeeFlux commented Nov 11, 2020

I wanted this as a separate issue to add checks to make sure it's not getting included, though like Zoltan said this is dependent on #43783 before it has a chance.

@marek-safar marek-safar changed the title [wasm] Ensure ICU is fully linked out in invariant mode Ensure ICU is fully linked out in invariant mode Dec 9, 2020
@marek-safar marek-safar added the size-reduction Issues impacting final app size primary for size sensitive workloads label Dec 9, 2020
@vargaz
Copy link
Contributor

vargaz commented Feb 17, 2021

This should work now, set the InvariantGlobalization and WasmBuildNative msbuild properties to true.

@marek-safar
Copy link
Contributor

@vargaz does it work for interpreter mode?

@vargaz
Copy link
Contributor

vargaz commented Feb 17, 2021

Yes.

@CoffeeFlux
Copy link
Contributor Author

At what point will I be able to replicate this with a nightly SDK drop? Does Blazor need to pick up runtime changes, or should this work right now? And if so, what exactly do I need to do in order to see it work - just make a new blazorwasm project and set WasmBuildNative in the csproj?

@marek-safar
Copy link
Contributor

Blazor need to pickup new runtime pack and then you set InvariantGlobalization msbuild property

@ghost ghost locked as resolved and limited conversation to collaborators Mar 21, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-wasm WebAssembly architecture area-Build-mono size-reduction Issues impacting final app size primary for size sensitive workloads
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants