dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.48k stars 4.77k forks source link

Tracking issue for illumos and Solaris x86-64 port work #34944

Open am11 opened 4 years ago

am11 commented 4 years ago

Cut from https://github.com/dotnet/runtime/issues/4173.

Given below is a high-level list of work items for Solaris x86-64 port:

gwr commented 3 months ago

Also need: https://github.com/dotnet/runtime/pull/105424 before this passes all tests.

gwr commented 2 months ago

These two PRs are waiting on final review and integration:

With the changes in these two PRs, illumos works well enough to pass most tests.

am11 commented 2 months ago

These two PRs are waiting on final review and integration:

If you look around at the opened PRs, 10.0 changes are lining up and maintainers are busy finalizing 9.0 release. These delays (especially for new ports) happen during this time of the year. All the opened PRs pending .NET 9 -> 10 switch over will be reviewed in coming weeks.

Meanwhile, if you have capacity and want to stay productive, there are two remaining libs need porting System.Net.Security and System.IO.FileSystem.Watcher. This will complete the shared framework requirement (which dotnet/sdk and dotnet/msbuild rely on).

AustinWise commented 2 months ago

On the idea of various ways to do async IO mentioned in the FreeBSD issue linked above this comment: /dev/poll, Event Ports, and AIO were mentioned. Another possibility is the epoll emulation that has been in illumos since 2015. I think it would make sense to try to use the existing epoll code for SystemNative_WaitForSocketEvents and in other places before implementing a new async IO path.

am11 commented 2 months ago

Completely agree. These are mainly the showstoppers, the quickest way to complete the ShareFX functionality is preferred so we can move to enable source build.

gwr commented 2 months ago

Meanwhile, if you have capacity and want to stay productive, there are two remaining libs need porting System.Net.Security and System.IO.FileSystem.Watcher. This will complete the shared framework requirement (which dotnet/sdk and dotnet/msbuild rely on).

OK, thanks. I'm working on System.IO.FileSystem.Watcher One question on that: How important is "sub-tree" watch? If we only got events for in the current directory, would that be good enough for applications? (assuming we were to opt out of test cases related to changes in child paths)

am11 commented 2 months ago

I think we can start with simple solution to unblock the main APIs or to "get by". However, sub-tree watching is highly important for many advanced real world use-cases like development tools, IDEs, and build systems that need to monitor complex directory trees.