![]() |
HDF5 Last Updated on 2025-11-13
The HDF5 Field Guide
|
Navigate back: Main / Release Specific Information / Release Specific Information for HDF5 2.0
This page provides information on the changes that a maintenance developer needs to be aware of between successive releases of HDF5, such as:
See API Compatibility Macros for details on using HDF5 version 2.0 with previous releases.
The Change log (a.k.a. the RELEASE.txt prior to release 2.0) also lists changes made to the library, but these notes tend to be more at a more detail-oriented level. It include new features, bugs fixed, supported configuration features, platforms on which the library has been tested, and known problems. The change log files are listed in each release section and can be found at the top level of the HDF5 source code tree in the release_docs directory.
HDF5 version 2.0 provides a number of new C APIs and other user-visible changes in behavior in the transition from HDF5 Release 1.14.6 to Release 2.0. Some of those require the use of the API Compatibility Macros for the main library. In addition, some APIs have been removed or have had their signature change.
#hbool_t has been removed from public API calls #hbool_t type was introduced before the library supported C99's Boolean type. Originally typedef'd to an integer, it has been typedef'd to C99's bool for many years. Prior to HDF5 2.0, it had been purged from the library code and only remained in public API signatures. In HDF5 2.0, it has also been removed from public API signatures. #hbool_t typedef remains in H5public.h so existing code does not need to be updated.H5Pset_fapl_ros3() now has the side effect of setting the page buffer size in the FAPL to 64 MiB if it was not previously set. This will only have an effect if the file uses paged allocation. Also added the #H5F_PAGE_BUFFER_SIZE_DEFAULT to allow the user to unset the page buffer size in an FAPL so it can be similarly overridden.nalloc, has been added to H5Dread_chunk(). This parameter contains a pointer to a variable that holds the size of the buffer buf. If *nalloc is not large enough to hold the entire chunk being read, no data is read. On exit, the value of this variable is set to the buffer size needed to read the chunk. The old signature has been renamed to H5Dread_chunk1() and is considered deprecated: H5Dread_chunk2(). All code should be updated to use this version: H5Dread_chunk() will map to the new signature unless the library is explicitly configured to use an older version of the API.buf_size, has been added to H5Tdecode() to prevent walking off the end of the buffer. The old signature has been renamed to H5Tdecode1() and is considered deprecated: H5Tdecode2(). All code should be updated to use this version: H5Tdecode() will map to the new signature unless the library is explicitly configured to use an older version of the API.H5Iregister_type1() and is considered deprecated: H5Iregister_type() will map to the new signature unless the library is explicitly configured to use an older version of the API.List of new public APIs/Macros
| Function/Constant | Description |
|---|---|
| H5Dread_chunk1() | Reads an entire chunk from the file directly (Deprecated in favor of H5Dread_chunk2()) |
| H5Dread_chunk2() | Reads an entire chunk from the file directly |
| H5Iregister_type1() | Creates a new type of ID (Deprecated in favor of H5Iregister_type2()) |
| H5Iregister_type2() | Creates a new type of ID |
| H5Pget_virtual_spatial_tree() | Retrieves the setting for whether or not to use a spatial tree for VDS mappings |
| H5Pset_virtual_spatial_tree() | Sets the flag to use a spatial tree for mappings |
| H5Tcomplex_create() | Creates a new complex number datatype |
| H5Tdecode1() | Decodes a binary object description (Deprecated in favor of H5Tdecode2()) |
| H5Tdecode2() | Decodes a binary object description |
| H5VLclose_lib_context() | Closes the state of the library, undoing the effects of H5VLopen_lib_context() |
| H5VLopen_lib_context() | Opens a new internal context for the HDF5 library |
| H5T_COMPLEX_IEEE_F16BE | Complex number of 2 16-bit big-endian IEEE floating point numbers |
| H5T_COMPLEX_IEEE_F16LE | Complex number of 2 16-bit little-endian IEEE floating point numbers |
| H5T_COMPLEX_IEEE_F32BE | Complex number of 2 32-bit big-endian IEEE floating point numbers |
| H5T_COMPLEX_IEEE_F32LE | Complex number of 2 32-bit little-endian IEEE floating point numbers |
| H5T_COMPLEX_IEEE_F64BE | Complex number of 2 64-bit big-endian IEEE floating point numbers |
| H5T_COMPLEX_IEEE_F64LE | Complex number of 2 64-bit little-endian IEEE floating point numbers |
| H5T_FLOAT_BFLOAT16BE | 16-bit big-endian bfloat16 floating point |
| H5T_FLOAT_BFLOAT16LE | 16-bit little-endian bfloat16 floating point |
| H5T_FLOAT_F8E4M3 | 8-bit FP8 E4M3 (4 exponent bits, 3 mantissa bits) floating point |
| H5T_FLOAT_F8E5M2 | 8-bit FP8 E5M2 (5 exponent bits, 2 mantissa bits) floating point |
| H5T_NATIVE_DOUBLE_COMPLEX | double _Complex (MSVC _Dcomplex) |
| H5T_NATIVE_FLOAT_COMPLEX | float _Complex (MSVC _Fcomplex) |
| H5T_NATIVE_LDOUBLE_COMPLEX | long double _Complex (MSVC _Lcomplex) |
| H5VL_NATIVE | Identifier for the native VOL connector |
| H5VL_PASSTHRU | Identifier for the pass-through VOL connector |
List of removed public APIs
| Function |
|---|
| H5Dread_chunk() |
| H5FDperform_init() |
| H5Iregister_type() |
| H5Tdecode() |
| H5VLpeek_connector_id_by_name() |
| H5VLpeek_connector_id_by_value() |
| H5VLfinish_lib_state() |
| H5VLstart_lib_state() |
Navigate back: Main / Release Specific Information / Release Specific Information for HDF5 2.0