[petsc-dev] petscversion.h unchanged but API changed for MatGetSubMatrix and others

Eric Chamberland Eric.Chamberland at giref.ulaval.ca
Fri Mar 10 13:42:43 CST 2017


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 <bsmith at mcs.anl.gov> 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.
>



More information about the petsc-dev mailing list