Hi,

thanks for these infos.

Isn't there a bug into the macros?

Let's say I retreived a copy of petsc-master 3.7.2 then I have:

#define PETSC_VERSION_RELEASE    0
#define PETSC_VERSION_MAJOR      3
#define PETSC_VERSION_MINOR      7
#define PETSC_VERSION_SUBMINOR   2

Now an API changed in officiel release 3.7.4 and over, in my in-house code, if I use:

#if PETSC_VERSION_LT(3,7,4)

for my "old" petsc-master 3.7.2, it first checks:

(PETSC_VERSION_RELEASE == 1 && ..

which is erroneously false.... no?

Eric





On 10/03/17 02:10 PM, Jed Brown wrote:
Barry Smith <[email protected]> writes:

   Eric,

      The model we have followed is that master retains the version number of 
the latest patched release and then at the time of a release the version number 
is increased.  For releases  PETSC_VERSION_RELEASE  is defined to be 1 while 
for master PETSC_VERSION_RELEASE  is defined to be 0. Thus if you want to 
switch between master and release you need to also include a check on the 
PETSC_VERSION_RELEASE value.

PETSC_VERSION_LT and related comparison macros handle non-RELEASE as
+Inf for the purpose of comparison.  I recommend using those macros.

Reply via email to