[Mpi-22] Ticket #46: Add const Keyword to theC bindings-implementation
Jeff Squyres
jsquyres at [hidden]
Fri Mar 20 14:42:24 CDT 2009
On Mar 19, 2009, at 9:20 PM, Pavan Balaji wrote:
> > - testing that const is in the right places in the interface is
> > *exactly* the right kinds of tests to write.
>
> Maybe I'm missing something here, but can you give some examples of
> tests that would fail with this change that a new and strict compiler
> will not be able to catch? Obviously I'm referring to cases which
> would
> work correctly if this ticket wasn't accepted, but will not work if
> it were.
>
Clearly, an implementor who passed a const variable through a non-
const interface would get either a compiler warning or error. If the
implementor disregards those messages, well, then I guess the battle
is lost. ;-)
The testing that I'm talking about would be writing tests to ensure
that const was put in the right place in all the interfaces -- being
able to repeatably prove that (i.e., regression testing). Be creative
-- perhaps you can use the MPI's mpi.h with a test code that
implements MPI_Send with const in the wrong parameter location. It
should fail to compile, right? Or perhaps it has const in the right
parameter location but then doesn't cast it away and intentionally
modifies it. That should also fail, right? Those are good QA tests.
> Unless there are such examples, all this ticket requires is letting
> the
> compiler find the problems for you. In fact, some tickets in 2.1
> required more QA, as a compiler was useless in catching any real
> problems with them and new tests had to be written (e.g., the change
> with respect to 0-dim cartesian topologies, or any other trivial
> change).
>
Sure, I wrote a few tests for this case for Open MPI. We try to write
tests for most new major MPI functionality.
But the 0-dim cartesian topologies creates a few tests, not 90+ tests.
> So, what's the motivation to move this to 3.0?
>
What's the *need* to make this 2.2? Why such a strong push to get
this in 2.2? What's the rush? As Brian noted, any MPI implementation
can have const in their C bindings today, regardless of what happens
in 2.2.
--
Jeff Squyres
Cisco Systems
More information about the Mpi-22
mailing list