In the C interface, the
hid_t change from 32-bit to 64-bit was made in order to address a performance problem that arose when the library “ran out” of valid object identifiers to issue and thus needed to employ an expensive algorithm to find previously issued identifiers that could be re-issued. This problem is avoided by switching the size of the
hid_t type to 64-bit integers instead of 32-bit integers in order to make the pool of available integers significantly larger. (
H5E_minor_t are aliased to
hid_t which is why they changed size as well). (An alternate solution to this problem was applied in release HDF5 1.8.5 but this is the cleaner/preferred solution and had to wait until 1.10.0 to be included).
hbool_t will now be defined as a
_Bool type when configure determines that it’s available.
Public structs that have members of type
hbool_t are affected by the above changes accordingly.
H5Fget_info function was renamed due to the introduction of a newer version of the function which returns additional information. The
H5Rdereference function was renamed due to the introduction of a newer version of the function which allows a data access property list to be passed in. Both changes are accompanied with compatibility macros, so while existing code will need to be recompiled in order to use the newer library version, these functions do not need to be changed in application code using them provided that the HDF5 API compatibility macros are configured appropriately.