ComponentTreeDepsProcessor generates code in a non-deterministic order, breaking caching
See original GitHub issueWe’re still on v2.38.1 so it’s possible this has been fixed, but I didn’t notice anything in the release notes.
We don’t have solid repro steps, but we’ve noticed that every so often, our HiltApplication_ComponentTreeDeps.java
file generates a file that has the same content, but different ordering, causing an unnecessary rebuild.
It seems to happen within the aggregatedDeps
property of the @ComponentTreeDeps
annotation, although I don’t know that it’s limited to that.
Issue Analytics
- State:
- Created 2 years ago
- Comments:23
Top Results From Across the Web
Code generation for Mercury - CiteSeerX
Abstract. We describe a compiler for Mercury, a new purely declarative logic programming language designed to provide the support that groups of application ......
Read more >SPIRAL: Code Generation for DSP Transforms
SPIRAL generates high-per- formance code for a broad set of DSP transforms, including the discrete Fourier transform, other trigonometric transforms, filter.
Read more >Graph Frames Intro · sds-2-2 - LaMaStEx
GraphX is a new component in Spark for graphs and graph-parallel computation. At a high level, ... For example in the following code...
Read more >https://raw.githubusercontent.com/Microsoft/perfvi...
This column shows how CPU was used for that method (or any method it calls) over the collection time interval. Time is...
Read more >The Tao of Parallelism in Algorithms
process will ultimately terminate and produce a guaranteed-quality mesh. Different orders of processing bad triangles lead to different.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Playing around with it a bit, I think the order is correlated to what is being built. In particular, a clean build will always reproduce the same output, but an incremental build will produce different output depending on which sources needed to be rebuilt. IIUC, when we’re grabbing elements from a package, the most recently processed sources will appear last in the list.
Thus, we can’t hope for a well defined ordering of elements from these packages, and I think our only option here is just to manually sort them ourselves.
Thanks for reporting! I’ll look into getting a fix for this soon.
Ah, thanks I did miss the part about making the change. I am now able to reproduce it, thanks!