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

[WebAssembly] .NET 5 support #4613

Closed
jeromelaban opened this issue Nov 25, 2020 · 2 comments
Closed

[WebAssembly] .NET 5 support #4613

jeromelaban opened this issue Nov 25, 2020 · 2 comments
Labels
area/dotnet-runtime Categorizes an issue or PR as relevant to the dotnet runtime support difficulty/challenging 🤯 Categorizes an issue for which the difficulty level is reachable with internals understanding epic platform/wasm 🌐 Categorizes an issue or PR as relevant to the WebAssembly platform

Comments

@jeromelaban
Copy link
Member

jeromelaban commented Nov 25, 2020

This epic keeps track of the .NET 5 support related issues.

dotnet/runtime stability issues

Blockers:

Important:

  1. Profiled AOT Stack Crawling [Wasm][AOT] methods performing stack crawling fail under profiled AOT dotnet/runtime#47996
  2. NIY opcode issue [Wasm][AOT] Assertion: should not be reached at /__w/1/s/runtime/src/mono/mono/mini/interp/interp.c:3337 dotnet/runtime#47275

Others:

  1. libICU memory corruption [WASM] libICU heap-buffer-overflow dotnet/runtime#45224 (Related to Net5 Lozalization does not work  #4514)
  2. FullAOT issue (exception filter): [Wasm][AOT] AOT Compilation failed for method 'void System.IO.Strategies.Net5CompatFileStreamStrategy:Dispose (bool)'. dotnet/runtime#50609
  3. FullAOT issue (exception filter) with CancellationTokenSource.ExecuteCallbackHandlers [Wasm][AOT] System.Threading.CancellationTokenSource.ExecuteCallbackHandlers fails to compile dotnet/runtime#46855
  4. AOT Epic [Wasm] Tracking AOT wasm library test failures dotnet/runtime#48079

dotnet/runtime performance issues

Blockers:

  1. [Wasm][AOT] Methods containing a try/catch block are 30x slower because of the interpreter dotnet/runtime#56309
  2. [Wasm][AOT] Performance regression in List<string> foreach dotnet/runtime#54272

Important:

  1. try/finally performance [wasm][aot] method calls inside try/finally blocks are expensive dotnet/runtime#50783
  2. PG-AOT foreach performance [WASM][AOT] recursive foreach loop is 17x slower than for loop over List<T> using profiled AOT dotnet/runtime#48179

Uno Issues:
N/A

Fixed:

  1. Linker performance Linker performance problems dotnet/linker#918
  2. [Wasm] Should not be reached at runtime/src/mono/mono/mini/interp/interp-internals.h:324 dotnet/runtime#53380
  3. AOT Dedup issue [Wasm][AOT] Enabling dedup causes duplicate symbol in wasm-ld dotnet/runtime#50508
  4. AOT LLVM error: [Wasm][AOT] Compilation fails with "Basic Block in function XX does not have terminator!" dotnet/runtime#50561
  5. Unknown memory corruption [Wasm][AOT] memory access out of bounds in mini_llvmonly_get_imt_trampoline  dotnet/runtime#48814
  6. Unknown memory corruption [Wasm][AOT] Memory corruption with Assertion at metadata/loader.c:1805, condition not met dotnet/runtime#51207
  7. Interpreter memory corruption [Wasm][Interp] inline interpreter option sees to create memory corruptions dotnet/runtime#51406
  8. Nullable performance [Wasm][AOT] using Nullable<T> forces the interpreter use in profiled AOT dotnet/runtime#48126
  9. Generics performance [Wasm][AOT] Invoking Action<struct> is 7x slower than Action<ref> dotnet/runtime#50757 (comment)
  10. AOT memory corruption [Wasm][AOT] register_methods_in_jinfo memory access out of bounds dotnet/runtime#50202
  11. AOT JitHelper issue [Wasm][AOT] -O=gsharedvt code fails in JitHelpers dotnet/runtime#51113
  12. Large app AOT error [Wasm][AOT] Running a very large app causes Assertion at aot-runtime.c:5883, condition `*(gint16*)ptr == method_index' not met dotnet/runtime#49875
  13. Native Exception frames support under AOT [Wasm][AOT] Exceptions in Full AOT should provide the native stack frames dotnet/runtime#44628
  14. Linker SQLite issue Failed to resolve System.Int32 SQLitePCL.ISQLite3Provider::sqlite3_blob_open dotnet/linker#1919
@jeromelaban jeromelaban added epic area/dotnet-runtime Categorizes an issue or PR as relevant to the dotnet runtime support platform/wasm 🌐 Categorizes an issue or PR as relevant to the WebAssembly platform labels Nov 25, 2020
@jeromelaban jeromelaban changed the title .NET 5 support [WebAssembly] .NET 5 support Nov 25, 2020
jeromelaban added a commit to unoplatform/Uno.Playground that referenced this issue Feb 10, 2021
@jeromelaban jeromelaban added the difficulty/tbd Categorizes an issue for which the difficulty level needs to be defined. label Feb 15, 2021
@jeromelaban jeromelaban pinned this issue Feb 18, 2021
@MartinZikmund MartinZikmund added difficulty/challenging 🤯 Categorizes an issue for which the difficulty level is reachable with internals understanding and removed difficulty/tbd Categorizes an issue for which the difficulty level needs to be defined. labels Jun 10, 2021
@DierkDroth
Copy link

DierkDroth commented Jan 8, 2022

@jeromelaban your post above is very valuable.

I clicked through the items and found that an update to reflect latest WindowsAppSDK + .NET 6 changes/improvements could help

  • some items appear to be closed
  • may be there are other/new ones?!?

@jeromelaban
Copy link
Member Author

@DierkDroth We'll be updating this for .NET 7 as we go.

@jeromelaban jeromelaban unpinned this issue Mar 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/dotnet-runtime Categorizes an issue or PR as relevant to the dotnet runtime support difficulty/challenging 🤯 Categorizes an issue for which the difficulty level is reachable with internals understanding epic platform/wasm 🌐 Categorizes an issue or PR as relevant to the WebAssembly platform
Projects
None yet
Development

No branches or pull requests

4 participants
@MartinZikmund @jeromelaban @DierkDroth and others