On Feb 6, 2013, at 9:48 PM, Matthew Knepley <knepley at gmail.com> wrote:
> On Wed, Feb 6, 2013 at 9:33 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote: > On Wed, Feb 6, 2013 at 7:35 PM, Barry Smith <bsmith at mcs.anl.gov> wrote: > > In 1994 NULL was a pain because for different systems it was in different > include files and sometimes you had to do very nasty stuff like > > #if !defined(NULL) > #define NULL 0 > > This is why PETSC_NULL came into existence. > > Is the world a different place now? Based on the fact there are numerous (272 > to be exact thanks to Karl) uses of NULL in PETSc today and they seem to > cause absolutely no grief? (Except to Barry's tidy little mind) it seems > PETSC_NULL is not needed any longer? > > If this is the case I propose we eradicate PETSC_NULL replacing it > everywhere with NULL. > > We had a similar discussion a while back. > > http://lists.mcs.anl.gov/pipermail/petsc-dev/2011-November/006315.html > > Using NULL instead of PETSC_NULL does not help to safely pass a null pointer > value to a variadic function, but PETSC_NULL is also unsafe. > > Note that nearly all instances of 'NULL' are in either sieve (disabled by > default), examples, or pretty new code. (It's even possible that there were > zero occurrences in critical library back when we had that thread.) However, > there are certainly a few instances now and we've received no mail, so I'm > also in favor of replacing PETSC_NULL with NULL. > > It's C89 after all, so as long as we are sure to include stddef.h, we should > be fine. > > I don't mind removing it, although the Fortran people still have to use > something else. We can leave it as PETSC_NULL_XXXX in Fortran as it is now. Barry > > Matt > > -- > What most experimenters take for granted before they begin their experiments > is infinitely more interesting than any results to which their experiments > lead. > -- Norbert Wiener
