wit-bindgen icon indicating copy to clipboard operation
wit-bindgen copied to clipboard

C# Implementation Tracker

Open silesmo opened this issue 1 year ago • 0 comments

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

silesmo avatar Oct 24 '23 18:10 silesmo