Daniel P. Berrangé <berra...@redhat.com> writes: > On Tue, Mar 15, 2022 at 03:50:26PM +0100, Kevin Wolf wrote:
[...] >> ...using C++ in coroutine code means that all of the block layer would >> suddenly become C++ and would be most affected by this effect. I'm not >> sure if that's something I would like to see, at least until there is a >> clear tree-wide policy (that preferably limits it to a subset that I >> understand). > > Expecting maintainers to enforce a subset during code review feels > like it would be a tedious burden, that will inevitably let stuff > through because humans are fallible, especially when presented > with uninspiring, tedious, repetitive tasks. > > Restricting ourselves to a subset is only viable if we have > an automated tool that can reliably enforce that subset. Concur. We're talking about a complex subset of an even more complex whole, where few to none of us will fully understand either. > I'm not > sure that any such tool exists, and not convinced our time is > best served by trying to write & maintainer one either. > > IOW, I fear one we allow C++ in any level, it won't be practical > to constrain it as much we desire. I fear us turning QEMU into > even more of a monster like other big C++ apps I see which take > all hours to compile while using all available RAM in Fedora RPM > build hosts. While I'm certainly concerned about the often poor ergonomics of compiling C++ code, I'm even more concerned about the poor ergonomics of *grokking* C++ code. > My other question is whether adoption of C++ would complicate any > desire to make more use of Rust in QEMU ? I know Rust came out of > work by the Mozilla Firefox crew, and Firefox was C++, but I don't > have any idea how they integrated use of Rust with Firefox, so > whether there are any gotcha's for us or not ? Good question.