Separate concretization of build dependencies (coupled)#38447
Separate concretization of build dependencies (coupled)#38447tgamblin merged 44 commits intospack:developfrom
Conversation
da038b6 to
8669f3e
Compare
|
Comparing the transformation of the encoding to prepare for the introduction of separate concretization of build dependencies: radiuss.8669f3e3f153de172329bc3394991b64f530665c.csv Table details
So far only a single node is allowed, and the runtime is expected further slow-downs as we introduce separate concretization of build dependencies.1 Benchmark done with:
Footnotes
|
1fcd454 to
d761d92
Compare
|
This is a plot of the slow-down due to the more complex encoding in 9742a8e and 4285810 to map nodes to packages. Both plots have been obtained allowing a single nodes per package, and they reflect the effect of the added complexity in the encoding. radiuss.d761d926a82e8ed7a23c54d8ce608760da764f71.csv Table details
The encoding passed a first sanity check, i.e. it passes the unit tests under the same conditions of the previous encoding. Now we need to recover performance. Three possible step forward:
|
|
Compared to #38447 (comment), this is the effect of the following optimizations:
As before, I am testing against develop under the same conditions, so I allow just one node per package. radiuss.8b845bd4b157a0f03eb46313b98ef15977960417.csv Table details
Notes
Footnotes
|
8b845bd to
d340ba6
Compare
|
Latest commit is a step towards getting full separation:
radiuss.d340ba67cb3650a78b2f14fcab4f5c6bb89be244.csv Table details
|
|
Latest results: radiuss.develop.csv Table details
@tgamblin @becker33 With the exception of I am able to solve #38447 (comment) in a "fully separate way" in ~15 seconds by adding the 5 rules you see in the comment (to help looking for a solution). Grounding doesn't seem to be an issue anymore, as long as we select what we allow to fork with a finer granularity than what we tried before. I think this PR is ready for a review, to merge |
69371ae to
96748e0
Compare
965f5fc to
18ad6fe
Compare
18ad6fe to
31c67b8
Compare
For the time being this directive prevents the vendored package to be in the same DAG as the one vendoring it.
This even though right now we don't have cases where the effect is on another package.
c13c374 to
8a2efcf
Compare
If a possible provider is not used to satisfy a vdep, then it's not a provider of that vdep.
|
The latest commit c84df00 solves #38447 (comment) according to what we decided in DM. Here's the build of Comparing performance: radiuss-8a2efcf.csv The change in the concretizer didn't impact performance in the benchmark. |
|
Looks like there's a bug in how concretizer error messages are formatted: BeforeAfter |
|
Also here: |






closes #35739
closes #34889
closes #27835
closes #38587
Tasks
node(ID, Package)nested facts, but still allow only forID==0(a87e2a7)conflictsrefer to direct dependency or self onlyvendorsdirective for cases where a packageconflictswith a random other because it exposes its own internal version of it