[Bf-committers] C -> C++ Conversions / Failing build

Ray Molenkamp ray at lazydodo.com
Sun Apr 25 02:08:18 CEST 2021


All,

More and more code is getting converted to C++
and honestly couldn't be happier about that.

What I'm less thrilled about is the way this is
being done, devs work with GCC, don't test on
windows, violate the standard (use of designated
initializers in c++ breaks the build every...single
..time...) and skip code review all together and just
commit the work.

then build bots start failing, and if you're lucky
the dev is still around to fix issues, if not someone
else will have to janitor behind them.

This is not how things are supposed to go, we run
into the same issues over and over and over, enough
is enough, go trough review!

Things I am unhappy about is this [1] commit specifically

- Converted a bunch of code from C->C++ in master since he was doing "an experiment"
- Did no go through review
- Did not clean up the use of designated initializers (C++20 feature)
- Did not test on other platforms/compilers
- Did not check if work that "usually" breaks the build, broke the bots
- I was forced to spend a couple of hours on an issue that should not have
been an issue if the review process was used, time i did not have really

Hans Goudey kindly fixed the initalizers, but sadly there was more
trouble hiding in this commit, the core issue is the `WM_msg_subscribe_rna_anon_prop`
macro called in `info_header_region_message_subscribe` has this little nugget

    _WM_MESSAGE_EXTERN_BEGIN; \
    extern PropertyRNA rna_##type_##_##prop_; \
    _WM_MESSAGE_EXTERN_END; \

given it's C++ a decorated symbol was generated, which naturally can't be
found at link time. And before you go just `extern "C"` it, that is only
allowed at global scope, it appears, this macro is in its current form
is just not compatible with C++.

What I'd like to see in the future

- USE THE REVIEW PROCESS, C->C++ conversions have issues... every... single.. time...

What I'm going to do

I prodded the dev in chat before starting this email, if i have gotten no response
by the time I hit send , I will revert this commit, we can't have master failing for this long.

[1] https://developer.blender.org/rB9cce18a5858cb93da626f5f0fd7e09cd66637e05




More information about the Bf-committers mailing list