It's possible to integrate Argument Clinic into the build process
without rewriting it in C. We could write a small C program that
looked on your path for a suitable Python 3 interpreter, and ran
Tools/clinic/clinic.py under that interpreter. If it failed to find
such an interpreter it could print a warning message.
Alternatively, we could add a checksum for the Clinic *input* block
to the output somewhere. This would give the C tool the ability to
check and see if the Clinic input had changed, and only bother to
run clinic.py if it had.
However, the generated output is still going to be checked in to the
repository regardless.