Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NativeAOT-LLVM]: Outstanding tasks tracking issue #1828

Open
20 of 30 tasks
yowl opened this issue Jan 19, 2022 · 6 comments
Open
20 of 30 tasks

[NativeAOT-LLVM]: Outstanding tasks tracking issue #1828

yowl opened this issue Jan 19, 2022 · 6 comments
Labels
area-NativeAOT-LLVM LLVM generation for Native AOT compilation (including Web Assembly) help wanted Extra attention is needed

Comments

@yowl
Copy link
Contributor

yowl commented Jan 19, 2022

If someone want to contribute to the NativeAOT-LLVM branch, its not obvious what tasks need doing. This issue is a checklist of tasks that can be picked up by whoever is interested. Hopefully this will encourage engagement by providing a list where the difficulty can be marked. The list is in a vague priority list, top items = higher priority, but that's just my own preference and not official. Feel free to pick anything you like.

@MichalStrehovsky MichalStrehovsky added the area-NativeAOT-LLVM LLVM generation for Native AOT compilation (including Web Assembly) label Jan 20, 2022
@jkotas jkotas added the help wanted Extra attention is needed label Jan 20, 2022
@charlesroddie
Copy link

Once these tasks are done, what will be the status? Will users be able to compile dotnet coffee for running in browser and interacting via DOM or SkiaSharp or is deployment an additional project?

@yowl
Copy link
Contributor Author

yowl commented Jan 21, 2022

@charlesroddie For DOM, I hope, and no browser has implemented it yet, so its too early to say for sure, but interface types, and the Canonical ABI should allow c#, together with wit-bindgen to interact with the DOM without Javascript. Using Javascript you can do that now, just as Uno and Blazor do. But this is a compiler not a UI framework, so the various additional problems that frameworks like Uno and Blazor solve, e.g. marshalling strings, are not solved here (but some are solved with interface types and the Canonical ABI).

For Skia, that would be interesting to try now. I did look a while back and SkiaSharp had mono dependencies for it's WebAssembly target, but those may have gone now. There's nothing pending I can think of, or in the todo list above, that would prevent Skia from working now, it's a question of what SkiaSharp's dependencies are.

dotnet publish works now producing standard emscripten boiler plate html pages. You can control that with additional options to emcc via /p:EmccExtraArgs= on the dotnet publish command line.

Edit. I tried this and hit #1830 so we'll need that implemented. Added it to the list.

@yowl
Copy link
Contributor Author

yowl commented Jan 25, 2022

Skia example, Didn't need #1830 in the end, that was a red herring

https://github.com/yowl/wskia/tree/master

@guylangston
Copy link

I would be interested/motivated to help with Linux Build, where is the best place to start?

@yowl
Copy link
Contributor Author

yowl commented Jan 26, 2022

I would be interested/motivated to help with Linux Build, where is the best place to start?

First get the prerequisites installed so you can install and build the feature/NativeAOT branch. See https://github.com/dotnet/runtimelab/blob/feature/NativeAOT/docs/workflow/building/coreclr/nativeaot.md

Then you can have a read of #1797 which was my attempt at it . I'm not sure I was totally on track with what I did so if you look at my branch then bear that in mind.

@yowl
Copy link
Contributor Author

yowl commented Jan 26, 2022

Also, for general help, things that aren't related to this, you can try asking for help on gitter as some of us hang out there, depending on time zones etc. https://gitter.im/dotnet/corert

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-NativeAOT-LLVM LLVM generation for Native AOT compilation (including Web Assembly) help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

5 participants