On Mon, Nov 12, 2012 at 1:16 AM, Dominik Szczerba <dominik at itis.ethz.ch>wrote:
> Indeed. The problem was that the functions had to be virtual, so no > static possible in C++. > Can you check whether the function calling va_start needs to be static/non-virtual (Print), or just the function that you pass a va_list to (your VPrint)? > > > It could be compiler-dependent. C++ is not my favorite language. > > I am really curious, what is your favorite language? > Heh, there are very interesting languages that are not terribly practical, at least for scientific computing. Haskell and Racket come to mind. Extremely expressive and extensible. There is a very new language called Julia that I think is a pleasure to work with, though I think it will have growing pains. Then there are the practical languages like C and Python. If I were to leave C for a systems language, I would not ask for object oriented features, I would ask for (1) a proper module system and (2) native multiple dispatch. > > > PetscSynchronizedVFPrintf is missing, but should be added. > > (...) > > There is actually an implementation issue. > > It is possible that I will have to resolve it (by contributing code), > and therefore I may soon come back for some more pointers. > The problem is that you _can't_ implement the V versions without vasprintf() or similar because you can't determine the required buffer size without exhausting the va_list. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20121112/4fb3537f/attachment.html>
