ForNeVeR / ForNeVeR/Cesium

Native interop: vararg support

Open
#774 1 comment 1 reaction 0 assignees View on GitHub
area:cil-interop kind:feature status:help-wanted
Dominant language
C#
Stars
451
Forks
49
Avg merge
13h 59m
Merged PRs (30d)
6

Description

@kekyo mentioned some concerns he had during building of [chibicc-cil](https://github.com/kekyo/chibicc-cil), a project sharing some purposes with Cesium.

Here's a Fediverse thread: https://mastodon.sdf.org/@kekyo/113932383592543947

In short, one of the downsides was the lack of proper native vararg support in .NET on platforms other than Windows.

Related issue in .NET runtime: https://github.com/dotnet/runtime/issues/48796

If we want to enable full native interop in Cesium, then we'll have to do _something_ about this.

My current idea would be to include a custom marshaller, or native modules, or runtime machine code emit, and support for the common call conventions.

Whatever route we take, we could consider implementing this in a shared library for the other projects to reuse if they need.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.