[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: initialization of XXX_COOKIE in C source files
Now I am a little worried. Don't some compilers dislike
unintialized, file scope
variables in shared libraries (I am thinking AIX).
Matt
If the need arises I will put all the = 0 back in.
We never got AIX shared libraries to work anyways :-)
Barry
On May 11, 2008, at 7:07 AM, Matthew Knepley wrote:
On Sat, May 10, 2008 at 7:49 PM, Barry Smith <bsmith@xxxxxxxxxxx>
wrote:
On May 10, 2008, at 6:08 PM, Lisandro Dalcin wrote:
I've noticed that in 2.3.3 all PETSc cookies are initialized to zero
in sources, but in DEV they are not initialized. What's the reason
of
^^^^^^^^^^^^^^^^
You are quick, I just pushed the
change
last night.
The reason why they where all initialized to zero was because
- a very long time ago all the cookies where hardwired numbers that
we
chose for each new class
- then we added the ability to request a cookie, but still support
the old
hardwired version. Passing in a pointer to a zero value meant you
were
requesting one, passing in a pointer to a nonzero one meant that the
cookie
had a hardwired value.
- over time all the hardwired ones were unhardwired, but the
convention
of initializing them to zero before hand was never changed.
There was some convoluted logic for why the PetscEvent values were
all initialized to zero also. When fixing up the events I also
fixed the
cookies
The reason is Barry's rule # 54, "nothing should be done in a code
without
a reason, otherwise it will be confusing to others looking at the
code."
For example,
even now, whenever anybody made some new events they initialized them
to zero, why? Not because they need to be, but simply because they
were in
code the developer copied from.
Were you taking advantage of their initialization to zero? If so,
rather
than depending
on each cookie being initialized to zero I would suggest handling
this type
of "check if initialized" stuff at a package by package level or
library by
library level.
Please let me know what you need.
Now I am a little worried. Don't some compilers dislike
unintialized, file scope
variables in shared libraries (I am thinking AIX).
Matt
Barry
this change?
--
Lisandro Dalcín
---------------
Centro Internacional de Métodos Computacionales en Ingeniería
(CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química
(INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594
--
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