CosmosOS / IL2CPU

IL2CPU is a compiler for .NET IL code to compile to assembly language for direct booting.
BSD 3-Clause "New" or "Revised" License
278 stars 71 forks source link

Inserting PITTimers with abstracts voids as a dOnTrigger #107

Open JuliusCaesar12 opened 3 years ago

JuliusCaesar12 commented 3 years ago

Have you checked Github Issues for similar errors? I have checked for other issues, but the only one that came up was unrelated to the issue whence this has arisen. Exception Post the exception returned by Visual Studio "Exception: System.Exception: Error compiling method 'SystemVoidSystemCProcessingProcMGRKStartSystemCProcessingCriProc': System.Exception: After interpreting stack types, nothing changed! (First instruction needing types = IL_0020: Ldvirtftn)" VS Output Logs Post the entire output log given by Visual Studio for the build https://pastebin.com/KuyrsEjX To Reproduce Describe any changes done to a clean kernel for this error to occur. Inserting a PITTimer with a possibly-defined abstract void will cause this error in IL2CPU Screenshots If applicable, add screenshots to help explain your problem. Screenshot (60)

Context Before posting please confirm that the following are in order [Yes] Both Cosmos VS Extensions are installed [Yes] The Cosmos nuget packages are installed

Add any other context about the problem which might be helpful. I am running the latest devkit.

quajak commented 3 years ago

This seems like a problem with il2cpu stack analysis. It might be fixed by changes with .net 5.0 but to be sure can you reproduce this issue while using fake classes (so new empty classes, not actual cosmos types), so I can easily reproduce this in unit testing?

JuliusCaesar12 commented 3 years ago

https://pastebin.com/wKyaLXpc I have created the empty classes without using any Cosmos types.

quajak commented 3 years ago

Thank you! Will look into it