summaryrefslogtreecommitdiffstats
path: root/release_docs/RELEASE.txt
diff options
context:
space:
mode:
Diffstat (limited to 'release_docs/RELEASE.txt')
-rw-r--r--release_docs/RELEASE.txt119
1 files changed, 119 insertions, 0 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 2d8eb32..bb0448e 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -368,6 +368,78 @@ New Features
Library:
--------
+ - Added support for _Float16 16-bit half-precision floating-point datatype
+
+ Support for the _Float16 C datatype has been added on platforms where:
+
+ - The _Float16 datatype and its associated macros (FLT16_MIN, FLT16_MAX,
+ FLT16_EPSILON, etc.) are available
+ - A simple test program that converts between the _Float16 datatype and
+ other datatypes with casts can be successfully compiled and run at
+ configure time. Some compilers appear to be buggy or feature-incomplete
+ in this regard and will generate calls to compiler-internal functions
+ for converting between the _Float16 datatype and other datatypes, but
+ will not link these functions into the build, resulting in build
+ failures.
+
+ The following new macros have been added:
+
+ H5_HAVE__FLOAT16 - This macro is defined in H5pubconf.h and will have
+ the value 1 if support for the _Float16 datatype is
+ available. It will not be defined otherwise.
+
+ H5_SIZEOF__FLOAT16 - This macro is defined in H5pubconf.h and will have
+ a value corresponding to the size of the _Float16
+ datatype, as computed by sizeof(). It will have the
+ value 0 if support for the _Float16 datatype is not
+ available.
+
+ H5_HAVE_FABSF16 - This macro is defined in H5pubconf.h and will have the
+ value 1 if the fabsf16 function is available for use.
+
+ H5_LDOUBLE_TO_FLOAT16_CORRECT - This macro is defined in H5pubconf.h and
+ will have the value 1 if the platform can
+ correctly convert long double values to
+ _Float16. Some compilers have issues with
+ this.
+
+ H5T_NATIVE_FLOAT16 - This macro maps to the ID of an HDF5 datatype representing
+ the native C _Float16 datatype for the platform. If
+ support for the _Float16 datatype is not available, the
+ macro will map to H5I_INVALID_HID and should not be used.
+
+ H5T_IEEE_F16BE - This macro maps to the ID of an HDF5 datatype representing
+ a big-endian IEEE 754 16-bit floating-point datatype. This
+ datatype is available regardless of whether _Float16 support
+ is available or not.
+
+ H5T_IEEE_F16LE - This macro maps to the ID of an HDF5 datatype representing
+ a little-endian IEEE 754 16-bit floating-point datatype.
+ This datatype is available regardless of whether _Float16
+ support is available or not.
+
+ The following new hard datatype conversion paths have been added, but
+ will only be used when _Float16 support is available:
+
+ H5T_NATIVE_SCHAR <-> H5T_NATIVE_FLOAT16 | H5T_NATIVE_UCHAR <-> H5T_NATIVE_FLOAT16
+ H5T_NATIVE_SHORT <-> H5T_NATIVE_FLOAT16 | H5T_NATIVE_USHORT <-> H5T_NATIVE_FLOAT16
+ H5T_NATIVE_INT <-> H5T_NATIVE_FLOAT16 | H5T_NATIVE_UINT <-> H5T_NATIVE_FLOAT16
+ H5T_NATIVE_LONG <-> H5T_NATIVE_FLOAT16 | H5T_NATIVE_ULONG <-> H5T_NATIVE_FLOAT16
+ H5T_NATIVE_LLONG <-> H5T_NATIVE_FLOAT16 | H5T_NATIVE_ULLONG <-> H5T_NATIVE_FLOAT16
+ H5T_NATIVE_FLOAT <-> H5T_NATIVE_FLOAT16 | H5T_NATIVE_DOUBLE <-> H5T_NATIVE_FLOAT16
+ H5T_NATIVE_LDOUBLE <-> H5T_NATIVE_FLOAT16
+
+ The H5T_NATIVE_LDOUBLE -> H5T_NATIVE_FLOAT16 hard conversion path will only
+ be available and used if H5_LDOUBLE_TO_FLOAT16_CORRECT has a value of 1. Otherwise,
+ the conversion will be emulated in software by the library.
+
+ Note that in the absence of any compiler flags for architecture-specific
+ tuning, the generated code for datatype conversions with the _Float16 type
+ may perform conversions by first promoting the type to float. Use of
+ architecture-specific tuning compiler flags may instead allow for the
+ generation of specialized instructions, such as AVX512-FP16 instructions,
+ if available.
+
- Implemented optimized support for vector I/O in the Subfiling VFD
Previously, the Subfiling VFD would handle vector I/O requests by
@@ -591,6 +663,42 @@ Bug Fixes since HDF5-1.14.0 release
Library
-------
+ - Fixed a bug that causes the library to incorrectly identify
+ the endian-ness of 16-bit and smaller C floating-point datatypes
+
+ When detecting the endian-ness of an in-memory C floating-point
+ datatype, the library previously always assumed that the type
+ was at least 32 bits in size. This resulted in invalid memory
+ accesses and would usually cause the library to identify the
+ datatype as having an endian-ness of H5T_ORDER_VAX. This has
+ now been fixed.
+
+ - Fixed a bug that causes an invalid memory access issue when
+ converting 16-bit floating-point values to integers with the
+ library's software conversion function
+
+ The H5T__conv_f_i function previously always assumed that
+ floating-point values were at least 32 bits in size and would
+ access invalid memory when attempting to convert 16-bit
+ floating-point values to integers. To fix this, parts of the
+ H5T__conv_f_i function had to be rewritten, which also resulted
+ in a significant speedup when converting floating-point values
+ to integers where the library does not have a hard conversion
+ path. This is the case for any floating-point values with a
+ datatype not represented by H5T_NATIVE_FLOAT16 (if _Float16 is
+ supported), H5T_NATIVE_FLOAT, H5T_NATIVE_DOUBLE or
+ H5T_NATIVE_LDOUBLE.
+
+ - Fixed a bug that can cause incorrect data when overflows occur
+ while converting integer values to floating-point values with
+ the library's software conversion function
+
+ The H5T__conv_i_f function had a bug which previously caused it
+ to return incorrect data when an overflow occurs and an application's
+ conversion exception callback function decides not to handle the
+ overflow. Rather than return positive infinity, the library would
+ return truncated data. This has now been fixed.
+
- Fixed error when overwriting certain nested variable length types
Previously, when using a datatype that included a variable length type
@@ -1330,6 +1438,17 @@ Bug Fixes since HDF5-1.14.0 release
Testing
-------
+ - Fixed a bug in the dt_arith test when H5_WANT_DCONV_EXCEPTION is not
+ defined
+
+ The dt_arith test program's test_particular_fp_integer sub-test tries
+ to ensure that the library correctly raises a datatype conversion
+ exception when converting a floating-point value to an integer overflows.
+ However, this test would run even when H5_WANT_DCONV_EXCEPTION isn't
+ defined, causing the test to fail due to the library not raising
+ datatype conversion exceptions. This has now been fixed by not running
+ the test when H5_WANT_DCONV_EXCEPTION is not defined.
+
- Disabled running of MPI Atomicity tests for OpenMPI major versions < 5
Support for MPI atomicity operations is not implemented for major