wit-bindgen
wit-bindgen copied to clipboard
C# Implementation Tracker
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.
- [x] Worlds
- [x] Interfaces
- [x] Functions
- [x] Integers
- [x] Floating point numbers
- [x] Strings
- [ ] Mono runtime tests - Dependent on (If we don't want to create 2 completely separate implementations to be able to support mono) https://github.com/dotnet/runtime/issues/86985 and https://github.com/dotnet/runtime/issues/86984
- [x] Native AoT LLVM runtime tests
- [x] Results - https://github.com/bytecodealliance/wit-bindgen/pull/807
- [x] Options
- [x] List - https://github.com/bytecodealliance/wit-bindgen/pull/807
- [x] Enum
- [x] Records
- [x] Flags
- [x] Variants - https://github.com/bytecodealliance/wit-bindgen/pull/807
- [x] Tuples
- [x] Resources
- [x] Handles
- [x] Static Functions
- [x] Methods
- [ ] Usage instructions
- [ ] Put shared types in a C# lib - https://github.com/bytecodealliance/cm-dotnet
- [x] Runtime tests
- [x] Code Generation tests
- [x] Enabled skipped tests in https://github.com/bytecodealliance/wit-bindgen/blob/5f903613cfb70364b89bbab92d62e85db16cf4e8/crates/csharp/tests/codegen.rs#L15
- bugs
- [x] https://github.com/bytecodealliance/wit-bindgen/issues/777
- [x] https://github.com/bytecodealliance/wit-bindgen/issues/778
- [x] return pointer alignment - in some cases get error might be related to https://github.com/dotnet/runtimelab/pull/2531 (https://github.com/bytecodealliance/wit-bindgen/pull/807)
- [ ] #963
future work:
- [ ] Streams
- [ ] Integration with GC proposal. Related: https://github.com/WebAssembly/gc/issues/77, https://github.com/dotnet/runtime/issues/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:
- [ ] fix c# namespacing to be idomatic c#. Right now things are a mix of lower and upper case
- [x] make options implementation use c# generics - Resolved in: https://github.com/bytecodealliance/wit-bindgen/pull/807
- [ ] fix imports so they are only included if needed
- [ ] create a cli option to generate the csproj and replace that for the tests.
- [ ] only use version info if required (https://github.com/bytecodealliance/wasmtime/pull/7656#issuecomment-1847540814)
@yowl @jsturtevant @danbugs