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

.Net 5 Support #14

Closed
3 tasks
TheLastRar opened this issue May 8, 2019 · 1 comment
Closed
3 tasks

.Net 5 Support #14

TheLastRar opened this issue May 8, 2019 · 1 comment

Comments

@TheLastRar
Copy link
Owner

With .Net 5, the .Net framework runtime will be replaced with .Net Core, As such, I will need to investigate what changes, If any, are required to add support.

A .Net Core build was done for done when investigation solutions for the Linux, so some work has been partilly completed.

  • Invistigate missing managed API's and workaround if needed
    .NET Core does not have all the APIs of .NET Framework, however, This project was only effected by the lack of Winforms. This should be resolved as of .NET 3.0

  • Native Exports

    • On windows, this is currently achived via DllExport, which lacks .Net Core support (Request for updates on support for DllExport on CoreCLR 3F/DllExport#90).
      Core 3.0 brings support for C++/CLI, so the required IL added by DllExport should be supported)
    • A C++/CLI wrapper might be possible, I've had issues surrounding plugin reloads as the wrapper and main plugin would be different assemblies, leading to "assembly hell" if multiple version of the same plugin was present. This was ogrinaly solved with the use of AppDomanins (before switiching to DllExport) but that technology is now absent.
    • A C++ hosting wrapper (as was tested for Linux) might be possible if the COM api provides more control over the runtime vs the linux api (which was lacking). Plugin reloads will lickly still be a hard problem to fully solve.
    • Possible addition to C# language to provide DllExport has been suggested, minimal progress seems to have be made regarding getting it approved Allow C# to export functions and constants to native code dotnet/csharplang#308
  • Runtime/PCX2 Interaction
    While the .Net Framework had almost no issues running within PCSX2, CoreCLR and Mono have both presented issues;

    • .Net Framework's System.Console does not get redirected by PCSX2, requiring a workaround to correctly log to the console.
    • Mono required signal chaning to be enabled and, more recently, preemptive thread suspend before the runtime is stable.
    • CoreCLR reportly would crash, this is an old report that I was unable to reproduce.
    • CoreCLR would interfere with the console redirection code (https://github.com/dotnet/corefx/issues/27935), causing PCSX2 to hang on exit, this mignt be a Linux only issue and would need to be checked on windows.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant