-
-
Notifications
You must be signed in to change notification settings - Fork 909
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
WIP POC: Object Descriptor in Roslyn #2056
base: master
Are you sure you want to change the base?
Conversation
I came here from the now deleted CoreAoT issue. I'm curious if there is a short list of where we are using reflection where we can supercede it with Source Generators? |
Reflection on its own isnt that big of a problem as it works with AOT too, it just works differently the big problems that i know so i started with the first serializer, the objectdescriptor here ( editor serializer ) i wanted to remove the detection of what should be serialized and not the entire reflection when this is fixed we can continue with yaml https://github.com/NexStandard/StrideSourceGenerator/tree/IncrementalApproach then we have the major problems source generated you could start with a "peace meal" conversion of the core components like Stride.Core and Stride.Core.Design to convert them to AOT , i doubt that we will ever reach that with trimming probably stride.core.mathematics is a good place to start to convert to AOT which wouldnt require roslyn i dont know much about other areas like shaders and so forth, it would be good to have atleast some of the components AOT compiled, there should be something to allow a mix of aot and non aot but idk For now i cant continue developing this,as compilerservices is bugged currently, my code has a bug with partial classes, then it should almost work there are some logic flaws in how the objectdescriptor works so i need to add a empty descriptor for the nonsense classes |
PR Details
Instead of scanning with reflection in runtime multiple times, get the info through roslyn.
Should be used to unify Yaml, Object Descriptor and Assembly Processor towards Roslyn
Description
Related Issue
Motivation and Context
Types of changes
Checklist