[petsc-dev] ugliness due to missing lapack routines

Barry Smith bsmith at mcs.anl.gov
Thu Feb 7 22:33:14 CST 2013


On Feb 7, 2013, at 10:18 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:

> 
> On Thu, Feb 7, 2013 at 10:05 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> The reason I am insistent on minimizing CPP is that it is easy to teach a pure C manipulator stuff. It is very difficult (I submit) to teach a CPP + C manipulator much of anything expecially when "nasty" CPP tricks are used. Plus there are good C manipulation tools coming on line, there are no, and never will be, good CPP + C manipulation tools.
> 
> But you're still not proposing manipulating pure C.

   No, you are saying that I am not proposing manipulating pure C. I did not say that. 

> You're proposing manipulating your new language that looks like C with annotations in comments or special keywords or new control structures or something and can be compiled to C by your "preprocessor".

   You are imagining the "annotations in comments" and the "special keywords" I never said they would be there.

   I want tools that OPERATE on C code. That is they take a chunk of pure C code as input and return a chunk of pure C code as output
(the transformations I want to perform on the code are completely external to that chunk of code).  You still want to insist that the transformations I want to perform and the C code I want it performed on MUST be in the same file mixed together in a bunch of ASCII (i.e formatted comments or special keywords). I submit that this is absolutely the wrong way to do it (sorry Boyana). 

   For example, with simple C++ templates you imbed in the ASCII text you write the C code plus the "special symbols" that can transform to different types. The compiler then does the transformation as needed on this beast. This is not what I am wanting to do.
> 
> Sure, some (maybe substantial) parts of the code will be equivalent to pure C (with programmable semicolons or whatever, in the sense that error handling gets injected except where it's explicitly told not to), but you can also "manipulate" C+CPP code in the sense that you can expand all the macros and then you'll actually have C semantics so that the manipulations make sense.




More information about the petsc-dev mailing list