Hello HDF5 developers!
HDF5 library exposes a number of functions which take parameters in form of C struct (H5E_error2, H5G_info_t, H5FD_class_t etc). It means that C structs are efficiently a part of binary interface. However, such interface causes some problems:
1) C struct layout is not guaranteed to be binary compatible among C compilers. Even more, the same compiler may produce binary incompatible struct layouts depending on compiler flags.
2) Languages other than C, although often having a notion of tuple/record/struct, rarely have the exact, binary-compatible equivalent of C struct (given 1), it's clear why). For example, both Delphi "record" and Delphi "packed record" are not guaranteed to be binary compatible with public structs from official HDF5 library release. It makes using advanced HDF5 features from non-C languages harder.
It would be of great help if public HDF5 C structs were of some documented, easy-to-support format, most preferably without field alignment (Delphi "packed record"). Or maybe there is at least some compiler flag to force no alignment for *public* structs (forcing no alignment for all structs might be bad for performance, I presume)?
Best wishes,
Andrey Paramonov
···
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.