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

Reloaded II - Support .NET 5 #12

Closed
Sewer56 opened this issue May 8, 2019 · 3 comments
Closed

Reloaded II - Support .NET 5 #12

Sewer56 opened this issue May 8, 2019 · 3 comments
Labels
accepted Proposed change was accepted to be fixed/handled by the developers. completed Work has been completed by the developers. help wanted Extra attention is needed

Comments

@Sewer56
Copy link
Member

Sewer56 commented May 8, 2019

A few days ago, .NET 5 was introduced, alongside upcoming features such as Java interoperability and support for static AOT compilation based on LLVM, which to me both sound like a wet dream allowing to both introduce a larger user base to Reloaded and bring forth considerable startup performance improvements.

Nonetheless, it would be nice to have Reloaded running on bleeding edge frameworks as it always been the case. Ideally I would very much like to be able to have mods running on .NET Standard DLLs, but thus far this has not been possible.

The Major Problem: DLL exports

Reloaded and Reloaded-II are based both on DLL Injection, which requires the use of DLL Exports.

3F/DllExport

Currently support for DLL Exports is provided by 3F/DllExport , which unfortunately does not support either the new Project SDK .csproj format or .NET Standard/.NET Core/CoreCLR.

The author is uncertain of when support may arrive due to a busy lifestyle. 3F/DllExport#90

An alternative path?

On the other hand, the inclusion of DLL Exports in Roslyn and the C# language has been a long requested feature: dotnet/csharplang#308 , dotnet/roslyn#1013 , dotnet/roslyn#11771 etc.

It is known that DLL Exports already is and has for a long time been supported inside both .NET Framework as well as more recently CoreRT.

In a context slightly unrelated to Reloaded. Given that in nature .NET 5 will unify the three major runtimes, I believe the DLL Export feature would be especially useful if not simply absolutely necessary when working on Linux/OSX/Unix environments where the native C & C++ languages dominate to allow the mixing of managed and unmanaged code.

Time will only tell should DLL Exports become an official language feature.

@Sewer56 Sewer56 added this to the Reloaded II - Post Release milestone May 8, 2019
@Sewer56 Sewer56 added the help wanted Extra attention is needed label May 8, 2019
@Sewer56
Copy link
Member Author

Sewer56 commented Jun 14, 2019

Relevant similar issue for further reference: TheLastRar/CLR-DEV9#14

@Sewer56
Copy link
Member Author

Sewer56 commented Jul 22, 2019

.NET Core support implemented via manually hosting runtime.
Closing.

@Sewer56 Sewer56 closed this as completed Jul 22, 2019
@Sewer56 Sewer56 reopened this Aug 19, 2020
@Sewer56
Copy link
Member Author

Sewer56 commented Aug 19, 2020

Reopening as we can't support .NET 5 due to dotnet/runtime#39176 .

@Sewer56 Sewer56 added the accepted Proposed change was accepted to be fixed/handled by the developers. label Aug 19, 2020
@Sewer56 Sewer56 added the completed Work has been completed by the developers. label Dec 31, 2020
@Sewer56 Sewer56 closed this as completed Dec 31, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted Proposed change was accepted to be fixed/handled by the developers. completed Work has been completed by the developers. help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant