Query: GMP completeness testing

Brad Chamberlain bradc at cray.com
Fri Jun 25 02:31:19 CEST 2010


Hi GMP community --

[Please feel free to respond to me directly or point me to the right part 
of the manual or an existing thread if this is a commonly-asked question. 
(I did some searching, but didn't come up with anything).]

I am part of a team at Cray Inc. that is developing a new parallel 
programming language called Chapel.  One of our goals is to support 
interoperability with existing languages to avoid rewriting existing 
libraries.  By requests from our user community, we have identified GMP as 
one of the first external libraries to try and support via 
interoperability.  As of a few hours ago, we have a Chapel port of the 
gmp-chudnovsky.c program up and running by describing the relevant GMP 
types and functions using our extern capability.  (Chapel currently takes 
a source-to-C compilation approach, so interoperating with C is easier 
than most languages).

As a next step, we'd like to flesh out this prototype to cover all GMP 
types and functions, not just those used by gmp-chudnovsky.  Given the 
effort required to convert any given test written in C into Chapel and the 
sheer number of tests in your source tree, I was curious if there are any 
individual tests that cover the full breadth of the interface, presumably 
without testing any single routine in as many permutations as one would 
ultimately want.  Porting such a test would give us some degree of 
confidence that we at least had covered the complete API.

More generally, I'm curious how the other language efforts that have 
provided GMP interfaces (as itemized in your manual) have dealt with 
completeness/correctness testing in case there are lessons learned there 
that would be helpful to us.

Thanks very much for any pointers and information.  And thanks for 
creating such an interesting and useful open source package.

-Brad Chamberlain
http://chapel.cray.com/
https://sourceforge.net/projects/chapel/


More information about the gmp-discuss mailing list