From the meeting minutes:

First up today, the discriminated unions working group presented the proposal they've been working on for a while to the broader LDM. This was a broad overview session, rather than a deep dive into nitty-gritty questions; there are still plenty of little details that will need to be filled in, but we're cautiously optimistic about this proposal and moving forward with it. There was some concern about some of the ternary behavior, but we can dig more into that as we bring this proposal back for detailed follow ups in the future.

[–] 1 point 3 years ago* (3 children)

Does it effectively output a single binary?

Yes, that's one of the points of NativeAOT, a self-contained single binary, exactly as Go does it.

Does it create some kind of clusterf*k and awkward packaging formats like other MS solutions such as UWP?

No, you can create .exe files.

Will it actually be deployable to a random fresh install of Debian 12 or Windows 10?

Yes, NativeAOT supports Windows, Linux and MacOS, x64 and Arm64.

What about compatibility with older systems?

Not sure about that, I suppose it depends on the targets each .NET version support. For example, .NET 8 will drop RHEL 7 and only RHEL 8 and later.

And to play devil's advocate: this won't work for all existing .NET applications. If you use reflection (which is AOT unfriendly), chances are that you will have to rework a ton of stuff in order to get to a point where NativeAOT works. There's a middle solution though, called ReadyToRun, which has some advantages compared to running fully with the JIT compiler.

  • source
  • parent
  • context
  • view more: next ›