Hey, >> This is a noble goal with my full support, yet very hard to achieve. How do >> we want to tackle CHKERRQ for example? > > This is actually an easy one. Once we have a pure C code that can be > completely represented in a full AST, then it is trivial to have a "pretty > printer" that automatically adds into the code the equivalent of __FUNC__, > PetscFunctionBegin/End, CHKERRQ(), PetscStackCall() etc BEFORE passing the > code into the compiler to be compiled down to object code.
Ok, I agree. The drawback is that it adds a dependency on the 'pretty-printer', though... > Thus PETSc will actually ultimately become simpler C code without all the > additional stuff we have added for error checking/handling etc. Happy days > :-) Happy days indeed! From my experience with refactoring it is more important to get rid of repetitive code blocks. In many parts this would be nothing but replicating the C++ template mechanism in a controlled manner. Best regards, Karli
