Stream: SIG Documentation

Topic: Detailed documentation for C / C++ development


view this post on Zulip Milan (Aug 17 2024 at 19:48):

I'm curious what the goals for C/C++ documentation and tooling are expected to be like over time.

To put it in user story parlance: As a passable, maybe even okay, high-level language developer (JS, C# .NET, Java, python, etc), I'm interested in leveraging the component model to bring C/C++ libraries and even runtimes (I have two interpreted runtimes I didn't make, but I want to bring), into the component model ecosystem.

I'm "okay" with C/C++ as languages but the tooling and ecosystem around them much less so. I've been very successful using emscripten for bringing C/C++ to browsers, but I'd like to look at component model for both out of browser and maybe even browser as well. A very large part of why I have been able to be successful with emscripten is the level of documentation: https://emscripten.org/index.html

I think having that level of documentation around the C/C++ ecosystem would help a lot. I'm curious what the plans are if any:

view this post on Zulip Bailey Hayes (Aug 19 2024 at 16:00):

In our community we have several folks working towards the same use-case as you described. It would be extremely beneficial to have improved doc, tools, and additional resources to ease folks into a componentized ecosystem with C/C++. I understand from some of them that C++ folks that they'd like C++ specific bindings and docs to make things more ergonomic.

We've definitely talked to the emscripten folks but their focus is largely for the web target. I think we can find ways to complement each other. For example, I wonder if jco's wasip2 shims could be shared between the two projects.

This is absolutely within the goals of the BA.

view this post on Zulip Milan (Aug 19 2024 at 16:09):

In our community we have several folks working towards the same use-case as you described.

Do you know where that is being put together? So far the only component-model associated C/C++ docs I can find are the top-level README of wasi-sdk and an unmerged component-model docs PR:

Neither of which seem like the correct place for docs of the scope described above?

WASI-enabled WebAssembly C/C++ toolchain. Contribute to WebAssembly/wasi-sdk development by creating an account on GitHub.
Fixes #38 Creating as a draft for now as I would like to see #44 merged first as that will change the structure of /language-support - I will update the table of contents to match that once I can r...

view this post on Zulip Bailey Hayes (Aug 19 2024 at 19:55):

I think a project like componentize-cpp would be a good place to land those types of materials.

For example, we have the following projects today:

It would help to form a subgroup of SIG Guest Languages for C++ to organize this work.

The process to create a new BA project is to essentially create a GitHub issue with this template: https://github.com/bytecodealliance/governance/blob/main/templates/projects/proposal.md

We plan to update the template soon to incorporate hosted vs core project requirements. You may use this proposal as an example of the expanded template https://github.com/bytecodealliance/governance/issues/98

Contribute to bytecodealliance/governance development by creating an account on GitHub.
Proposing the adoption of StarlingMonkey as a Bytecode Alliance hosted project. Repository URL: https://github.com/bytecodealliance/StarlingMonkey StarlingMonkey StarlingMonkey is a component-nativ...
Contribute to bytecodealliance/componentize-py development by creating an account on GitHub.
Tooling for creating WebAssembly components from C# - bytecodealliance/componentize-dotnet
JavaScript toolchain for working with WebAssembly Components - bytecodealliance/jco
A Cargo subcommand for creating WebAssembly components based on the component model proposal. - bytecodealliance/cargo-component

Last updated: Dec 23 2024 at 13:07 UTC