-
Notifications
You must be signed in to change notification settings - Fork 30
Important Differences between HDF5 1.8 and 1.10
The highlights can be found here.
This page only deals with the ".NET fallout."
With the exception of the functions related to (MPI-parallel) collective metadata I/O, all new APIs have been added to HDF.PInvoke, and appropriate unit tests defined. The underlying HDF5 1.10 features (SWMR, VDS, etc.) were tested primarily on UNIX/Linux systems. Testing on Windows has not been nearly as complete, and there might be issues yet unknown.
Depending on how you've maintained your code, the switch from 32-bit to 64-bit handles (or identifiers) might catch you off-guard:
Feature | HDF5 1.8 | HDF5 1.10 |
---|---|---|
hid_t |
System.Int32 |
System.Int64 |
If you've hard-coded System.Int32
in places where an hid_t
was asked for, you might be in trouble. A relatively safe method to deal with this change is 1) to use HDF5 API type names in your code, and 2) to begin every source file with a declaration similar to this:
#if HDF5_VER1_10
using hid_t = System.Int64;
#else
using hid_t = System.Int32;
#endif
Unfortunately, declarations like this interfere with IntelliSense.
Let us know, if you've come up with a more elegant solution!