Closed
Description
This is an issue to track the implementation progress of C# with the mono runtime as well as the Native ahead of time LLVM compiled implementation.
- Worlds
- Interfaces
- Functions
- Integers
- Floating point numbers
- Strings
- Mono runtime tests - Dependent on (If we don't want to create 2 completely separate implementations to be able to support mono) maybe create WASM module export from
[UnmanagedCallersOnly]
dotnet/runtime#86985 and create WASM module import from any[DLLImport]
which doesn't match known static native symbols dotnet/runtime#86984 - Native AoT LLVM runtime tests
- Results - (C#) - Basic types, Lists, Results & Variants #807
- Options
- List - (C#) - Basic types, Lists, Results & Variants #807
- Enum
- Records
- Flags
- Variants - (C#) - Basic types, Lists, Results & Variants #807
- Tuples
- Resources
- Handles
- Static Functions
- Methods
- c#: Usage instructions #1074
- c#: Put shared types in a C# lib - https://github.com/bytecodealliance/cm-dotnet #1073
- Runtime tests
- Code Generation tests
- Enabled skipped tests in
- bugs
- c#: dotnet Runtime not started correctly when using strings (or heap objects) as first call to exported function #777
- c#: projects with
<OutputType>Exe</OutputType>
don't generatecabi_realloc
when compiled #778 - return pointer alignment - in some cases get error might be related to [NativeAOT-LLVM] Fix a GC hole in the new LSSA implementation dotnet/runtimelab#2531 ((C#) - Basic types, Lists, Results & Variants #807)
- temporarily remove C#
variants
runtime test #963
future work:
- Streams
- Integration with GC proposal. Related: .NET Notes WebAssembly/gc#77, [wasm][post-MVP] garbage collection proposal in .NET dotnet/runtime#94420
- Exception handling https://github.com/WebAssembly/exception-handling/tree/master
- Shared everything dynamic linking https://github.com/WebAssembly/component-model/blob/9c43f51ebf775e8397469a744d97c8575a7b7386/design/mvp/examples/SharedEverythingDynamicLinking.md
Lower priority items:
- c#: namespacing to be idomatic c#. Right now things are a mix of lower and upper case #1075
- make options implementation use c# generics - Resolved in: (C#) - Basic types, Lists, Results & Variants #807
- c#: fix imports so they are only included if needed #1076
- c#: create a cli option to generate the csproj and replace that for the tests. #1077
- c#: only use version info if required #1078