You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Due to #42, we have to reload hints each round. While perf is much improved with #55, I think we can do more.
✅ Get back to loading only once from the classpath lazily (i.e. don't load at all until we're for sure generating merged classes). I think we can get back to this by only storing exactly which information is needed, and not keeping symbols.
✅ Split the populating step out separate from in-round-generated contributions. Similar to what ContributesSubcomponent handling does. Load from the classpath once, load the rest from the Resolver. We would need to introduce a new annotation on generated hint properties to do this to look up with (i.e. @AnvilHint), or possibly consider an alternative that's faster than KSP's lookup of properties.
Another option for this could be to wrap everything up in just one processor rather than the current multiple processors. Then the parent processor could ask for the generated types back directly from the delegate processors. That would be a larger scale overhaul though.
Consider reworking hints. This would be a change from upstream, but an optimization we could do would be to limit the scopes we search each time. Currently all hints are generated into a global anvil.hint package. However, we could make the scope part of this package, such that we look in anvil.hint.com.example.appscope for all com.example.AppScope scopes. This lets us more lazily load scopes for various components, though doesn't make much of a difference for projects that merge for all scopes.
✅ Consider making @ContributesSubcomponent handling another flag that can be opted out of. For projects that don't use it, they can turn this off
The text was updated successfully, but these errors were encountered:
Due to #42, we have to reload hints each round. While perf is much improved with #55, I think we can do more.
Resolver
. We would need to introduce a new annotation on generated hint properties to do this to look up with (i.e.@AnvilHint
), or possibly consider an alternative that's faster than KSP's lookup of properties.anvil.hint
package. However, we could make the scope part of this package, such that we look inanvil.hint.com.example.appscope
for allcom.example.AppScope
scopes. This lets us more lazily load scopes for various components, though doesn't make much of a difference for projects that merge for all scopes.@ContributesSubcomponent
handling another flag that can be opted out of. For projects that don't use it, they can turn this offThe text was updated successfully, but these errors were encountered: