[DRMAA-WG] OGF34 summary

Peter Tröger peter at troeger.eu
Fri Mar 30 05:21:15 EDT 2012


Dear Roger,

thanks for this helpful correction.

Since the implementation needs to realize the true structures anyway, it 
makes even more sense to have forward definitions. I applied the same 
pattern also to drmaa2_list and drmaa2_dict.

The header file was updated accordingly:

http://bit.ly/zwgDFP

I am still working on the document text.

Best regards,
Peter.

Am 30.03.12 01:53, schrieb Roger Brobst:
> 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