[DRMAA-WG] OGF34 summary

Roger Brobst rogerb at cadence.com
Thu Mar 29 19:53:49 EDT 2012


Referring to the drmaa2 C binding header at http://bit.ly/zwgDFP
I see:

typedef void * drmaa2_jsession_h;
typedef void * drmaa2_rsession_h;
typedef void * drmaa2_msession_h;
typedef void * drmaa2_j_h;
typedef void * drmaa2_jarray_h;
typedef void * drmaa2_r_h;


whereas, I expected something more like:

struct drmaa2_jsession_s; /*forward*/
struct drmaa2_rsession_s; /*forward*/
struct drmaa2_msession_s; /*forward*/
struct drmaa2_j_s;	  /*forward*/
struct drmaa2_jarray_s;   /*forward*/
struct drmaa2_r_s;        /*forward*/

typedef struct drmaa2_jsession_s * drmaa2_jsession_h;
typedef struct drmaa2_rsession_s * drmaa2_rsession_h;
typedef struct drmaa2_msession_s * drmaa2_msession_h;
typedef struct drmaa2_j_s        * drmaa2_j_h;
typedef struct drmaa2_jarray_s   * drmaa2_jarray_h;
typedef struct drmaa2_r_s        * drmaa2_r_h;


A problem with using,
     typedef void * drmaa2_jsession_h;
in a C binding is that any pointer type can be passed to a
function declared like:
     extern void myFavoriteFunction( drmaa2_jsession_h firstArg );
since it effectively accepts a 'void *'.

For example:

/*start-of-file mymain.c*/
#ifdef CURRENT
typedef void * drmaa2_jsession_h;
#else
struct drmaa2_jsession_s; /*forward*/
typedef struct drmaa2_jsession_s * drmaa2_jsession_h;
#endif

extern void
myFavoriteFunction( drmaa2_jsession_h firstArg );

int main( int argc, char* argv[] ) {
     myFavoriteFunction( &argc );
     return 0;
}
/*end-of-file mymain.c*/


$ gcc -c -DCURRENT mymain.c
$ gcc -c -DCURRENT -Wall -pedantic mymain.c
$ gcc -c -UCURRENT mymain.c
mymain.c: In function ?main?:
mymain.c:13: warning: passing argument 1 of ?myFavoriteFunction? from 
incompatible pointer type
$ gcc --version
gcc (GCC) 4.1.2


-------- Original Message  --------
Subject: [DRMAA-WG] OGF34 summary
From: Peter Tröger <peter at troeger.eu>
To: drmaa-wg at ogf.org <drmaa-wg at ogf.org>
Cc: Thijs Metsch <thijs.metsch at de.ibm.com>, 
"alexander.papaspyrou at tu-dortmund.de" 
<alexander.papaspyrou at tu-dortmund.de>, AndrewX Edmonds 
<andrewx.edmonds at intel.com>
Date: 03/16/2012 12:54 AM

Dear all,

as announced, I spent two days at OGF 34 in Oxford. Here is the short 
summary from DRMAA perspective:

1.) C Binding

Andre Merzky and me spend some minutes on fixing the final issues in the 
C binding header file. As before, the latest version is here:

http://bit.ly/zwgDFP

We did another round of re-naming to get the method names even shorter. 
The list iterator is now more array-alike.

Since I get frequent requests for the final header file, I will start 
the document preparation during the next days. If you want to influence 
the C layout of DRMAAv2, this is your last chance.

[ ... DELETED TEXT ... ]



More information about the drmaa-wg mailing list