Le 27/11/2019 à 06:16, Micah Kornfield a écrit : > >> Can you give an example of circular dependency? Can this be solved by >> having more "type_fwd.h" headers for forward declarations of opaque types? > > I think the type_fwd.h might contribute to the problem. The solution would > be more granular header/compilation units when possible (or combining > targets appropriately). An example of the problem is expression.h/.cc and > operation.h/.cc in the compute library. Because operation.cc depends on > expression.h and expression.cc relies on expression.h there is cycle > between the two targets.
I don't get how this is a cycle. It only means Bazel is too limited to distinguish between a header dependency and a C++ module? For me, a cycle would be something like "expression.h includes operation.h which includes expression.h" (I've actually already seen things like this, though not in Arrow AFAIR). > I thought computer > upgrades where something to look forward to ;) Do you mean that long compile times are ok because we can ask contributors to buy 16-core monsters? Regards Antoine.