Mona Abdelaleim
10/05/2023, 3:21 PMdmitriy.novozhilov
10/06/2023, 7:19 AMLoadingOrder for extension points is no longer available. Is there a guaranteed order for plugin execution if we arrange them in a specific order?Ordering of extensions will be addressed after 2.0 release in 2.1 timeframe, see KT-55300
Within a single extension point, there are numerous checkers each called separately. Is there a defined order for their execution, and how continuous are these calls? Ideally, we want to measure the total time consumed by the plugin without logging each individual call. For example in the analysis phase, there are ~20 declaration checkers and ~30 expression checkers.In compiler checkers are grouped by type of element they check and run on each matching element in the following order IRRC: common compiler checkers -> platform compiler checkers -> plugin compiler checkers in order of plugins registration But because of this grouping different checkers may run different number of times depending on user code which is being compiled
Is there a way to collect telemetry data for the compiler as a whole?There is no builtin compiler mechanisms for it, but I can recommend to use async profiler and analyze its data. From my experience its most precise and easy way to inspect compiler performance
Javier
10/06/2023, 7:35 AMOrdering of extensionsDoes this mean compiler plugin ordering or any extension order from any compiler plugin?
Mona Abdelaleim
10/06/2023, 10:09 AMin order of plugins registrationDoes this mean, if I register a plugin at the beginning, it is the equivalent to having all its extension points as LoadingOrder.First?
dmitriy.novozhilov
10/06/2023, 10:10 AMDoes this mean compiler plugin ordering or any extension order from any compiler plugin?There was no design yet, so maybe both
Does this mean, if I register a plugin at the beginning, it is the equivalent to having all its extension points as LoadingOrder.First?Yes, it should work