diff options
author | Allen Byrne <50328838+byrnHDF@users.noreply.github.com> | 2020-11-23 18:04:49 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-23 18:04:49 (GMT) |
commit | ecbcb4356c2bbdad7ad801f9c61fe695082a6b25 (patch) | |
tree | 6118c67abd35585376b0b8e822b89cd010fa970d /release_docs | |
parent | 5ff09ae971cdb8a85c596520666c8dc178541e4a (diff) | |
download | hdf5-ecbcb4356c2bbdad7ad801f9c61fe695082a6b25.zip hdf5-ecbcb4356c2bbdad7ad801f9c61fe695082a6b25.tar.gz hdf5-ecbcb4356c2bbdad7ad801f9c61fe695082a6b25.tar.bz2 |
Update release text files (#109)
* Update release text files
* spelling correction
* Update list
Diffstat (limited to 'release_docs')
-rw-r--r-- | release_docs/HISTORY-1_0-1_8_0_rc3.txt | 1616 | ||||
-rw-r--r-- | release_docs/HISTORY-1_10.txt | 2169 | ||||
-rw-r--r-- | release_docs/HISTORY-1_10_0-1_12_0.txt | 1183 | ||||
-rw-r--r-- | release_docs/HISTORY-1_12.txt | 628 | ||||
-rw-r--r-- | release_docs/HISTORY-1_8.txt | 2219 | ||||
-rw-r--r-- | release_docs/HISTORY-1_8_0-1_10_0.txt | 637 | ||||
-rw-r--r-- | release_docs/RELEASE.txt | 1652 |
7 files changed, 7656 insertions, 2448 deletions
diff --git a/release_docs/HISTORY-1_0-1_8_0_rc3.txt b/release_docs/HISTORY-1_0-1_8_0_rc3.txt index 9c1ba12..f23a2c5 100644 --- a/release_docs/HISTORY-1_0-1_8_0_rc3.txt +++ b/release_docs/HISTORY-1_0-1_8_0_rc3.txt @@ -1,7 +1,7 @@ HDF5 HISTORY ============ This file contains history of the HDF5 libraries releases starting with -HDF5-1.0.0 and ending with HDF5-1.8.0-rc3 (the state of the code before i +HDF5-1.0.0 and ending with HDF5-1.8.0-rc3 (the state of the code before the HDF5 1.8.0 release). CONTENTS @@ -90,119 +90,119 @@ New Features -------------- - Removed stream-vfd from the HDF5 library. - AKC 2007/11/19. - Updated versions of autotools. HDF5 now uses automake 1.10.0, - autoconf 2.61, and libtool 1.5.22. MAM - 2007/7/25. + autoconf 2.61, and libtool 1.5.22. MAM - 2007/7/25. - Changed default fortran compiler to g95 when gcc is used. - AKC - 2007/2/17. + 2007/2/17. - 'make check-vfd' can now be run from the top level directory. Not all - tests that 'make check' invokes work with certain Virtual File Drivers, - so those tests have been skipped. - MAM 2006/7/17 + tests that 'make check' invokes work with certain Virtual File Drivers, + so those tests have been skipped. - MAM 2006/7/17 - Added the variable HDF5TestExpress to control how long tests run. - Setting it to a value between 0 and 3 controls how thoroughly the - library is tested, with 0 being an "exhaustive run" and 3 being a - very quick "smoke test." 1 (a "full run") is the default. - -JML 2006/6/21 + Setting it to a value between 0 and 3 controls how thoroughly the + library is tested, with 0 being an "exhaustive run" and 3 being a + very quick "smoke test." 1 (a "full run") is the default. + -JML 2006/6/21 - If both shared and static libraries are installed, now both will be - tested during 'make install'. -MAM 2006/06/21 + tested during 'make install'. -MAM 2006/06/21 - Added support to explicity enable stream_vfd or shared libraries - when using parallel via the '--enable-stream_vfd' and - '--enable-shared' options, respectively. If not explicity defined, - These settings default to enabled when parallel is not used, - and disabled when parallel is used. -MAM 2006/06/17 + when using parallel via the '--enable-stream_vfd' and + '--enable-shared' options, respectively. If not explicity defined, + These settings default to enabled when parallel is not used, + and disabled when parallel is used. -MAM 2006/06/17 - Remove the flexible parallel code and the --enable-fphdf5 - configure option, it was never up to production standards - anyway. -QAK 2006/4/20 + configure option, it was never up to production standards + anyway. -QAK 2006/4/20 - Added a macro hdf5_mpi_special_collective_io_works to filter out - some mpi-io packages that don't support collective IO for no IO - contributions in some processes. -KY 2006/2/16 - - Added -shlib option to link against installed shared libraries to - h5c++ and h5fc. -JML 2005/11/1 - - Added --enable-build-all option to configure, which only developers - should need to use. -JML 2005/10/24 - - Configure uses the 'TR' variable to let the user override the path - to the 'tr' utility. -JML 2005/10/17 - - Configure can recognize -lmpich as a form of MPI library. -AKC- - 2005/9/28. + some mpi-io packages that don't support collective IO for no IO + contributions in some processes. -KY 2006/2/16 + - Added -shlib option to link against installed shared libraries to + h5c++ and h5fc. -JML 2005/11/1 + - Added --enable-build-all option to configure, which only developers + should need to use. -JML 2005/10/24 + - Configure uses the 'TR' variable to let the user override the path + to the 'tr' utility. -JML 2005/10/17 + - Configure can recognize -lmpich as a form of MPI library. -AKC- + 2005/9/28. - MD5 checksumming has been added to snapshot releases. Release - tarballs will be accompanied by .md5 checksum files, which can - be verified using the md5sum utility. -JML 2005/9/6 + tarballs will be accompanied by .md5 checksum files, which can + be verified using the md5sum utility. -JML 2005/9/6 - Some configure flags are incompatible (e.g., the C++ APIs cannot - be built using the parallel version of HDF5). configure will now - output errors when some common incompatible features are used - together. -JML 2005/9/6 + be built using the parallel version of HDF5). configure will now + output errors when some common incompatible features are used + together. -JML 2005/9/6 - A new API function, H5Tis_hard(), was added to the library. It - checks if a conversion function is a compiler (hard) conversion. - SLU - 2005/9/6 - - t_mpi will run the test_mpio_derived_dtype by default unless it is - known not working (indicated by macro H5_MPI_COMPLEX_DERIVED_DATATYPE_WORKS - not defined.) -AKC- 2005/8/23. - - Test execution has changed in a number of ways: - When make is invoked in parallel (using -j), sequential tests - are now executed as parallel make targets. This should make them - finish more quickly on machines with multiple processors. - Since test output is garbled when they are executed by parallel make, - tests now dump their output to foo.log files and foo.logsh files - (for test scripts). These logs are printed to the screen only - when a test fails or when all tests in the current directory have - completed successfully. - When tests pass, they will create a foo.chkexe file. - This prevents the test from executing again until the test or - main library changes. - All files generated by tests (*.chkexe, *.log, and any *.h5 files - created) can be removed by invoking 'make check-clean'. - Sequential and parallel library tests can now be invoked separately. - 'make check-s' will execute only sequential tests, and 'make check-p' - will execute only parallel tests. 'make check' will still execute - all tests. - -JML 2005/08/03 + checks if a conversion function is a compiler (hard) conversion. + SLU - 2005/9/6 + - t_mpi will run the test_mpio_derived_dtype by default unless it is + known not working (indicated by macro H5_MPI_COMPLEX_DERIVED_DATATYPE_WORKS + not defined.) -AKC- 2005/8/23. + - Test execution has changed in a number of ways: + When make is invoked in parallel (using -j), sequential tests + are now executed as parallel make targets. This should make them + finish more quickly on machines with multiple processors. + Since test output is garbled when they are executed by parallel make, + tests now dump their output to foo.log files and foo.logsh files + (for test scripts). These logs are printed to the screen only + when a test fails or when all tests in the current directory have + completed successfully. + When tests pass, they will create a foo.chkexe file. + This prevents the test from executing again until the test or + main library changes. + All files generated by tests (*.chkexe, *.log, and any *.h5 files + created) can be removed by invoking 'make check-clean'. + Sequential and parallel library tests can now be invoked separately. + 'make check-s' will execute only sequential tests, and 'make check-p' + will execute only parallel tests. 'make check' will still execute + all tests. + JML - 2005/08/03 - On windows, all.zip is deprecated. users should read INSTALL_Windows.txt to know the details. Reasons to deprecate all.zip: - 1. Avoid confliction for windows programmers + 1. Avoid confliction for windows programmers 2. Decrease size of CVS tree by adding all.zip - 3. Avoid using winzip as the intermediate step + 3. Avoid using winzip as the intermediate step --KY 2005/04/22 - - When HDF5 is created as a shared library, it now uses libtool's - shared library versioning scheme. -JML 2005/04/18 - - HDF5 now uses automake 1.9.5 to generate Makefiles.in. - This has a number of effects on users: - The Fortran compiler should be set using the environment - variable $FC, not $F9X. F9X still works, but is depreciated. - The output of make may be different. This should be only a - cosmetic effect. - make depened (or make dep) is no longer recognized, since automake - handles dependency tracking. - Some new configure options exist. --enable-dependency-tracking - and --disable-dependency-tracking are used to control automake's - dependency tracking. Dependencies are on by default *on most - platforms and compilers*. If --enable-dependency-tracking is - used, they will be enabled on any platform. However, this can - slow down builds or even cause build errors in some cases. - Likewise, --disable-dependency-tracking can speed up builds and - avoid some build errors. - Some make targets have alternate names. make check-install and - make installcheck do the same thing, for instance. - pmake on IRIX can be invoked from the root directory, but the - -V flag must be used to invoke it in any subdirectory or it - will give an error about undefined variables. - JML 2005/01 - 2005/03 - - Hardware conversion between long double and integers is also added. - SLU 2005/02/10 - - Started to support software conversion between long double and - integers. Hardware conversion will come very soon. SLU - 2005/1/6 - - Intel v8.0 compiler would infinite loop when compiling some test - code with -O3 option. Changed enable-production default compiler - option to -O2. AKC - 2004/12/06 - - Long double is assumed to be a supported C data type. It is a - stanadard C89 type. AKC - 2004/10/22 - - The IA64 will use ecc as the C++ compiler by default. + - When HDF5 is created as a shared library, it now uses libtool's + shared library versioning scheme. -JML 2005/04/18 + - HDF5 now uses automake 1.9.5 to generate Makefiles.in. + This has a number of effects on users: + The Fortran compiler should be set using the environment + variable $FC, not $F9X. F9X still works, but is depreciated. + The output of make may be different. This should be only a + cosmetic effect. + make depened (or make dep) is no longer recognized, since automake + handles dependency tracking. + Some new configure options exist. --enable-dependency-tracking + and --disable-dependency-tracking are used to control automake's + dependency tracking. Dependencies are on by default *on most + platforms and compilers*. If --enable-dependency-tracking is + used, they will be enabled on any platform. However, this can + slow down builds or even cause build errors in some cases. + Likewise, --disable-dependency-tracking can speed up builds and + avoid some build errors. + Some make targets have alternate names. make check-install and + make installcheck do the same thing, for instance. + pmake on IRIX can be invoked from the root directory, but the + -V flag must be used to invoke it in any subdirectory or it + will give an error about undefined variables. + JML 2005/01 - 2005/03 + - Hardware conversion between long double and integers is also added. + SLU 2005/02/10 + - Started to support software conversion between long double and + integers. Hardware conversion will come very soon. SLU - 2005/1/6 + - Intel v8.0 compiler would infinite loop when compiling some test + code with -O3 option. Changed enable-production default compiler + option to -O2. AKC - 2004/12/06 + - Long double is assumed to be a supported C data type. It is a + stanadard C89 type. AKC - 2004/10/22 + - The IA64 will use ecc as the C++ compiler by default. - Added some initial support for making valgrind/Purify (or similar memory checking products) happier by initializing buffers to zero and disabling the internal free list code. To take advantage of this, use the "--enable-using-memchecker" configure option when building the library. QAK - 2004/07/23 - Fixed the long compile time of H5detect.c when v7.x Intel Compiler - is used with optimization NOT off. AKC - 2004/05/20 - - Fixed configure setting of C++ for OSF1 platform. AKC - 2004/01/06 + is used with optimization NOT off. AKC - 2004/05/20 + - Fixed configure setting of C++ for OSF1 platform. AKC - 2004/01/06 - Prefix default is changed from /usr/local to `pwd`/hdf5. AKC - 2003/07/09 @@ -273,7 +273,7 @@ New Features - Added H5Fget_intent to get the "intent" of a file (whether it was opened with read-write access or read-only. -JML 2006/8/23 - - Added Link Access Property Lists. They currently contain two + - Added Link Access Property Lists. They currently contain two properties, nlinks (H5Pget/set_nlinks) and elink_prefix (H5Pget/set_elink_prefix). nlinks controls how many soft and user-defined traversals are allowed before HDF5 assumes it has @@ -281,46 +281,46 @@ New Features The elink_prefix is a filesystem path that is prefixed to the names of any external link files opened using this LAPL. -JML 2006/8/23 - - Add H5L link APIs. Old APIs (H5Glink, H5Gmove, etc.) are still - supported but deprecated. - New APIs are: - H5Llink - create a link to an object given its ID - H5Lmove - just like H5Gmove2 - H5Lcopy - copy a link without copying the underlying object - H5Lcreate_hard - like H5Glink2 for hard links - H5Lcreate_soft - like H5Glink2 for soft links - H5Ldelete - just like H5Gunlink - H5Lget_val - just like H5Gget_linkval - H5Lget_info - gets link-specific info (like H5Gget_objinfo) - - In addition, H5Gcreate_anon, H5Tcommit_anon, and H5Dcreate_anon - no longer create links to objects; objects must be manually linked - using H5Llink or they will be deleted when the ID is closed. - - Link Creation Property Lists can be used to pass character - encoding (ASCII or UTF-8) for link names and to set the Intermediate - Group Creation Flag: - H5Pset_char_encoding, H5Pget_char_encoding - H5Pset_copy_object, H5Pget_copy_object - -JML 2006/7/5 - - Added managements of collective IO supports for chunking storage - inside parallel HDF5 - 1) Implemented One IO with collective mode for all chunks in the - application by building one MPI derived datatype accross all - chunks. - 2) Implemented the decision-making support to do collective IO inside - MPI-IO per chunk. - 3) Added the decision-making support to do one IO accross all chunks - or to do multiple IOs with each IO per chunk. - 4) Added the support to handle the case some processes won't do any IOs in - collectively. - 5) Some MPI-IO package(mpich 1.2.6 or lower, e.g.) cannot handle - collective IO correctly for the case when some processes have no - contributions to IOs, a special macro is added to change - collective IO mode to independent IO mode inside HDF5 library. - - Currently we find that MPICH at Linux and vender MPI-IO package at NCSA - Altix cannot handle this case. + - Add H5L link APIs. Old APIs (H5Glink, H5Gmove, etc.) are still + supported but deprecated. + New APIs are: + H5Llink - create a link to an object given its ID + H5Lmove - just like H5Gmove2 + H5Lcopy - copy a link without copying the underlying object + H5Lcreate_hard - like H5Glink2 for hard links + H5Lcreate_soft - like H5Glink2 for soft links + H5Ldelete - just like H5Gunlink + H5Lget_val - just like H5Gget_linkval + H5Lget_info - gets link-specific info (like H5Gget_objinfo) + + In addition, H5Gcreate_anon, H5Tcommit_anon, and H5Dcreate_anon + no longer create links to objects; objects must be manually linked + using H5Llink or they will be deleted when the ID is closed. + + Link Creation Property Lists can be used to pass character + encoding (ASCII or UTF-8) for link names and to set the Intermediate + Group Creation Flag: + H5Pset_char_encoding, H5Pget_char_encoding + H5Pset_copy_object, H5Pget_copy_object + -JML 2006/7/5 + - Added managements of collective IO supports for chunking storage + inside parallel HDF5 + 1) Implemented One IO with collective mode for all chunks in the + application by building one MPI derived datatype accross all + chunks. + 2) Implemented the decision-making support to do collective IO inside + MPI-IO per chunk. + 3) Added the decision-making support to do one IO accross all chunks + or to do multiple IOs with each IO per chunk. + 4) Added the support to handle the case some processes won't do any IOs in + collectively. + 5) Some MPI-IO package(mpich 1.2.6 or lower, e.g.) cannot handle + collective IO correctly for the case when some processes have no + contributions to IOs, a special macro is added to change + collective IO mode to independent IO mode inside HDF5 library. + + Currently we find that MPICH at Linux and vender MPI-IO package at NCSA + Altix cannot handle this case. "hdf5_mpi_special_collective_io_works=${hdf5_mpi_special_collective_io_works='no'}" has been added at the end of file <ia64-linux-gnui> and @@ -332,25 +332,25 @@ New Features support this. KY - 2006/02/16 - - Added character encoding to attribute creation property lists. + - Added character encoding to attribute creation property lists. JML - 2006/01/02 - - Added H5Gcopy() routine to copy objects between while keeping - data in compressed form. QAK - 2005/11/06 - - Added H5Sextent_equal() routine. QAK - 2005/11/06 - - Added HSYS_ERROR which retrieves the system error message and pushes - it to the error stack. This gives more information of the failed - system call. AKC - 2005/08/04 - - Added H5F_OBJ_LOCAL flag to H5Fget_obj_count() & H5Fget_obj_ids(), to - allow querying for objects in file that were opened with a particular - file ID, instead of all objects opened in file with any file ID. - QAK - 2005/06/01 - - Added H5T_CSET_UTF8 character set to mark datatypes that use the - UTF-8 Unicode character encoding. Added tests to ensure that - library handles UTF-8 object names, attributes, etc. -JL 2005/05/13 - - HDF5 supports collective MPI-IO for irregular selection with HDF5 - dataset. Irregular selection is when users use H5Sselect_hyperslab - more than once for the same dataset. - Currently, not all MPI-IO packages support complicated MPI derived + - Added H5Gcopy() routine to copy objects between while keeping + data in compressed form. QAK - 2005/11/06 + - Added H5Sextent_equal() routine. QAK - 2005/11/06 + - Added HSYS_ERROR which retrieves the system error message and pushes + it to the error stack. This gives more information of the failed + system call. AKC - 2005/08/04 + - Added H5F_OBJ_LOCAL flag to H5Fget_obj_count() & H5Fget_obj_ids(), to + allow querying for objects in file that were opened with a particular + file ID, instead of all objects opened in file with any file ID. + QAK - 2005/06/01 + - Added H5T_CSET_UTF8 character set to mark datatypes that use the + UTF-8 Unicode character encoding. Added tests to ensure that + library handles UTF-8 object names, attributes, etc. -JL 2005/05/13 + - HDF5 supports collective MPI-IO for irregular selection with HDF5 + dataset. Irregular selection is when users use H5Sselect_hyperslab + more than once for the same dataset. + Currently, not all MPI-IO packages support complicated MPI derived datatype used in the implementation of irregular selection INSIDE HDF5. 1) DEC 5.x is not supporting complicated derived datatype. @@ -377,7 +377,7 @@ New Features hdf5_mpi_complex_derived_datatype_works='no' should be added at the end of the config file ia64-linux-gnu. KY - 2005/09/12 - We also found not all MPI-IO packages support collective IO with one + We also found not all MPI-IO packages support collective IO with one or more processes to have no contributions to IO. For mpich version 1.2.6 or lower and all IRIX machine, if the library checks that there are no IO contributions for some @@ -386,30 +386,30 @@ New Features KY - 2006/05/04 - HDF5 N-bit filter - HDF5 support N-bit filter from this version, - The N-Bit filter is used effectively for compressing data of N-Bit - datatype as well as compound and array datatype with N-Bit fields. - KY - 2005/04/15 + HDF5 support N-bit filter from this version, + The N-Bit filter is used effectively for compressing data of N-Bit + datatype as well as compound and array datatype with N-Bit fields. + KY - 2005/04/15 - HDF5 scaleoffset filter - HDF5 supports scaleoffset filter for users to do data - compression through HDF5 library. - Scale-Offset compression performs a scale and/or offset operation - on each data value and truncates the resulting value to a minimum - number of bits and then stores the data. - Scaleoffset filter supports floating-point and integer datatype. - Please check the HDF5 reference manual for this. - KY - 2005/06/06 + HDF5 supports scaleoffset filter for users to do data + compression through HDF5 library. + Scale-Offset compression performs a scale and/or offset operation + on each data value and truncates the resulting value to a minimum + number of bits and then stores the data. + Scaleoffset filter supports floating-point and integer datatype. + Please check the HDF5 reference manual for this. + KY - 2005/06/06 - Retired SRB vfd (--with-srb). Functions H5Pset_fapl_srb and - H5Pget_fapl_srb were removed. EIP - 2005/04/07 - - Retired GASS vfd (--with-gass). Functions H5Pset_fapl_gass and - H5Pget_fapl_gass are removed too. AKC - 2005/3/3 + H5Pget_fapl_srb were removed. EIP - 2005/04/07 + - Retired GASS vfd (--with-gass). Functions H5Pset_fapl_gass and + H5Pget_fapl_gass are removed too. AKC - 2005/3/3 - Pablo was removed from the source code EIP - 2005/01/21 - Modified registration of SZIP to dynamically detect the presence or absence of the encoder. Changed configure and Makefiles, and tests to dynamically detect encoder. BEM - 2004/11/02 - - Added function H5Pget_data_transform, together with the previously - added H5Pset_data_transform, to support the data transform - feature. AKC - 2004/10/26 + - Added function H5Pget_data_transform, together with the previously + added H5Pset_data_transform, to support the data transform + feature. AKC - 2004/10/26 - Compound datatype has been enhanced with a new feature of size adjustment. The size can be increased and decreased(without cutting the last member) as long as it doesn't go down to zero. @@ -442,15 +442,15 @@ New Features - Added support for user defined identifier types. NF/JL - 2004/06/29 - A new API function H5Fget_filesize was added. It returns the actual file size of the opened file. SLU - 2004/06/24 - - New Feature of Data transformation is added. AKC - 2004/05/03. + - New Feature of Data transformation is added. AKC - 2004/05/03. - New exception handler for datatype conversion is put in to replace the old overflow callback function. This exception handler is set through H5Pset_type_conv_cb function. SLU - 2004/4/27 - Added option that if $HDF5_DISABLE_VERSION_CHECK is set to 2, - will suppress all library version mismatch warning messages. - AKC - 2004/4/14 - - A new type of dataspace, null dataspace(dataspace without any + will suppress all library version mismatch warning messages. + AKC - 2004/4/14 + - A new type of dataspace, null dataspace(dataspace without any element) was added. SLU - 2004/3/24 - Data type conversion(software) from integer to float was added. SLU - 2004/3/13 @@ -484,13 +484,13 @@ New Features Parallel Library: ----------------- - - Added mpich2 as a testing "platform" informally. AKC - 2005/9/28. - - A dataset created in serial mode with H5D_ALLOC_TIME_INCR allocation - setting was not extendible, either explicitly by H5Dextend or - implicitly by writing to unallocated chunks. Library now allocates - more space when needed or directed if the file is opened by parallel - mode, independent of what the dataset allocation mode is. - CC/AKC - 2005/08/29. + - Added mpich2 as a testing "platform" informally. AKC - 2005/9/28. + - A dataset created in serial mode with H5D_ALLOC_TIME_INCR allocation + setting was not extendible, either explicitly by H5Dextend or + implicitly by writing to unallocated chunks. Library now allocates + more space when needed or directed if the file is opened by parallel + mode, independent of what the dataset allocation mode is. + CC/AKC - 2005/08/29. - Allow compressed, chunked datasets to be read in parallel. QAK - 2004/10/04 - Add options of using atomicity and file-sync to test_mpio_1wMr. @@ -507,16 +507,16 @@ New Features - added new functions h5fget_name_f and h5fget_filesize_f EIP 2004/07/08 - h5dwrite/read_f and h5awrite/read_f functions only accept dims parameter - of the type INTEGER(HSIZE_T). + of the type INTEGER(HSIZE_T). - added support for native integers of 8 bytes (i.e. when special - compiler flag is specified to set native fortran integers to 8 bytes, - for example, -i8 flag for PGI and Absoft Fortran compilers, - -qintsize=8 flag for IBM xlf compiler). + compiler flag is specified to set native fortran integers to 8 bytes, + for example, -i8 flag for PGI and Absoft Fortran compilers, + -qintsize=8 flag for IBM xlf compiler). EIP 2005/06/20 - added support for "big" REAL and DOUBLE PRECISION types - (usually the size is specified by compilers flags like - -r8, -r16, etc.) - Known problem: multi file test fails when REAL is 16 bytes. + (usually the size is specified by compilers flags like + -r8, -r16, etc.) + Known problem: multi file test fails when REAL is 16 bytes. EIP 2005/09/8 C++ Library: @@ -539,41 +539,41 @@ New Features Tools: ------ - h5repack and h5diff changed command line parameter syntax to be - similar to h5dump, adding also long switch names. PVN - 2008/1/16 + similar to h5dump, adding also long switch names. PVN - 2008/1/16 - h5repack now supports adding multiple filters to all objects. - PVN - 2008/1/16 + PVN - 2008/1/16 - h5dump lists groups and attributes in requested orders (by name and - creation order, both ascending and descending). PVN - 2007/10/5 + creation order, both ascending and descending). PVN - 2007/10/5 - h5import imports string (text) data. PVN - 2007/10/5 - h52gif and gif2h5: Both these tools were revised to include the High - Level Image API support, and tests were added to /hl/tools/gif2h5. - PVN - 2007/04/13 + Level Image API support, and tests were added to /hl/tools/gif2h5. + PVN - 2007/04/13 - h5dump: added support for double long type H5T_NATIVE_LDOUBLE. PVN - 2007/03/13 + 2007/03/13 - h5dump: added support for binary output, see usage. PVN 2007/03/13 - h5repack: added support for the new nbit and scaleoffset filters. - PVN - 2007/05/07 + PVN - 2007/05/07 - h5repack: now uses the API function H5Ocopy (of the tool h5copy) to - recreate objects if there is not a user input for changes. PVN - - 2007/05/07 + recreate objects if there is not a user input for changes. PVN - + 2007/05/07 - h5repack: added support for reading and repacking by hyperslabs for - large files. PVN - 2007/03/01 + large files. PVN - 2007/03/01 - h5repack: a new option allows the copy using the file type (default) - instead of the previous conversion to native type. PVN - 2007/03/01 + instead of the previous conversion to native type. PVN - 2007/03/01 - h5repack: output the percentage of compression used. PVN - 2007/03/01 - h5diff: added support for -p option for unsigned long_long data. PVN - - 2007/02/26 + 2007/02/26 - h5diff: added support for comparing dataset regions. PVN - 2007/02/20 - h5diff: added support for reading and comparing by hyperslabs for large files. - PVN - 2007/02/20 + PVN - 2007/02/20 - h5diff: printing of dataset dimensions along with dataset name. PVN -2007/02/19 - h5dump now uses the new API function H5Rget_name to display the name - of the dataset referenced instead of its ID. PVN - 2007/02/19 + of the dataset referenced instead of its ID. PVN - 2007/02/19 - Added new tool, h5mkgrp. QAK - 2007/02/14 - Added new tool, h5copy. PVN - 2006/7/15 - - Removed obsolete pdb2hdf5 tool from tools/misc -JML 2005/10/24 - - Added build_h5perf_alone.sh that builds h5perf by standalone mode. - AKC - 2005/09/18. + - Removed obsolete pdb2hdf5 tool from tools/misc -JML 2005/10/24 + - Added build_h5perf_alone.sh that builds h5perf by standalone mode. + AKC - 2005/09/18. - Sped up h5dump on files with large numbers of objects. QAK - 2005/08/25 - Added a standalone mode for building h5perf. AKC - 2005/08/12 @@ -584,8 +584,8 @@ New Features available for h5dump and h5ls. RPM & QAK - 2004/02/01 - Added option --vfd= to h5ls to allow a VFL driver to be selected by a user. RPM & QAK - 2004/02/01 - - Added option -showconfig to compiler tools (h5cc,h5fc,h5c++). - AKC - 2004/01/08 + - Added option -showconfig to compiler tools (h5cc,h5fc,h5c++). + AKC - 2004/01/08 - Install the "h5cc" and "h5fc" tools as "h5pcc" and "h5pfc" respectively if library is built in parallel mode. WCW - 2003/11/04 @@ -601,7 +601,7 @@ New Features ------ - Fortran interfaces for the Image, Table and Lite APIs. PVN - 2007/5/1 - New HDF5 Dimension Scale API (H5DS) allows dimension scales to be - created in an HDF5 file and associated with specific datasets. PVN - 2007/5/1 + created in an HDF5 file and associated with specific datasets. PVN - 2007/5/1 - There are two new functions in the Lite library, H5LTtext_to_dtype and H5LTdtype_to_text. H5LTtext_to_dtype creates a HDF5 data type given a text description; H5LTdtype_to_text converts a data type @@ -628,19 +628,19 @@ New Features Support for new platforms, languages and compilers. ======================================= - Added support for Free-BSD on amd64 with GNU C and Fortran compilers - 4.2.1 + 4.2.1 EIP - 2007/06/25 - Added support for sequential and parallel libraries for Intel 64 Linux - cluster (abe.ncsa.uiuc.edu). Among three MPICH packages available on - this machine, only Open MPI works. The VMI has seg fault in hyperslab.c - and bittests.c tests. The MVAPICH2 complained about mpd not running - the parallel test. (see Known Problems section for more info) + cluster (abe.ncsa.uiuc.edu). Among three MPICH packages available on + this machine, only Open MPI works. The VMI has seg fault in hyperslab.c + and bittests.c tests. The MVAPICH2 complained about mpd not running + the parallel test. (see Known Problems section for more info) EIP - 2007/06/25 - Added support for HPUX11.23 for both 32 and 64-bit; HDF5 C++ - Added support for 64-bit Windows with Visual Studio .NET and 2005. SJW - 2007/06/25 - Added suport for HPUX11.23 for both 32 and 64-bit; HDF5 C++ - shared library is not supported with +DD64 flag. + shared library is not supported with +DD64 flag. EIP - 2006/06/22 - Added support for VAX floating numbers for Alpha Open VMS 7.3.2 EIP - 2006/05/05 @@ -746,9 +746,9 @@ Bug Fixes since HDF5-1.6.0 release - Fixed bug where unmounted files could cause the library to go into an infinite loop when shutting down. QAK - 2005/06/30 - The library didn't save the information of family driver in file. - The original file member size was lost after file was closed (see - bug #213). This has been fixed by saving driver name and member - file size in the superblock. SLU - 2005/6/24 + The original file member size was lost after file was closed (see + bug #213). This has been fixed by saving driver name and member + file size in the superblock. SLU - 2005/6/24 - Fixed bug with hyperslab selections that use selection offsets and operate on chunked datasets going into infinite loop or dumping core. QAK - 2005/06/17 @@ -762,20 +762,20 @@ Bug Fixes since HDF5-1.6.0 release particular file ID being closed, instead of operating on all open file IDs for a given file. QAK - 2005/06/01 - For family driver, the library didn't save member size in file. - When file is reopened, the size of 1st member file determine the - member size. Now member size is saved in file and is used to - define member file size. Wrong file access property of member size - will result in a failure. Using any other driver except family - will cause library to return error. So is multi driver. SLU - - 2005/05/24 + When file is reopened, the size of 1st member file determine the + member size. Now member size is saved in file and is used to + define member file size. Wrong file access property of member size + will result in a failure. Using any other driver except family + will cause library to return error. So is multi driver. SLU - + 2005/05/24 - Fixed error in opening object in group that was opened in mounted - file which has been unmounted. QAK - 2005/03/17 + file which has been unmounted. QAK - 2005/03/17 - Fixed a racing condition in MPIPOSIX virtual file drive close - function. Now all processes must completed the close before any - of them is returned. This prevents some "faster" processes start - accessing the file for another purpose (e.g., open with truncate) - while other "slower" processes have not closed the same file with - the previous purpose. AKC - 2005/03/01 + function. Now all processes must completed the close before any + of them is returned. This prevents some "faster" processes start + accessing the file for another purpose (e.g., open with truncate) + while other "slower" processes have not closed the same file with + the previous purpose. AKC - 2005/03/01 - H5Tget_member_value calls for enum datatype didn't return correct value if H5Tenum_valueof was called first. It's fixed. SLU - 2005/02/08 @@ -794,15 +794,15 @@ Bug Fixes since HDF5-1.6.0 release SLU - 2004/10/5 - Fixed address check in Core VFL driver to avoid spurious address/size overflows for odd valued addresses and/or sizes. QAK - 2004/09/27 - - Fixed parallel bug in which some processes attempted collective - I/O while others did independent I/O. Bug appeared when some - processes used point selections, and others didn't. JRM - 2004/9/15 + - Fixed parallel bug in which some processes attempted collective + I/O while others did independent I/O. Bug appeared when some + processes used point selections, and others didn't. JRM - 2004/9/15 - Corrected error where dataset region references were written in an incorrect way on Cray machines. PVN & QAK - 2004/09/13 - The H5Tget_native_type now determines the native type for integers - based on the precision. This is to avoid cases of wrongly converting + based on the precision. This is to avoid cases of wrongly converting an int to a short in machines that have a short of 8 bytes but with - 32bit precision (e.g Cray SV1). PVN - 2004/09/07 + 32bit precision (e.g Cray SV1). PVN - 2004/09/07 - Changed H5Dread() to not overwrite data in an application's buffer with garbage when accessing a chunked dataset with an undefined fill value and an unwritten chunk is uncountered. QAK - 2004/08/25 @@ -852,10 +852,10 @@ Bug Fixes since HDF5-1.6.0 release too large (a value greater than could be represented in 32-bits) could cause the incorrect amount of space to be allocated in a file for the raw data for the dataset. QAK - 2004/06/01 - - Fixed dtypes "sw long double -> double" failure in QSC class + - Fixed dtypes "sw long double -> double" failure in QSC class machines. AKC - 2004/4/16 - Fixed problem with fletcher32 filter when converting data of different - endianess. PVN - 2004/03/10 + endianess. PVN - 2004/03/10 - Fixed problem with H5Tget_native_type() not handling opaque fields correctly. QAK - 2004/01/31 - Fixed several errors in B-tree deletion code which could cause a @@ -970,8 +970,8 @@ Bug Fixes since HDF5-1.6.0 release Configuration ------------- - - Configure can now use any tr command. No more need for - defining variable TR nor is it supported. -AKC 2006/05/19 + - Configure can now use any tr command. No more need for + defining variable TR nor is it supported. -AKC 2006/05/19 - Parallel I/O with the MPI-I/O driver will no longer work if the filesystem is not POSIX compliant. The "HDF5_MPI_1_METAWRITE" environment variable has been removed. QAK - 2004/01/30 @@ -991,27 +991,27 @@ Bug Fixes since HDF5-1.6.0 release Tools ----- - Fixed h5dump regarding the display of blocks in hyperslab - selections. PVN 2008/01/16 + selections. PVN 2008/01/16 - Fixed h5diff regarding the display of NaN (Not a Number) - values. PVN 2008/01/16 - - Fixed h5dump regarding the parsing of binary output parameters. - PVN 2008/01/16 - - Fixed memory problems in h52gif and gif2h5. PVN 2008/01/16 - - Fixed h5repack dealing with NULL references. PVN 2008/01/16 + values. PVN 2008/01/16 + - Fixed h5dump regarding the parsing of binary output parameters. + PVN 2008/01/16 + - Fixed memory problems in h52gif and gif2h5. PVN 2008/01/16 + - Fixed h5repack dealing with NULL references. PVN 2008/01/16 - Fixed h5dump & h5ls to display attributes in "name" order, rather - than the order they are encountered in the object header. - QAK - 2007/10/04 + than the order they are encountered in the object header. + QAK - 2007/10/04 - Fixed h5dump regarding the display of named datatypes - attributes. PVN 2007/03/13 + attributes. PVN 2007/03/13 - Fixed h5dump regarding the display of group comments. PVN - 2007/03/13 + 2007/03/13 - Fixed h5dump regarding the display of hardlinks pointing - to the root group. PVN 2007/03/13 + to the root group. PVN 2007/03/13 - Fixed h5diff percentage option -p. PVN 2007/03/05 - Fixed h5dump that caused array indices greater than 2 ^32-1 - not to be printed correctly - PVN 2007/2/19 + not to be printed correctly - PVN 2007/2/19 - Fixed h5dump to print attributes data in ASCII if -r option is used. - AKC - 2004/11/18 + AKC - 2004/11/18 - Fixed space utilization reported in h5ls to correct error in formula used. QAK - 2004/10/22 - Fixed h5redeploy which sometimes complain too many argument for the @@ -1077,7 +1077,7 @@ Platforms marked with * were not tested for hdf5-1.8.0-rc* release Intel 9.1 (icc, ifort, icpc) Linux 2.6.16.27 x86_64 AMD gcc 4.1.0 (SuSE Linux), g++ 4.1.0, g95 (GCC 4.0.3) (smirom) PGI 6.2-5 (pgcc, pgf90, pgCC) - Intel 9.1 (icc, iort, icpc) + Intel 9.1 (icc, iort, icpc) Linux 2.6.5-7.252.1-rtgfx #1 SMP ia64 Intel(R) C++ Version 9.0 (cobalt) Intel(R) Fortran Itanium(R) Version 9.0 @@ -1092,23 +1092,23 @@ Platforms marked with * were not tested for hdf5-1.8.0-rc* release (linew) f90: Sun Fortran 95 8.2 CC: Sun C++ 5.8 Xeon Linux 2.4.21-32.0.1.ELsmp-perfctr-lustre - (tungsten) gcc 3.2.2 20030222 + (tungsten) gcc 3.2.2 20030222 Intel(R) C++ Version 9.0 Intel(R) Fortran Compiler Version 9.0 IA-64 Linux 2.4.21.SuSE_292.til1 ia64 (NCSA tg-login) gcc 3.2.2 Intel(R) C++ Version 8.1 Intel(R) Fortran Compiler Version 8.1 - mpich-gm-1.2.5..10-intel-r2 + mpich-gm-1.2.5..10-intel-r2 Windows XP - Visual Studio .NET + Visual Studio .NET Visual Studio 2005 w/ Intel Fortran 9.1 Cygwin(native gcc compiler and g95) - MinGW(native gcc compiler and g95) + MinGW(native gcc compiler and g95) Windows XP x64 - Visual Studio 2005 w/ Intel Fortran 9.1 + Visual Studio 2005 w/ Intel Fortran 9.1 Windows Vista - Visual Studio 2005 + Visual Studio 2005 MAC OS 10.4 (Intel) gcc i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 G95 (GCC 4.0.3 (g95 0.91!) Nov 21 2006) @@ -1209,7 +1209,7 @@ Alpha OpenVMS 7.3.2 n n n y n (12) AMD Opteron x86_64 (13) ifort (14) Yes with C and Fortran, but not with C++ - (15) Using Visual Studio 2005 or Cygwin + (15) Using Visual Studio 2005 or Cygwin (16) Not tested for this release. Compiler versions for each platform are listed in the preceding "Platforms Tested" table. @@ -1420,13 +1420,13 @@ Known Problems ($* > $STDOUT_FILE) >& $STDERR_FILE - set RETURN_VALUE=$status + set RETURN_VALUE=$status cat $STDOUT_FILE tail +3 $STDERR_FILE - exit $RETURN_VALUE + exit $RETURN_VALUE You get the HDF make files and test scipts to execute your filter script by setting the environment variable "RUNSERIAL" to the full path of the @@ -2068,7 +2068,7 @@ Bug Fixes since HDF5-1.6.5 Release ------- - Fixed several bugs with writing fill values for datasets that have a variable-length datatype or component datatype. QAK - -2007/06/19 + 2007/06/19 - STDIO driver didn't support files bigger than 2GB because the OFFSET parameter of fseek is of type LONG INT, not big enough for big files. Use fseeko instead for big files if it's available on the @@ -2083,7 +2083,7 @@ Bug Fixes since HDF5-1.6.5 Release - Fixed potential file corruption bug which could overwrite a portion of an object's header when an attribute was renamed. If the new name for the attribute was longer than the old name, it was -possible + possible that the attribute would grow enough to overwrite another message in the object's header. QAK - 2007/01/02 - Fixed file corruption bug which could write an incorrect number of @@ -2108,11 +2108,11 @@ possible resembles the following, the object has been affected by this bug: #007: ../../hdf5_v1.6/src/H5C.c line 3887 in H5C_load_entry(): -unable to load entry + unable to load entry major(08): Meta data cache layer minor(40): Unable to load metadata into cache #008: ../../hdf5_v1.6/src/H5Ocache.c line 332 in H5O_load(): -corrupt object header - too few messages + corrupt object header - too few messages major(12): Object header layer minor(40): Unable to load metadata into cache @@ -2175,8 +2175,7 @@ corrupt object header - too few messages - Wrappers of H5Rcreate had incorrect prototypes. Added these overloaded functions: IdComponent::reference(void* ref, const char* name, -DataSpace& - dataspace, H5R_type_t ref_type = H5R_DATASET_REGION) + DataSpace& dataspace, H5R_type_t ref_type = H5R_DATASET_REGION) IdComponent::void reference(void* ref, const char* name) IdComponent::reference(void* ref, const H5std_string& name) and will remove these incorrect member functions: @@ -2621,62 +2620,62 @@ New Features ============ Configuration: ------------------------- - - Added yodconfigure, a configure tool, that patches up the configure - file to allow configure to launch executable via the proper - launching command like "yod -sz 1". AKC - 2005/11/10 - - Configure now recognizes the TR variable as the location of the - tr utility. JML 2005/10/20 + - Added yodconfigure, a configure tool, that patches up the configure + file to allow configure to launch executable via the proper + launching command like "yod -sz 1". AKC - 2005/11/10 + - Configure now recognizes the TR variable as the location of the + tr utility. JML 2005/10/20 Source code distribution: ------------------------- - - Added g95 as a testing "platform" informally. AKC - 2005/10/04. + - Added g95 as a testing "platform" informally. AKC - 2005/10/04. - Added MD5 checksumming to snapshot releases. Releases will now - produce an .md5 file as well as a .tar archive. md5sum can be - used to verify the arvhice with the .md5 checksum. -JL 2005/09/06 + produce an .md5 file as well as a .tar archive. md5sum can be + used to verify the arvhice with the .md5 checksum. -JL 2005/09/06 Library: -------- - Added HSYS_ERROR which retrieves the system error message and pushes - it to the error stack. This provides more information regarding the - failed system call. AKC - 2005/08/04 + it to the error stack. This provides more information regarding the + failed system call. AKC - 2005/08/04 - Added H5F_OBJ_LOCAL flag to H5Fget_obj_count() & H5Fget_obj_ids(), to - allow querying for objects in a file that was opened with a particular - file ID, instead of all objects opened in the file with any file ID. - QAK - 2005/06/01 + allow querying for objects in a file that was opened with a particular + file ID, instead of all objects opened in the file with any file ID. + QAK - 2005/06/01 Parallel Library: ----------------- - - Added mpich2 as a testing "platform" informally. AKC - 2005/10/04. - - HDF5 supports collective MPI-IO for irregular selection with HDF5 - dataset. Irregular selection is when users use API H5Sselect_hyperslab - more than once for the same dataset. - Currently, not all MPI-IO packages support the complicated - MPI derived datatypes used in the implementation of irregular - selections INSIDE HDF5. - 1) DEC 5.x wdoes not support complicated derived datatypes. - 2) For AIX 5.1: - If your poe version number is 3.2.0.20 or lower, - please edit powerpc-ibm-aix5.x in the directory hdf5/config/. - Find the line with - << hdf5_mpi_complex_derived_datatype_works >> - and UNCOMMENT this line before the configure. - check poe version with the following command: - lpp -l all | grep ppe.poe - 3) For Linux cluster,: - If mpich version is 1.2.5 or lower, collective irregular selection - IO is not supported; internally independent IO is used. - 4) For IRIX 6.5: - if C compiler version is 7.3 or lower, collective irregular - selection IO is not supported; internally independent IO is used. - 5) For platforms which internally used mpich: - If the mpich version is 1.2.5 or lower, please find the - corresponding config (in hdf5/config) file and add - hdf5_mpi_complex_derived_datatype_works='no' - at the end of the configuration file. For example, on the - NCSA SGI Altix, the internal mpich library is 1.2.5. So - hdf5_mpi_complex_derived_datatype_works='no' - should be added at the end of the config file ia64-linux-gnu. - KY - 2005/09/12 + - Added mpich2 as a testing "platform" informally. AKC - 2005/10/04. + - HDF5 supports collective MPI-IO for irregular selection with HDF5 + dataset. Irregular selection is when users use API H5Sselect_hyperslab + more than once for the same dataset. + Currently, not all MPI-IO packages support the complicated + MPI derived datatypes used in the implementation of irregular + selections INSIDE HDF5. + 1) DEC 5.x wdoes not support complicated derived datatypes. + 2) For AIX 5.1: + If your poe version number is 3.2.0.20 or lower, + please edit powerpc-ibm-aix5.x in the directory hdf5/config/. + Find the line with + << hdf5_mpi_complex_derived_datatype_works >> + and UNCOMMENT this line before the configure. + check poe version with the following command: + lpp -l all | grep ppe.poe + 3) For Linux cluster,: + If mpich version is 1.2.5 or lower, collective irregular selection + IO is not supported; internally independent IO is used. + 4) For IRIX 6.5: + if C compiler version is 7.3 or lower, collective irregular + selection IO is not supported; internally independent IO is used. + 5) For platforms which internally used mpich: + If the mpich version is 1.2.5 or lower, please find the + corresponding config (in hdf5/config) file and add + hdf5_mpi_complex_derived_datatype_works='no' + at the end of the configuration file. For example, on the + NCSA SGI Altix, the internal mpich library is 1.2.5. So + hdf5_mpi_complex_derived_datatype_works='no' + should be added at the end of the config file ia64-linux-gnu. + KY - 2005/09/12 Tools: ------ @@ -2691,24 +2690,24 @@ New Features C++ API: -------- - Added missing member functions: - H5::CompType::getMemberArrayType - H5::CompType::getMemberVarLenType - H5::AbstractDs::getArrayType - H5::AbstractDs::getVarLenType - H5::CommonFG::openArrayType - H5::CommonFG::openVarLenType - H5::PropList::copyProp -- this will replace the current - H5::PropList::copyProp in later releases due - to incorrect prototype. - BMR - 2005/07/27 + H5::CompType::getMemberArrayType + H5::CompType::getMemberVarLenType + H5::AbstractDs::getArrayType + H5::AbstractDs::getVarLenType + H5::CommonFG::openArrayType + H5::CommonFG::openVarLenType + H5::PropList::copyProp -- this will replace the current + H5::PropList::copyProp in later releases due + to incorrect prototype. + BMR - 2005/07/27 Support for New Platforms, Languages and Compilers ================================================== - - Added support for RedStorm platform (serial only.) AKC 2005/11/10 - - Added support for BG/L platform (serial only.) LA 2005/11/10 - - Added support for HPUX 11.23 (IA64); only C and C++ are supported - with the +DD64 flag + - Added support for RedStorm platform (serial only.) AKC 2005/11/10 + - Added support for BG/L platform (serial only.) LA 2005/11/10 + - Added support for HPUX 11.23 (IA64); only C and C++ are supported + with the +DD64 flag EIP 2005/10/05 @@ -2769,11 +2768,11 @@ Bug Fixes since HDF5-1.6.4 Release Configuration ------------- - - Configure can recognize -lmpich as a form of MPI library. -AKC- - 2005/9/28. - - Changed default C++ compiler for the IA64 platform from icc to - icpc which is the preferred compiler for Intel Compiler version - 8. AKC - 2005/09/02 + - Configure can recognize -lmpich as a form of MPI library. -AKC- + 2005/9/28. + - Changed default C++ compiler for the IA64 platform from icc to + icpc which is the preferred compiler for Intel Compiler version + 8. AKC - 2005/09/02 Performance ------------- @@ -2793,15 +2792,15 @@ Bug Fixes since HDF5-1.6.4 Release C++ API ------- - - Several member functions' prototype changed due to the - "int -> unsigned" change in the main library. They are: - H5::CompType::getMemberDataType(unsigned member_num) - H5::CompType::getMemberCompType(unsigned member_num) - H5::CompType::getMemberEnumType(unsigned member_num) - H5::CompType::getMemberIntType(unsigned member_num) - H5::CompType::getMemberFloatType(unsigned member_num) - H5::CompType::getMemberStrType(unsigned member_num) - BMR - 2005/07/27 + - Several member functions' prototype changed due to the + "int -> unsigned" change in the main library. They are: + H5::CompType::getMemberDataType(unsigned member_num) + H5::CompType::getMemberCompType(unsigned member_num) + H5::CompType::getMemberEnumType(unsigned member_num) + H5::CompType::getMemberIntType(unsigned member_num) + H5::CompType::getMemberFloatType(unsigned member_num) + H5::CompType::getMemberStrType(unsigned member_num) + BMR - 2005/07/27 @@ -2812,14 +2811,14 @@ Platforms Tested AIX 5.1 (32 and 64-bit) xlc 6.0.0.6 xlf 8.1.1.3 - xlC 6.0.0.6 - mpcc_r 6.0.0.6 + xlC 6.0.0.6 + mpcc_r 6.0.0.6 mpxlf_r 8.1.1.3 - xlc 5.0.2.5 - xlf 7.1.1.2 - xlC 5.0.2.5 - mpcc_r 5.0.2.5 - mpxlf_r 7.1.1.2 + xlc 5.0.2.5 + xlf 7.1.1.2 + xlC 5.0.2.5 + mpcc_r 5.0.2.5 + mpxlf_r 7.1.1.2 AIX 5.2 (32/64 bit) xlc 6.0.0.8 xlC 6.0.0.9 xlf 8.1.1.7 @@ -2851,30 +2850,30 @@ Platforms Tested IRIX64 6.5 (64 & n32) MIPSpro cc 7.3.1.3m F90 MIPSpro 7.3.1.3m (64 only) C++ MIPSpro cc 7.3.1.3m - mpt 1.6 + mpt 1.6 Linux 2.4.20-28.7 gcc 2.96 (eirene, verbena) gcc 3.3.2 PGI compilers (pgcc, pgf90, pgCC) version 5.2-1 Absoft Fortran compiler v9.0 - Intel(R) C++ 32-bit Version 8.1 - Intel(R) Fortran 32-bit Version 8.1 + Intel(R) C++ 32-bit Version 8.1 + Intel(R) Fortran 32-bit Version 8.1 MPIch 1.2.6 Linux 2.4.21-268-smp x86_64 gcc 3.3.1 (SuSE Linux, AMD) (mir) PGI 5.2-1 C and F90 (with k3-32) - Intel(R) C++ 32-bit Version 8.1 - Intel(R) Fortran 32-bit Version 8.1 + Intel(R) C++ 32-bit Version 8.1 + Intel(R) Fortran 32-bit Version 8.1 Linux 2.4.21-sgi306rp21 Altix SMP ia64 Intel(R) C++ Version 8.1 (cobalt) Intel(R) Fortran Itanium(R) Version 8.1 SGI MPI OSF1 V5.1 (QSC) Compaq C V6.5-011 HP Fortran V5.5A-3548 - Compaq C++ V6.5-036 - MPIX200_64_r13.4 + Compaq C++ V6.5-036 + MPIX200_64_r13.4 OSF1 V5.1 (PSC) Compaq C V6.5-303 HP Fortran V5.5A-3548 - Compaq C++ V6.5-040 + Compaq C++ V6.5-040 SunOS 5.8 32,46 Sun WorkShop 6 update 2 C 5.3 (Solaris 2.8) Sun WorkShop 6 update 2 Fortran 90 Sun WorkShop 6 update 2 C++ 5.3 @@ -2886,12 +2885,12 @@ Platforms Tested Sun WorkShop 6 update 2 C++ 5.3 Patch 111685-13 Xeon Linux 2.4.21-32.0.1.ELsmp-perfctr-lustre - (tungsten) Intel(R) C++ Version 9.0 + (tungsten) Intel(R) C++ Version 9.0 Intel(R) Fortran Compiler Version 9.0 IA-64 Linux 2.4.21.SuSE_292.til1 ia64 (NCSA tg-login) Intel(R) C++ Version 8.0 Intel(R) Fortran Compiler Version 8.0 - mpich-gm-1.2.5..10-intel-r2 + mpich-gm-1.2.5..10-intel-r2 Windows XP MSVC++.NET MSVC++ 6.0 Intel 8.1 C++ @@ -2913,7 +2912,7 @@ Key: y = tested and supported Platform C F90 F90 C++ zlib SZIP parallel parallel -IBM BG/L (16) n n n n y y +IBM BG/L (16) n n n n y y Solaris2.8 64-bit y y y(1) y y y Solaris2.8 32-bit y y y(1) y y y Solaris2.9 64-bit y(1) y y(1) y y y @@ -2936,7 +2935,7 @@ FreeBSD 4.11 n n n y y y RedHat 7.3 W (3) y(1) y(11) n y y y RedHat 7.3 W Intel (3) n y n y y y RedHat 7.3 W PGI (3) n y n y y y -RedStorm (16) n y n y y n +RedStorm (16) n y n y y n SuSe x86_64 gcc (3,13) n y(12) n y y y SuSe x86_64 icc (3,13) n y(14) n y y y Linux 2.4 Xeon C Lustre Intel (3,6) n y n y y y @@ -2946,7 +2945,7 @@ Linux 2.4 SGI Altix ia64 Intel (3) y y y y y y Platform Shared static- Thread- STREAM- libraries(4) exec safe VFD -IBM BG/L n y n n +IBM BG/L n y n n Solaris2.8 64-bit y x y y Solaris2.8 32-bit y x y y Solaris2.9 64-bit y x y y @@ -2968,7 +2967,7 @@ FreeBSD 4.11 y y y y RedHat 7.3 W (3) y y y y RedHat 7.3 W Intel (3) n y n y RedHat 7.3 W PGI (3) n y n y -RedStorm n y n y +RedStorm n y n y SuSe x86_64 gcc (3,13) n y n y SuSe x86_64 icc (3,13) y y(15) n y Linux 2.4 Xeon C Lustre Intel (3,6) y y n y @@ -3262,7 +3261,7 @@ New Features Tools: ------ - - New tool, h5jam. See HDF5 Reference Manual. 2004/10/08 + - New tool, h5jam. See HDF5 Reference Manual. 2004/10/08 F90 API: -------- @@ -3270,9 +3269,9 @@ New Features C++ API: -------- - - Started using C library's reference counting in place of the class - RefCounter, which existed before the C mechanism was available. - As a result, RefCounter has been removed. 2005/03/12 BMR + - Started using C library's reference counting in place of the class + RefCounter, which existed before the C mechanism was available. + As a result, RefCounter has been removed. 2005/03/12 BMR Support for new platforms, languages and compilers. @@ -3280,7 +3279,7 @@ Support for new platforms, languages and compilers. Configuration ------------- - - Upgraded from GNU autoconf 2.53 to autoconf 2.59. JML - 2005/01/31 + - Upgraded from GNU autoconf 2.53 to autoconf 2.59. JML - 2005/01/31 Bug Fixes since HDF5-1.6.3 release @@ -3289,54 +3288,54 @@ Bug Fixes since HDF5-1.6.3 release Library ------- - Fixed a racing condition in MPIPOSIX virtual file drive close - function. Now all processes must completed the close before any - of them is returned. This prevents some "faster" processes start - accessing the file for another purpose (e.g., open with truncate) - while other "slower" processes have not closed the same file with - the previous purpose. AKC - 2005/03/01 - - H5Tget_member_value calls for enum datatype didn't return correct - value if H5Tenum_valueof was called first. It's fixed. SLU - - 2005/02/08 + function. Now all processes must completed the close before any + of them is returned. This prevents some "faster" processes start + accessing the file for another purpose (e.g., open with truncate) + while other "slower" processes have not closed the same file with + the previous purpose. AKC - 2005/03/01 + - H5Tget_member_value calls for enum datatype didn't return correct + value if H5Tenum_valueof was called first. It's fixed. SLU - + 2005/02/08 - For variable-length string, H5Tget_class returned H5T_STRING as its - class. But H5Tdetect_class and H5Tget_member_class considered it - as H5T_VLEN. This is fixed to let all these 3 functions treat it - as H5T_STRING. SLU - 2005/02/08 + class. But H5Tdetect_class and H5Tget_member_class considered it + as H5T_VLEN. This is fixed to let all these 3 functions treat it + as H5T_STRING. SLU - 2005/02/08 - The byte order of all 1-byte integer types was fixed as - little-endian even on a big-endian machine. It's corrected. - SLU - 2005/02/07 + little-endian even on a big-endian machine. It's corrected. + SLU - 2005/02/07 - Fixed segmentation fault when calling H5Fflush with an attribute that - hasn't had a value written to it open. QAK - 2004/10/18 + hasn't had a value written to it open. QAK - 2004/10/18 - Backed out support for bitfield and time types in H5Tget_native_type. - Leave it to future support. The function simply returns error - message of "not support" for bitfield and time types. SLU - 2004/10/5 + Leave it to future support. The function simply returns error + message of "not support" for bitfield and time types. SLU - 2004/10/5 - Fixed address check in Core VFL driver to avoid spurious address/size - overflows for odd valued addresses and/or sizes. QAK - 2004/09/27 + overflows for odd valued addresses and/or sizes. QAK - 2004/09/27 - Fixed problem where chunked datasets were not able to be deleted - from a file under certain circumstances. QAK - 2004/09/27/ + from a file under certain circumstances. QAK - 2004/09/27/ Configuration ------------- - - IRIX64 MIPSpro compiler of 7.4.x supports C99 features. Default - to use the 'c99' compiler if available. AKC - 2004/12/13 - - Intel v8.0 compiler would infinite loop when compiling some test - code with -O3 option. Changed enable-production default compiler - option to -O2. AKC - 2004/12/06 - - Long double is assumed to be a supported C data type. It is a - standard C89 type. AKC - 2004/10/22 + - IRIX64 MIPSpro compiler of 7.4.x supports C99 features. Default + to use the 'c99' compiler if available. AKC - 2004/12/13 + - Intel v8.0 compiler would infinite loop when compiling some test + code with -O3 option. Changed enable-production default compiler + option to -O2. AKC - 2004/12/06 + - Long double is assumed to be a supported C data type. It is a + standard C89 type. AKC - 2004/10/22 Performance ------------- - Many changes were made to the library to improve performance, - especially for the variable-length datatypes and metadata cache. + Many changes were made to the library to improve performance, + especially for the variable-length datatypes and metadata cache. Tools ----- - h5fc and h5c++ work correctly when -c compiler flag - is used. EIP - 2005/03/14 - - Fixed h5dump to print attributes data in ASCII if -r option is used. - AKC - 2004/11/18 + is used. EIP - 2005/03/14 + - Fixed h5dump to print attributes data in ASCII if -r option is used. + AKC - 2004/11/18 - Fixed space utilization reported in h5ls to correct error - in formula used. QAK - 2004/10/22 + in formula used. QAK - 2004/10/22 Documentation ------------- @@ -3375,14 +3374,14 @@ Platforms Tested AIX 5.1 (32 and 64-bit) xlc 6.0.0.6 xlf 8.1.1.3 - xlC 6.0.0.6 - mpcc_r 6.0.0.6 + xlC 6.0.0.6 + mpcc_r 6.0.0.6 mpxlf_r 8.1.1.3 - xlc 5.0.2.5 - xlf 7.1.1.2 - xlC 5.0.2.5 - mpcc_r 5.0.2.5 - mpxlf_r 7.1.1.2 + xlc 5.0.2.5 + xlf 7.1.1.2 + xlC 5.0.2.5 + mpcc_r 5.0.2.5 + mpxlf_r 7.1.1.2 AIX 5.2 (32/64 bit) xlc 6.0.0.8 xlC 6.0.0.9 xlf 8.1.1.7 @@ -3410,31 +3409,31 @@ Platforms Tested IRIX64 6.5 (64 & n32) MIPSpro cc 7.3.1.3m F90 MIPSpro 7.3.1.3m (64 only) C++ MIPSpro cc 7.3.1.3m - mpt 1.6 + mpt 1.6 Linux 2.4.20-28.7 gcc 2.96 (eirene, verbena) gcc 3.3.2 PGI compilers (pgcc, pgf90, pgCC) version 5.2-1 Absoft Fortran compiler v9.0 - Intel(R) C++ 32-bit Version 8.1 - Intel(R) Fortran 32-bit Version 8.1 + Intel(R) C++ 32-bit Version 8.1 + Intel(R) Fortran 32-bit Version 8.1 MPIch 1.2.6 Linux 2.4.21-268-smp x86_64 gcc 3.3.1 (SuSE Linux, AMD) (mir) PGI 5.2-1 C and F90 (with k3-32) - Intel(R) C++ 32-bit Version 8.1 - Intel(R) Fortran 32-bit Version 8.1 + Intel(R) C++ 32-bit Version 8.1 + Intel(R) Fortran 32-bit Version 8.1 Linux 2.4.21-sgi303r2 Altix SMP ia64 Intel(R) C++ Version 8.1 (cobalt) Intel(R) Fortran Itanium(R) Version 8.1 SGI MPI OSF1 V5.1 (QSC) Compaq C V6.5-011 HP Fortran V5.5A-3548 - Compaq C++ V6.5-036 - MPIX200_64_r13.4 + Compaq C++ V6.5-036 + MPIX200_64_r13.4 OSF1 V5.1 (PSC) Compaq C V6.5-303 HP Fortran V5.5A-3548 - Compaq C++ V6.5-040 - MPIX200_64_r13.4 + Compaq C++ V6.5-040 + MPIX200_64_r13.4 FORTRAN 90 2.0 Patch 107356-04 SunOS 5.8 32,46 Sun WorkShop 6 update 2 C 5.3 (Solaris 2.8) Sun WorkShop 6 update 2 Fortran 90 @@ -3445,12 +3444,12 @@ Platforms Tested TFLOPS r1.0.4 v4.5.2 i386 pgcc Rel 3.1-4i with mpich-1.2.4 with local modifications Xeon Linux 2.4.20-31.9smp_perfctr_lustre - (tungsten) Intel(R) C++ Version 8.0 + (tungsten) Intel(R) C++ Version 8.0 Intel(R) Fortran Compiler Version 8.0 IA-64 Linux 2.4.21.SuSE_128.bef1 ia64 (NCSA tg-login) Intel(R) C++ Version 8.0 Intel(R) Fortran Compiler Version 8.0 - mpich-gm-1.2.5..intel + mpich-gm-1.2.5..intel Windows XP MSVC++.NET MSVC++ 6.0 Compaq Visual Fortran 6.6C @@ -3796,33 +3795,33 @@ New Features INSTALL_Windows_Short.txt for details. - On Windows, h5repack,h5diff,h5ls and h5import tool tests have been added. - KY - 2004/9/16 + KY - 2004/9/16 Library: -------- - Modified the way how HDF5 calculates 'pixels_per_scanline' parameter for - SZIP compression. Now there is no restriction on the size and shape of the - chunk except that the total number of elements in the chunk cannot be - bigger than 'pixels_per_block' parameter provided by the user. + SZIP compression. Now there is no restriction on the size and shape of the + chunk except that the total number of elements in the chunk cannot be + bigger than 'pixels_per_block' parameter provided by the user. EIP - 2004/07/21 - HDF5 can now link to SZIP with or without szip's encoder. - The new API function H5Zget_filter_info can be used to check - szip's status. Attempting to assign szip to a dataset property - list or attempting to write with szip will generate an error if - szip's encoder is disabled. JL/NF - 2004/6/30 + The new API function H5Zget_filter_info can be used to check + szip's status. Attempting to assign szip to a dataset property + list or attempting to write with szip will generate an error if + szip's encoder is disabled. JL/NF - 2004/6/30 - SZIP always uses K13 compression. This flag no longer needs to - be set when calling H5Pset_szip. If the flag for CHIP - compression is set, it will be ignored (since the two are mutually - exclusive). JL/NF - 2004/6/30 + be set when calling H5Pset_szip. If the flag for CHIP + compression is set, it will be ignored (since the two are mutually + exclusive). JL/NF - 2004/6/30 - A new API function H5Fget_name was added. It returns the name - of the file by object(file, group, data set, named data type, - attribute) ID. SLU - 2004/06/29 + of the file by object(file, group, data set, named data type, + attribute) ID. SLU - 2004/06/29 - A new API function H5Fget_filesize was added. It returns the - actual file size of the opened file. SLU - 2004/06/24 - - Added option that if $HDF5_DISABLE_VERSION_CHECK is set to 2, - will suppress all library version mismatch warning messages. - AKC - 2004/4/14 + actual file size of the opened file. SLU - 2004/06/24 + - Added option that if $HDF5_DISABLE_VERSION_CHECK is set to 2, + will suppress all library version mismatch warning messages. + AKC - 2004/4/14 Parallel Library: ----------------- @@ -3830,19 +3829,19 @@ New Features Tools: ------ - h5repack was added to the tools suite. h5repack regenerates an HDF5 file - from another HDF5 file, optionally applying HDF5 filters (compression) - and/or chunking to the copied file. The filters options are read from - the command line. See /doc/html/Tools.html for more details. - PVN - 2004/9/13 + from another HDF5 file, optionally applying HDF5 filters (compression) + and/or chunking to the copied file. The filters options are read from + the command line. See /doc/html/Tools.html for more details. + PVN - 2004/9/13 - h5dump includes new features: - 1) Printing of dataset filters, storage layout and fill value information. - 2) Print a list of the file contents. - 3) Escape non printing characters. - 4) Print the content of the boot block. - 5) Print array indices with the data (the default). - These options are all switch controlled. See /doc/html/Tools.html for more details. - PVN - 2004/9/13 + 1) Printing of dataset filters, storage layout and fill value information. + 2) Print a list of the file contents. + 3) Escape non printing characters. + 4) Print the content of the boot block. + 5) Print array indices with the data (the default). + These options are all switch controlled. See /doc/html/Tools.html for more details. + PVN - 2004/9/13 F90 API: @@ -3859,12 +3858,12 @@ New Features C++ API: -------- - - Added wrappers for array and variable length datatypes APIs - - Added wrappers for newly added APIs from H5T, H5F, and H5I - - Added many wrappers that were missing from the H5P API - - Added the ability to reference HDF5 objects to these classes: - DataSet, DataType, Group, and H5File (wrappers for H5R APIs) - BMR 2004/08/04 + - Added wrappers for array and variable length datatypes APIs + - Added wrappers for newly added APIs from H5T, H5F, and H5I + - Added many wrappers that were missing from the H5P API + - Added the ability to reference HDF5 objects to these classes: + DataSet, DataType, Group, and H5File (wrappers for H5R APIs) + BMR 2004/08/04 Support for new platforms, languages and compilers. @@ -3874,12 +3873,12 @@ Support for new platforms, languages and compilers. - Absoft compiler f95 v9.0 is supported on Linux 2.4 32bit EIP - 2004/07/29 - HDF5 Fortran APIs are supported on Mac OSX with IBM XL Fortran - compiler version 8.1. This is a default compiler. + compiler version 8.1. This is a default compiler. - HDF5 Fortran APIs are supported on MAC OSX with Absoft F95 compiler - version 8.2; set F9X environment variable to f95, for example - setenv F9X f95 - Use --disable-shared --enable-static configure flags when Absoft - compiler is used. + version 8.2; set F9X environment variable to f95, for example + setenv F9X f95 + Use --disable-shared --enable-static configure flags when Absoft + compiler is used. EIP - 2004/07/27 Bug Fixes since HDF5-1.6.2 release @@ -3887,72 +3886,72 @@ Bug Fixes since HDF5-1.6.2 release Library ------- - - Fixed parallel bug in which some processes attempted collective - I/O while others did independent I/O. Bug appeared when some - processes used point selections, and others didn't. JRM - 2004/9/15 + - Fixed parallel bug in which some processes attempted collective + I/O while others did independent I/O. Bug appeared when some + processes used point selections, and others didn't. JRM - 2004/9/15 - Corrected error where dataset region references were written in an - incorrect way on Cray machines. PVN & QAK - 2004/09/13 + incorrect way on Cray machines. PVN & QAK - 2004/09/13 - The H5Tget_native_type now determines the native type for integers - based on the precision. This is to avoid cases of wrongly converting - an int to a short in machines that have a short of 8 bytes but with - 32bit precision (e.g Cray SV1). PVN - 2004/09/07 + based on the precision. This is to avoid cases of wrongly converting + an int to a short in machines that have a short of 8 bytes but with + 32bit precision (e.g Cray SV1). PVN - 2004/09/07 - Changed H5Dread() to not overwrite data in an application's buffer - with garbage when accessing a chunked dataset with an undefined fill - value and an unwritten chunk is uncountered. QAK - 2004/08/25 + with garbage when accessing a chunked dataset with an undefined fill + value and an unwritten chunk is uncountered. QAK - 2004/08/25 - Fixed error which could cause a core dump when a type conversion - routine was registered after a compound datatype had been - converted and then an equivalent compound datatype was converted - again. QAK - 2004/08/07 + routine was registered after a compound datatype had been + converted and then an equivalent compound datatype was converted + again. QAK - 2004/08/07 - Fixed memory overwrite when encoding "multi" file driver information - for file's superblock. QAK - 2004/08/05 + for file's superblock. QAK - 2004/08/05 - Fixed obscure bug where a filter which failed during chunk allocation - could allow library to write uncompressed data to disk but think - the data was compressed. QAK - 2004/07/29 + could allow library to write uncompressed data to disk but think + the data was compressed. QAK - 2004/07/29 - Fixed bug where I/O to an extendible chunked dataset with zero-sized - dimensions would cause library to fail an assertion. - QAK - 2004/07/27 + dimensions would cause library to fail an assertion. + QAK - 2004/07/27 - Fixed bug where chunked datasets which have filters defined, - allocation time set to "late" and whose chunks don't align with - the dataspace bounds could have incorrect data stored when - overwriting the entire dataset on the first write. QAK - 2004/07/27 + allocation time set to "late" and whose chunks don't align with + the dataspace bounds could have incorrect data stored when + overwriting the entire dataset on the first write. QAK - 2004/07/27 - Added check to ensure that dataspaces have extents set. JML-2004/07/26 - Fixed bug on some Solaris systems where HDF5 would try to use - gettimeofday() when that function didn't work properly. - JML - 2004/07/23 + gettimeofday() when that function didn't work properly. + JML - 2004/07/23 - Fixed bug in H5Sset_extent_simple where setting maximum size to - non-zero, then to zero would cause an error. JML - 2004/07/20 + non-zero, then to zero would cause an error. JML - 2004/07/20 - Allow NULL pointer for buffer parameter to H5Dread & H5Dwrite - when not writing data ("none" selection or hyperslab or point - selection with no elements defined). QAK - 2004/07/20 + when not writing data ("none" selection or hyperslab or point + selection with no elements defined). QAK - 2004/07/20 - Calling H5Gcreate() on "/" or "." throws an error instead of - failing quietly. JML - 2004/07/19 + failing quietly. JML - 2004/07/19 - Fixed bug where setting file address size to be very small could - trigger an assert if the file grew to more than 64 KB. Now throws - an error and data can be recovered. JL/NF - 2004/07/14 + trigger an assert if the file grew to more than 64 KB. Now throws + an error and data can be recovered. JL/NF - 2004/07/14 - Fixed bug where "resurrecting" a dataset was failing. - QAK - 2004/07/14 + QAK - 2004/07/14 - Fixed bug where incorrect data could be read from a chunked dataset - after it was extended. QAK - 2004/07/12 + after it was extended. QAK - 2004/07/12 - After compound datatype with variable-length string in the fields - is committed to file, the size is messed up when it's read back. - Fixed. SLU - 2004/06/11 + is committed to file, the size is messed up when it's read back. + Fixed. SLU - 2004/06/11 - Fixed potential file corruption bug when a block of metadata could - overlap the end of the internal metadata accumulator buffer and - the buffer would be extended correctly, but would incorrectly - change it's starting address. QAK - 2004/06/09 + overlap the end of the internal metadata accumulator buffer and + the buffer would be extended correctly, but would incorrectly + change it's starting address. QAK - 2004/06/09 - Opaque datatype with no tag failed for some operations. Fixed. - SLU - 2004/6/3 + SLU - 2004/6/3 - Fixed potential file corruption bug where dimensions that were - too large (a value greater than could be represented in 32-bits) - could cause the incorrect amount of space to be allocated in a - file for the raw data for the dataset. QAK - 2004/06/01 - - Fixed dtypes "sw long double -> double" failure in QSC class - machines. AKC - 2004/4/16 + too large (a value greater than could be represented in 32-bits) + could cause the incorrect amount of space to be allocated in a + file for the raw data for the dataset. QAK - 2004/06/01 + - Fixed dtypes "sw long double -> double" failure in QSC class + machines. AKC - 2004/4/16 Configuration ------------- - Fixed the long compile time of H5detect.c when v7.x Intel Compiler - is used with optimization NOT off. AKC - 2004/05/20 + is used with optimization NOT off. AKC - 2004/05/20 Performance ------------- @@ -3960,82 +3959,81 @@ Bug Fixes since HDF5-1.6.2 release Tools ----- - On SGI h5dump displayed only part of the data due to the bug - in the system printf; fixed. + in the system printf; fixed. EIP - 2004/09/21 Documentation ------------- - Several descriptive errors have been fixed throughout the - documentation, particularly in the reference manual (RM). - A selection particularly worthy of note would be these: + documentation, particularly in the reference manual (RM). + A selection particularly worthy of note would be these: - The H5Pset_szip description in the RM has been expanded and - corrected to facilitate use of SZIP compression. + corrected to facilitate use of SZIP compression. - A note has been added to the H5Dcreate description that an - unexplained failure is likely to be due to a property list error - that is detected only at the time of dataset creation. - - - FMB - 2004/09/21 + unexplained failure is likely to be due to a property list error + that is detected only at the time of dataset creation. + FMB - 2004/09/21 F90 API ------- - - Fortran functions h5dwrite/read_f and h5awrite/read_f do not - accept dims parameter of INTEGER type anymore. Code was removed. + - Fortran functions h5dwrite/read_f and h5awrite/read_f do not + accept dims parameter of INTEGER type anymore. Code was removed. 2004/04/15 + C++ API ------- - - H5::Exception's and its subclasses' constructors that were - overloaded to take char pointers are removed and constructors - that passed in reference of 'string' are changed to pass - by value. In addition, the default value of the data member - H5::Exception::detailMessage is changed from 0/NULL to - DEFAULT_MSG ("No detailed information provided".) - - Prototype for DSetCreatPropList::setLayout is changed: 1st parameter - is removed because it was there only by mistake. - BMR 2004/08/04 + - H5::Exception's and its subclasses' constructors that were + overloaded to take char pointers are removed and constructors + that passed in reference of 'string' are changed to pass + by value. In addition, the default value of the data member + H5::Exception::detailMessage is changed from 0/NULL to + DEFAULT_MSG ("No detailed information provided".) + - Prototype for DSetCreatPropList::setLayout is changed: 1st parameter + is removed because it was there only by mistake. + BMR 2004/08/04 Documentation ============= HDF5 Library documentation -------------------------- - HDF5 C++ API Reference Manual - This document has been added to the HDF5 document set. - The predecessor document, "HDF5 C++ Interfaces," has been removed. + This document has been added to the HDF5 document set. + The predecessor document, "HDF5 C++ Interfaces," has been removed. - HDF5 C++ API Design Specification - A first draft of this document has been added to the HDF5 document - set. The draft has been posted on the HDF5 website and a link - has been added to the HDF5 documents index (index.html at the top - level of the document set). + A first draft of this document has been added to the HDF5 document + set. The draft has been posted on the HDF5 website and a link + has been added to the HDF5 documents index (index.html at the top + level of the document set). - Parallel HDF5 - In prior releases, the HDF5 document set included two parallel - HDF5 documents. Those documents have been deleted and the - HDF5 documents index (index.html) now links to a "Parallel HDF5" - page on the HDF5 website (http://hdf.ncsa.uiuc.edu/HDF5/PHDF5/). + In prior releases, the HDF5 document set included two parallel + HDF5 documents. Those documents have been deleted and the + HDF5 documents index (index.html) now links to a "Parallel HDF5" + page on the HDF5 website (http://hdf.ncsa.uiuc.edu/HDF5/PHDF5/). - HDF5 High Level APIs - Links to the HDF5 High Level APIs and to the HDF5 High Level - Reference Manual have been added to the HDF5 documents index - (index.html). + Links to the HDF5 High Level APIs and to the HDF5 High Level + Reference Manual have been added to the HDF5 documents index + (index.html). - HDF5 Reference Manual - Tools: h5repack -- A description of the new h5repack tool has been + Tools: h5repack -- A description of the new h5repack tool has been added to the Tools page. - Tools: h5dump -- Several new options have been added to h5dump. - New functions -- All new functions have been added to the RM. - API changes -- Relevant function descriptions have been updated in + Tools: h5dump -- Several new options have been added to h5dump. + New functions -- All new functions have been added to the RM. + API changes -- Relevant function descriptions have been updated in instances where programming interfaces have changed. - FMB - 2004/09/21 + FMB - 2004/09/21 Windows installation documentation ---------------------------------- - INSTALL_Windows.txt has been enhanced to include instructions building - HDF5 with FORTRAN and C++. + HDF5 with FORTRAN and C++. - Two optional installation documents have been added. They are - INSTALL_Windows_Short.txt and INSTALL_Windows_From_Command_Line.txt. - INSTALL_Windows_Short.txt is supposed to help general users who - only want to build,test and install HDF5 in a quick way. - INSTALL_Windows_From_Command_Line.txt is supposed to help users who - would like to compile,test and install HDF5 in command line environment. + INSTALL_Windows_Short.txt and INSTALL_Windows_From_Command_Line.txt. + INSTALL_Windows_Short.txt is supposed to help general users who + only want to build,test and install HDF5 in a quick way. + INSTALL_Windows_From_Command_Line.txt is supposed to help users who + would like to compile,test and install HDF5 in command line environment. - INSTALL_Windows_withcpp.txt and INSTALL_Windows_withF90.txt became - obsolete. Files are deleted from the release_docs directory. - KY 2004/09/16, EIP 2004/9/21 + obsolete. Files are deleted from the release_docs directory. + KY 2004/09/16, EIP 2004/9/21 @@ -4044,14 +4042,14 @@ Platforms Tested AIX 5.1 (32 and 64-bit) xlc 6.0.0.6 xlf 8.1.1.3 - xlC 6.0.0.6 - mpcc_r 6.0.0.6 + xlC 6.0.0.6 + mpcc_r 6.0.0.6 mpxlf_r 8.1.1.3 - xlc 5.0.2.5 - xlf 7.1.1.2 - xlC 5.0.2.5 - mpcc_r 5.0.2.5 - mpxlf_r 7.1.1.2 + xlc 5.0.2.5 + xlf 7.1.1.2 + xlC 5.0.2.5 + mpcc_r 5.0.2.5 + mpxlf_r 7.1.1.2 AIX 5.2 xlc 6.0.0.8 xlC 6.0.0.8 xlf 8.1.1.6 @@ -4072,7 +4070,7 @@ Platforms Tested IRIX64 6.5 (64 & n32) MIPSpro cc 7.3.1.3m F90 MIPSpro 7.3.1.3m (64 only) C++ MIPSpro cc 7.3.1.3m - mpt 1.6 + mpt 1.6 Linux 2.4.18 gcc 2.96, 3.3.2 g++ 3.3.2 Intel(R) C++ Version 7.1 @@ -4085,10 +4083,10 @@ Platforms Tested MPIch 1.2.4 Linux 2.4.21-2.9.5ws #3 gcc 3.2.3 (Red Hat Linux 3.2.3-16) SMP x86_64 g++ 3.2.3 - Linux 2.4.21-4.ELsmp Intel(R) C++ 32-bit Version 8.0 - Intel(R) Fortran 32-bit Version 8.0 - gcc 3.4.0 - MPICH 1..5.2 Inmel 8.0 + Linux 2.4.21-4.ELsmp Intel(R) C++ 32-bit Version 8.0 + Intel(R) Fortran 32-bit Version 8.0 + gcc 3.4.0 + MPICH 1..5.2 Inmel 8.0 Linux 2.4.19-SMP x86_64 gcc (GCC) 3.2.2 (SuSE Linux) g++ 3.2.2 Linux 2.6.4-52smp x86_64 gcc 3.3.3 (SuSE Linux 9.1 AMD64)) @@ -4100,8 +4098,8 @@ Platforms Tested SGI MPI OSF1 V5.1 Compaq C V6.5-303 HP Fortran V5.5A-3548 - Compaq C++ V6.5-040 - MPI_64bit_R13 + Compaq C++ V6.5-040 + MPI_64bit_R13 SunOS 5.7(32 and 64 bit) WorkShop Compilers 5.0 98/12/15 C 5.0 (Solaris 2.7) WorkShop Compilers 5.0 98/12/15 C++ 5.0 WorkShop Compilers 5.0 98/10/25 @@ -4116,7 +4114,7 @@ Platforms Tested Intel(R) Fortran Compiler Version 7.0 Xeon Linux 2.4.20-31.9smp_perfctr_lustre - Intel(R) C++ Version 8.0 + Intel(R) C++ Version 8.0 Intel(R) Fortran Compiler Version 8.0 IA-64 Linux 2.4.16 ia64 gcc version 3.0.4 @@ -4126,13 +4124,13 @@ Platforms Tested IA-64 Linux 2.4.21.SuSE_128.bef1 ia64 Intel(R) C++ Version 8.0 Intel(R) Fortran Compiler Version 8.0 - mpich-gm-1.2.5..intel + mpich-gm-1.2.5..intel Windows 2000 (NT5.0) MSVC++ 6.0 MSVC++ .NET DEC Visual Fortran 6.0 Intel C and F90 compilers version 7.1 - Code Warrior 8.0 + Code Warrior 8.0 Windows XP MSVC++.NET MSVC++ 6.0 DEC Visual Fortran 6.0 @@ -4435,31 +4433,31 @@ New Features Configuration: -------------- - Default of $prefix is changed to $PWD/hdf5 so that multiple - builds using --srcdir is possible in the same machine. - AKC - 2003/12/1 + builds using --srcdir is possible in the same machine. + AKC - 2003/12/1 Library: -------- - Added H5Iget_ref, H5Iinc_ref and H5Idec_ref routines to the C - library and the FORTRAN wrapper. See the reference manual for a - full description of these new routines. QAK - 2003/12/11 + library and the FORTRAN wrapper. See the reference manual for a + full description of these new routines. QAK - 2003/12/11 Parallel Library: ----------------- - - The parallel tests in testpar/ now provides different levels of - verbosity via the '-v' option. The default is less verbose - than before. AKC - 2004/01/23 + - The parallel tests in testpar/ now provides different levels of + verbosity via the '-v' option. The default is less verbose + than before. AKC - 2004/01/23 - Added parallel test, test_mpio_1wMr, which tests if the - underlaying parallel I/O system is conforming to the POSIX - write/read requirement. This version includes options of using - atomicity and file-sync. AKC - 2003/11/27 + underlaying parallel I/O system is conforming to the POSIX + write/read requirement. This version includes options of using + atomicity and file-sync. AKC - 2003/11/27 Tools: ------ - Added option -showconfig to compiler tools (h5cc,h5fc,h5c++). - AKC - 2004/01/08 - - Install the "h5cc" and "h5fc" tools as "h5pcc" and "h5pfc" - respectively if library is built in parallel mode. AKC - 2004/01/07 + AKC - 2004/01/08 + - Install the "h5cc" and "h5fc" tools as "h5pcc" and "h5pfc" + respectively if library is built in parallel mode. AKC - 2004/01/07 - Added metadata benchmark (perform/perf_meta). SLU - 2003/10/03 C++ API: @@ -4547,9 +4545,9 @@ Bug Fixes since HDF5-1.6.1 release Tools ----- - - Fixed h5redeploy which sometimes complain too many argument for the - test command. (The complain did not hinder the h5redploy to proceed - correctly.) AKC - 2003/11/03 + - Fixed h5redeploy which sometimes complain too many argument for the + test command. (The complain did not hinder the h5redploy to proceed + correctly.) AKC - 2003/11/03 Documentation ------------- @@ -4565,12 +4563,12 @@ Platforms Tested AIX 5.1 (32 and 64-bit) xlc 6.0.0.2 xlf 8.1.0.3 - xlC 6.0.0.4 - xlc 5.0.2.5 - xlf 7.1.1.2 - xlC 5.0.2.5 - mpcc_r 5.0.2.5 - mpxlf_r 7.1.1.2 + xlC 6.0.0.4 + xlc 5.0.2.5 + xlf 7.1.1.2 + xlC 5.0.2.5 + mpcc_r 5.0.2.5 + mpxlf_r 7.1.1.2 poe 3.2.0.10 Cray T3E sn6606 2.0.6.08 Cray Standard C Version 6.6.0.2 Cray Fortran Version 3.6.0.2 @@ -4606,11 +4604,11 @@ Platforms Tested Intel(R) Fortran Itanium(R) Version 7.1 SGI MPI OSF1 V5.1 Compaq C V6.4-014 - Compaq Fortran V5.5-2602 - Compaq Fortran V5.5-1877 - Compaq C++ V6.5-033 - Compaq C++ V6.5-030 - MPI_64bit_R13 + Compaq Fortran V5.5-2602 + Compaq Fortran V5.5-1877 + Compaq C++ V6.5-033 + Compaq C++ V6.5-030 + MPI_64bit_R13 SunOS 5.7(32 and 64 bit) WorkShop Compilers 5.0 98/12/15 C 5.0 (Solaris 2.7) WorkShop Compilers 5.0 98/12/15 C++ 5.0 WorkShop Compilers 5.0 98/10/25 @@ -4631,12 +4629,12 @@ Platforms Tested IA-64 Linux 2.4.21.SuSE_128.bef1 ia64 Intel(R) C++ Version 7.1 Intel(R) Fortran Compiler Version 7.1 - mpich-gm-1.2.5..intel + mpich-gm-1.2.5..intel Windows 2000 (NT5.0) MSVC++ 6.0 DEC Visual Fortran 6.0 Intel C and F90 compilers version 7.1 - Code Warrior 8.0 + Code Warrior 8.0 Windows XP MSVC++.NET MAC OS X Darwin 7.2 gcc and g++ Apple Computer, Inc. GCC @@ -5003,7 +5001,7 @@ Bug Fixes since HDF5-1.6.0 release Tools ----- - - Fixed a segmentation fault of h5diff when percentage option is used. + - Fixed a segmentation fault of h5diff when percentage option is used. AKC - 2003/08/27 - Switched away from tools using internal "fixtype" function(s) to use H5Tget_native_type() internally. QAK - 2003/08/25 @@ -5035,12 +5033,12 @@ Platforms Tested AIX 5.1 (32 and 64-bit) xlc 6.0.0.2 xlf 8.1.0.3 - xlC 6.0.0.4 - xlc 5.0.2.5 - xlf 7.1.1.2 - xlC 5.0.2.5 - mpcc_r 5.0.2.5 - mpxlf_r 7.1.1.2 + xlC 6.0.0.4 + xlc 5.0.2.5 + xlf 7.1.1.2 + xlC 5.0.2.5 + mpcc_r 5.0.2.5 + mpxlf_r 7.1.1.2 poe 3.2.0.10 Cray T3E sn6606 2.0.6.08 Cray Standard C Version 6.6.0.2 Cray Fortran Version 3.6.0.2 @@ -5067,9 +5065,9 @@ Platforms Tested Linux 2.4.20-8 gcc 3.2.2 OSF1 V5.1 Compaq C V6.4-014 Compaq C V6.3-027 - Compaq Fortran V5.5-2602 - Compaq C++ V6.5-030 - MPI_64bit_R5 + Compaq Fortran V5.5-2602 + Compaq C++ V6.5-030 + MPI_64bit_R5 g++ version 3.0 for C++ SunOS 5.7(32 and 64 bit) WorkShop Compilers 5.0 98/12/15 C 5.0 (Solaris 2.7) WorkShop Compilers 5.0 98/12/15 C++ 5.0 @@ -5090,7 +5088,7 @@ Platforms Tested Windows 2000 (NT5.0) MSVC++ 6.0 DEC Visual Fortran 6.0 Intel C and F90 compilers version 7.1 - Code Warrior 8.0 + Code Warrior 8.0 Windows XP MSVC++.NET MAC OS X Darwin 6.8 gcc and g++ Apple Computer, Inc. GCC @@ -5272,6 +5270,8 @@ Known Problems * Information about building with PGI and Intel compilers is available in INSTALL file sections 5.7 and 5.8 + + %%%%1.6.0%%%% Release Information for hdf5-1.6.0 (03/July/03) 14. Release information for HDF5 version 1.6.0 @@ -5585,12 +5585,12 @@ Platforms Tested AIX 5.1 (32 and 64-bit) xlc 6.0.0.2 xlf 8.1.0.3 - xlC 6.0.0.4 - xlc 5.0.2.5 - xlf 7.1.1.2 - xlC 5.0.2.5 - mpcc_r 5.0.2.5 - mpxlf_r 7.1.1.2 + xlC 6.0.0.4 + xlc 5.0.2.5 + xlf 7.1.1.2 + xlC 5.0.2.5 + mpcc_r 5.0.2.5 + mpxlf_r 7.1.1.2 poe 3.2.0.10 Cray T3E sn6606 2.0.6.08 Cray Standard C Version 6.6.0.2 Cray Fortran Version 3.6.0.0.2 @@ -5619,9 +5619,9 @@ Platforms Tested MPIch 1.2.4 OSF1 V5.1 Compaq C V6.4-014 Compaq C V6.3-027 - Compaq Fortran V5.5-1877 - Compaq C++ V6.5-014 - MPI_64bit_R5 + Compaq Fortran V5.5-1877 + Compaq C++ V6.5-014 + MPI_64bit_R5 g++ version 3.0 for C++ SunOS 5.7 WorkShop Compilers 5.0 98/12/15 C 5.0 (Solaris 2.7) WorkShop Compilers 5.0 98/12/15 C++ 5.0 @@ -5645,7 +5645,7 @@ Platforms Tested Windows 2000 (NT5.0) MSVC++ 6.0 DEC Visual Fortran 6.0 Intel C and F90 compilers version 7.1 - Code Warrior 8.0 + Code Warrior 8.0 Windows XP MSVC++.NET MAC OS X Darwin 6.5 gcc and g++ Apple Computer, Inc. GCC @@ -5893,8 +5893,8 @@ New Features output format; function call and return event times can be logged; total time spent in each function can be logged. The following HDF5_DEBUG environment variable words affect tracing: - trace -- turn on/off basic tracing - ttimes -- turn on tracing and report event times and + trace -- turn on/off basic tracing + ttimes -- turn on tracing and report event times and time spent in each API function. ttop -- turn on tracing but display only top-level API calls. @@ -6369,22 +6369,22 @@ Bug Fixes since HDF5-1.4.3 Release Performance Improvements ======================== This release of the HDF5 library has been extensively tuned to improve -performance, especially to improve parallel I/O performance. + performance, especially to improve parallel I/O performance. Most of the specific information for particular performance improvements -is mentioned in the "New Features" and "Bug Fixes since HDF5-1.4.3" sections -of this document, but in general, the library should make fewer and larger -I/O requests when accessing a file. Additionally, improvements to the parallel -I/O portions of the library should have reduced the communications and barriers -used in various internal algorithms, improving the performance of the library. + is mentioned in the "New Features" and "Bug Fixes since HDF5-1.4.3" sections + of this document, but in general, the library should make fewer and larger + I/O requests when accessing a file. Additionally, improvements to the parallel + I/O portions of the library should have reduced the communications and barriers + used in various internal algorithms, improving the performance of the library. However, with the extensive changes to some portions of the library that -were required for these improvements, some errors or unanticipated results may -have been introduced also. Please report any problems encountered to our -support team at hdfhelp@ncsa.uiuc.edu. + were required for these improvements, some errors or unanticipated results may + have been introduced also. Please report any problems encountered to our + support team at hdfhelp@ncsa.uiuc.edu. Hopefully these improvements will benefit all HDF5 applications, but if -there are particular I/O patterns that appear to be slower than necessary, -please send e-mail to hdfhelp@ncsa.uiuc.edu with a sample program showing the -problem behavior; we will look into the issue to see if it is possible to -address it. + there are particular I/O patterns that appear to be slower than necessary, + please send e-mail to hdfhelp@ncsa.uiuc.edu with a sample program showing the + problem behavior; we will look into the issue to see if it is possible to + address it. Documentation @@ -6863,7 +6863,7 @@ Supported Configuration Features Summary Linux 2.4 y y (1) n n y y y y - Platform 1.2 static- Thread- SRB GASS STREAM- + Platform 1.2 static- Thread- SRB GASS STREAM- compatibility exec safe VFD Solaris2.7 n x y n n y Solaris2.8 64 n y n n n y @@ -6896,7 +6896,7 @@ Supported Configuration Features Summary in serial mode. (4) No HDF4-related tools. (5) Shared libraries are provided only for the C library. - (6) Exception of (5): DLL is available for C++ API on Windows + (6) Exception of (5): DLL is available for C++ API on Windows Known Problems @@ -7191,7 +7191,7 @@ Supported Configuration Features Summary Linux 2.4 y y (1) n n y y y y - Platform 1.2 static- Thread- SRB GASS STREAM- + Platform 1.2 static- Thread- SRB GASS STREAM- compatibility exec safe VFD Solaris2.6 y x n n n y Solaris2.7 y x y n n y @@ -8271,23 +8271,23 @@ applicable, are systems that HDF5 1.2.0 was tested on. IRIX 6.5 MIPSpro cc 7.30 IRIX64 6.5 (64 & n32) MIPSpro cc 7.3.1m - mpt.1.3 (SGI MPI 3.2.0.0) + mpt.1.3 (SGI MPI 3.2.0.0) Linux 2.2.10 egcs-2.91.66 configured with - --disable-hsizet + --disable-hsizet lbraries: glibc2 OSF1 V4.0 DEC-V5.2-040 SunOS 5.6 cc WorkShop Compilers 4.2 no optimization - gcc 2.8.1 + gcc 2.8.1 SunOS 5.7 cc WorkShop Compilers 5.0 gcc 2.8.1 TFLOPS 2.7.1 cicc (pgcc Rel 3.0-4i) - mpich-1.1.2 with local changes + mpich-1.1.2 with local changes Windows NT4.0 intel MSVC++ 5.0 and 6.0 @@ -8410,7 +8410,7 @@ C. Changes Since Version 1.0.1 a. Property List Interface: ------------------------ - H5Pset_xfer - set data transfer properties + H5Pset_xfer - set data transfer properties H5Pset_preserve - set dataset transfer property list status H5Pget_preserve - get dataset transfer property list status H5Pset_hyper_cache - indicates whether to cache hyperslab blocks during I/O @@ -8473,11 +8473,11 @@ C. Changes Since Version 1.0.1 g. Ragged Arrays (alpha) (names of those API functions were changed): ------------------------------------------------------------------ - H5RAcreate - create a new ragged array (old name was H5Rcreate) - H5RAopen - open an existing array (old name was H5Ropen) - H5RAclose - close a ragged array (old name was H5Rclose) - H5RAwrite - write to an array (old name was H5Rwrite) - H5RAread - read from an array (old name was H5Rread) + H5RAcreate - create a new ragged array (old name was H5Rcreate) + H5RAopen - open an existing array (old name was H5Ropen) + H5RAclose - close a ragged array (old name was H5Rclose) + H5RAwrite - write to an array (old name was H5Rwrite) + H5RAread - read from an array (old name was H5Rread) 9. Tools @@ -8698,7 +8698,7 @@ C. Changes Since Version 1.0.1 with the correct version of header files. - Parallel HDF5 Changes + Parallel HDF5 Changes * Parallel support for fixed dimension datasets with contiguous or chunked storages. Also, support unlimited dimension datasets which @@ -8724,68 +8724,68 @@ C. Changes Since Version 1.0.1 sizes. - LIST OF API FUNCTIONS + LIST OF API FUNCTIONS The following functions are implemented. Errors are returned if an attempt is made to use some feature which is not implemented and printing the error stack will show `not implemented yet'. Library - H5check - check that lib version matches header version - H5open - initialize library (happens automatically) - H5close - shut down the library (happens automatically) - H5dont_atexit - don't call H5close on exit - H5get_libversion - retrieve library version info - H5check_version - check for specific library version + H5check - check that lib version matches header version + H5open - initialize library (happens automatically) + H5close - shut down the library (happens automatically) + H5dont_atexit - don't call H5close on exit + H5get_libversion - retrieve library version info + H5check_version - check for specific library version Property Lists - H5Pclose - release template resources - H5Pcopy - copy a template - H5Pcreate - create a new template - H5Pget_chunk - get chunked storage properties - H5Pset_chunk - set chunked storage properties - H5Pget_class - get template class - H5Pget_istore_k - get chunked storage properties - H5Pset_istore_k - set chunked storage properties - H5Pget_layout - get raw data layout class - H5Pset_layout - set raw data layout class - H5Pget_sizes - get address and size sizes - H5Pset_sizes - set address and size sizes - H5Pget_sym_k - get symbol table storage properties - H5Pset_sym_k - set symbol table storage properties - H5Pget_userblock - get user-block size - H5Pset_userblock - set user-block size - H5Pget_version - get file version numbers - H5Pget_alignment - get data alignment properties - H5Pset_alignment - set data alignment properties + H5Pclose - release template resources + H5Pcopy - copy a template + H5Pcreate - create a new template + H5Pget_chunk - get chunked storage properties + H5Pset_chunk - set chunked storage properties + H5Pget_class - get template class + H5Pget_istore_k - get chunked storage properties + H5Pset_istore_k - set chunked storage properties + H5Pget_layout - get raw data layout class + H5Pset_layout - set raw data layout class + H5Pget_sizes - get address and size sizes + H5Pset_sizes - set address and size sizes + H5Pget_sym_k - get symbol table storage properties + H5Pset_sym_k - set symbol table storage properties + H5Pget_userblock - get user-block size + H5Pset_userblock - set user-block size + H5Pget_version - get file version numbers + H5Pget_alignment - get data alignment properties + H5Pset_alignment - set data alignment properties H5Pget_external_count- get count of external data files - H5Pget_external - get information about an external data file - H5Pset_external - add a new external data file to the list - H5Pget_driver - get low-level file driver class - H5Pget_stdio - get properties for stdio low-level driver - H5Pset_stdio - set properties for stdio low-level driver - H5Pget_sec2 - get properties for sec2 low-level driver - H5Pset_sec2 - set properties for sec2 low-level driver - H5Pget_core - get properties for core low-level driver - H5Pset_core - set properties for core low-level driver - H5Pget_split - get properties for split low-level driver - H5Pset_split - set properties for split low-level driver - H5P_get_family - get properties for family low-level driver - H5P_set_family - set properties for family low-level driver - H5Pget_cache - get meta- and raw-data caching properties - H5Pset_cache - set meta- and raw-data caching properties - H5Pget_buffer - get raw-data I/O pipe buffer properties - H5Pset_buffer - set raw-data I/O pipe buffer properties - H5Pget_preserve - get type conversion preservation properties - H5Pset_preserve - set type conversion preservation properties - H5Pget_nfilters - get number of raw data filters - H5Pget_filter - get raw data filter properties - H5Pset_filter - set raw data filter properties - H5Pset_deflate - set deflate compression filter properties - H5Pget_mpi - get MPI-IO properties - H5Pset_mpi - set MPI-IO properties - H5Pget_xfer - get data transfer properties - + H5Pset_xfer - set data transfer properties + H5Pget_external - get information about an external data file + H5Pset_external - add a new external data file to the list + H5Pget_driver - get low-level file driver class + H5Pget_stdio - get properties for stdio low-level driver + H5Pset_stdio - set properties for stdio low-level driver + H5Pget_sec2 - get properties for sec2 low-level driver + H5Pset_sec2 - set properties for sec2 low-level driver + H5Pget_core - get properties for core low-level driver + H5Pset_core - set properties for core low-level driver + H5Pget_split - get properties for split low-level driver + H5Pset_split - set properties for split low-level driver + H5P_get_family - get properties for family low-level driver + H5P_set_family - set properties for family low-level driver + H5Pget_cache - get meta- and raw-data caching properties + H5Pset_cache - set meta- and raw-data caching properties + H5Pget_buffer - get raw-data I/O pipe buffer properties + H5Pset_buffer - set raw-data I/O pipe buffer properties + H5Pget_preserve - get type conversion preservation properties + H5Pset_preserve - set type conversion preservation properties + H5Pget_nfilters - get number of raw data filters + H5Pget_filter - get raw data filter properties + H5Pset_filter - set raw data filter properties + H5Pset_deflate - set deflate compression filter properties + H5Pget_mpi - get MPI-IO properties + H5Pset_mpi - set MPI-IO properties + H5Pget_xfer - get data transfer properties + + H5Pset_xfer - set data transfer properties + H5Pset_preserve - set dataset transfer property list status + H5Pget_preserve - get dataset transfer property list status + H5Pset_hyper_cache - indicates whether to cache hyperslab blocks during I/O @@ -8801,89 +8801,89 @@ Property Lists datatype allocation Datasets - H5Dclose - release dataset resources - H5Dcreate - create a new dataset - H5Dget_space - get data space - H5Dget_type - get data type - H5Dget_create_plist - get dataset creation properties - H5Dopen - open an existing dataset - H5Dread - read raw data - H5Dwrite - write raw data - H5Dextend - extend a dataset + H5Dclose - release dataset resources + H5Dcreate - create a new dataset + H5Dget_space - get data space + H5Dget_type - get data type + H5Dget_create_plist - get dataset creation properties + H5Dopen - open an existing dataset + H5Dread - read raw data + H5Dwrite - write raw data + H5Dextend - extend a dataset + H5Diterate - iterate over all selected elements in a dataspace + H5Dget_storage_size - return the amount of storage required for a dataset + H5Dvlen_reclaim - reclaim VL datatype memory buffers Attributes - H5Acreate - create a new attribute - H5Aopen_name - open an attribute by name - H5Aopen_idx - open an attribute by number - H5Awrite - write values into an attribute - H5Aread - read values from an attribute - H5Aget_space - get attribute data space - H5Aget_type - get attribute data type - H5Aget_name - get attribute name - H5Anum_attrs - return the number of attributes for an object - H5Aiterate - iterate over an object's attributes - H5Adelete - delete an attribute - H5Aclose - close an attribute + H5Acreate - create a new attribute + H5Aopen_name - open an attribute by name + H5Aopen_idx - open an attribute by number + H5Awrite - write values into an attribute + H5Aread - read values from an attribute + H5Aget_space - get attribute data space + H5Aget_type - get attribute data type + H5Aget_name - get attribute name + H5Anum_attrs - return the number of attributes for an object + H5Aiterate - iterate over an object's attributes + H5Adelete - delete an attribute + H5Aclose - close an attribute Errors - H5Eclear - clear the error stack - H5Eprint - print an error stack - H5Eget_auto - get automatic error reporting settings - H5Eset_auto - set automatic error reporting - H5Ewalk - iterate over the error stack - H5Ewalk_cb - the default error stack iterator function - H5Eget_major - get the message for the major error number - H5Eget_minor - get the message for the minor error number + H5Eclear - clear the error stack + H5Eprint - print an error stack + H5Eget_auto - get automatic error reporting settings + H5Eset_auto - set automatic error reporting + H5Ewalk - iterate over the error stack + H5Ewalk_cb - the default error stack iterator function + H5Eget_major - get the message for the major error number + H5Eget_minor - get the message for the minor error number Files - H5Fclose - close a file and release resources - H5Fcreate - create a new file - H5Fget_create_plist - get file creation property list - H5Fget_access_plist - get file access property list - H5Fis_hdf5 - determine if a file is an hdf5 file - H5Fopen - open an existing file + H5Fclose - close a file and release resources + H5Fcreate - create a new file + H5Fget_create_plist - get file creation property list + H5Fget_access_plist - get file access property list + H5Fis_hdf5 - determine if a file is an hdf5 file + H5Fopen - open an existing file H5Freopen - reopen an HDF5 file H5Fmount - mount a file H5Funmount - unmount a file H5Fflush - flush all buffers associated with a file to disk Groups - H5Gclose - close a group and release resources - H5Gcreate - create a new group - H5Gopen - open an existing group - H5Giterate - iterate over the contents of a group - H5Gmove - change the name of some object - H5Glink - create a hard or soft link to an object - H5Gunlink - break the link between a name and an object - H5Gget_objinfo - get information about a group entry - H5Gget_linkval - get the value of a soft link - H5Gget_comment - get the comment string for an object - H5Gset_comment - set the comment string for an object + H5Gclose - close a group and release resources + H5Gcreate - create a new group + H5Gopen - open an existing group + H5Giterate - iterate over the contents of a group + H5Gmove - change the name of some object + H5Glink - create a hard or soft link to an object + H5Gunlink - break the link between a name and an object + H5Gget_objinfo - get information about a group entry + H5Gget_linkval - get the value of a soft link + H5Gget_comment - get the comment string for an object + H5Gset_comment - set the comment string for an object Dataspaces - H5Screate - create a new data space - H5Scopy - copy a data space - H5Sclose - release data space - H5Screate_simple - create a new simple data space - H5Sset_space - set simple data space extents - H5Sis_simple - determine if data space is simple - H5Sset_extent_simple - set simple data space dimensionality and size - H5Sget_simple_extent_npoints - get number of points in simple extent + H5Screate - create a new data space + H5Scopy - copy a data space + H5Sclose - release data space + H5Screate_simple - create a new simple data space + H5Sset_space - set simple data space extents + H5Sis_simple - determine if data space is simple + H5Sset_extent_simple - set simple data space dimensionality and size + H5Sget_simple_extent_npoints - get number of points in simple extent H5Sget_simple_extent_ndims - get simple data space dimensionality H5Sget_simple_extent_dims - get simple data space size H5Sget_simple_extent_type - get type of simple extent - H5Sset_extent_none - reset extent to be empty - H5Sextent_copy - copy the extent from one data space to another + H5Sset_extent_none - reset extent to be empty + H5Sextent_copy - copy the extent from one data space to another H5Sget_select_npoints - get number of points selected for I/O - H5Sselect_hyperslab - set hyperslab dataspace selection + H5Sselect_hyperslab - set hyperslab dataspace selection H5Sselect_elements - set element sequence dataspace selection - H5Sselect_all - select entire extent for I/O - H5Sselect_none - deselect all elements of extent - H5Soffset_simple - set selection offset - H5Sselect_valid - determine if selection is valid for extent + H5Sselect_all - select entire extent for I/O + H5Sselect_none - deselect all elements of extent + H5Soffset_simple - set selection offset + H5Sselect_valid - determine if selection is valid for extent + H5Sget_select_hyper_nblocks - get number of hyperslab blocks + H5Sget_select_hyper_blocklist - get the list of hyperslab blocks currently selected @@ -8895,53 +8895,53 @@ Dataspaces the current selection Datatypes - H5Tclose - release data type resources - H5Topen - open a named data type - H5Tcommit - name a data type - H5Tcommitted - determine if a type is named - H5Tcopy - copy a data type - H5Tcreate - create a new data type - H5Tequal - compare two data types - H5Tlock - lock type to prevent changes - H5Tfind - find a data type conversion function - H5Tconvert - convert data from one type to another - H5Tregister - register a conversion function - H5Tunregister - remove a conversion function - H5Tget_overflow - get function that handles overflow conv. cases - H5Tset_overflow - set function to handle overflow conversion cases - H5Tget_class - get data type class - H5Tget_cset - get character set - H5Tget_ebias - get exponent bias - H5Tget_fields - get floating point fields - H5Tget_inpad - get inter-field padding - H5Tget_member_dims - get struct member dimensions - H5Tget_member_name - get struct member name - H5Tget_member_offset - get struct member byte offset - H5Tget_member_type - get struct member type - H5Tget_nmembers - get number of struct members - H5Tget_norm - get floating point normalization - H5Tget_offset - get bit offset within type - H5Tget_order - get byte order - H5Tget_pad - get padding type - H5Tget_precision - get precision in bits - H5Tget_sign - get integer sign type - H5Tget_size - get size in bytes - H5Tget_strpad - get string padding - H5Tinsert - insert scalar struct member - H5Tinsert_array - insert array struct member - H5Tpack - pack struct members - H5Tset_cset - set character set - H5Tset_ebias - set exponent bias - H5Tset_fields - set floating point fields - H5Tset_inpad - set inter-field padding - H5Tset_norm - set floating point normalization - H5Tset_offset - set bit offset within type - H5Tset_order - set byte order - H5Tset_pad - set padding type - H5Tset_precision - set precision in bits - H5Tset_sign - set integer sign type - H5Tset_size - set size in bytes - H5Tset_strpad - set string padding + H5Tclose - release data type resources + H5Topen - open a named data type + H5Tcommit - name a data type + H5Tcommitted - determine if a type is named + H5Tcopy - copy a data type + H5Tcreate - create a new data type + H5Tequal - compare two data types + H5Tlock - lock type to prevent changes + H5Tfind - find a data type conversion function + H5Tconvert - convert data from one type to another + H5Tregister - register a conversion function + H5Tunregister - remove a conversion function + H5Tget_overflow - get function that handles overflow conv. cases + H5Tset_overflow - set function to handle overflow conversion cases + H5Tget_class - get data type class + H5Tget_cset - get character set + H5Tget_ebias - get exponent bias + H5Tget_fields - get floating point fields + H5Tget_inpad - get inter-field padding + H5Tget_member_dims - get struct member dimensions + H5Tget_member_name - get struct member name + H5Tget_member_offset - get struct member byte offset + H5Tget_member_type - get struct member type + H5Tget_nmembers - get number of struct members + H5Tget_norm - get floating point normalization + H5Tget_offset - get bit offset within type + H5Tget_order - get byte order + H5Tget_pad - get padding type + H5Tget_precision - get precision in bits + H5Tget_sign - get integer sign type + H5Tget_size - get size in bytes + H5Tget_strpad - get string padding + H5Tinsert - insert scalar struct member + H5Tinsert_array - insert array struct member + H5Tpack - pack struct members + H5Tset_cset - set character set + H5Tset_ebias - set exponent bias + H5Tset_fields - set floating point fields + H5Tset_inpad - set inter-field padding + H5Tset_norm - set floating point normalization + H5Tset_offset - set bit offset within type + H5Tset_order - set byte order + H5Tset_pad - set padding type + H5Tset_precision - set precision in bits + H5Tset_sign - set integer sign type + H5Tset_size - set size in bytes + H5Tset_strpad - set string padding + H5Tget_super - return the base datatype from which a datatype is derived + H5Tvlen_create - creates a new variable-length dataype @@ -8955,14 +8955,14 @@ Datatypes + H5Tset_tag - tags an opaque datatype + H5Tget_tag - gets the tag associated with an opaque datatype - - H5Tregister_hard - register specific type conversion function - - H5Tregister_soft - register general type conversion function + - H5Tregister_hard - register specific type conversion function + - H5Tregister_soft - register general type conversion function Filters - H5Tregister - register a conversion function + H5Tregister - register a conversion function Compression - H5Zregister - register new compression and uncompression + H5Zregister - register new compression and uncompression functions for a method specified by a method number Identifiers @@ -8976,10 +8976,10 @@ References object reference points to Ragged Arrays (alpha) - H5RAcreate - create a new ragged array - H5RAopen - open an existing array - H5RAclose - close a ragged array - H5RAwrite - write to an array - H5RAread - read from an array + H5RAcreate - create a new ragged array + H5RAopen - open an existing array + H5RAclose - close a ragged array + H5RAwrite - write to an array + H5RAread - read from an array diff --git a/release_docs/HISTORY-1_10.txt b/release_docs/HISTORY-1_10.txt index 2ddbe7a..127b821 100644 --- a/release_docs/HISTORY-1_10.txt +++ b/release_docs/HISTORY-1_10.txt @@ -3,6 +3,9 @@ HDF5 History This file contains development history of the HDF5 1.10 branch +09. Release Information for hdf5-1.10.7 +08. Release Information for hdf5-1.10.6 +07. Release Information for hdf5-1.10.5 06. Release Information for hdf5-1.10.4 05. Release Information for hdf5-1.10.3 04. Release Information for hdf5-1.10.2 @@ -12,6 +15,2172 @@ This file contains development history of the HDF5 1.10 branch [Search on the string '%%%%' for section breaks of each release.] +%%%%1.10.7%%%% + +HDF5 version 1.10.7 released on 2020-09-11 +================================================================================ + + +INTRODUCTION + +This document describes the differences between this release and the previous +HDF5 release. It contains information on the platforms tested and known +problems in this release. For more details check the HISTORY*.txt files in the +HDF5 source. + +Note that documentation in the links below will be updated at the time of each +final release. + +Links to HDF5 documentation can be found on The HDF5 web page: + + https://portal.hdfgroup.org/display/HDF5/HDF5 + +The official HDF5 releases can be obtained from: + + https://www.hdfgroup.org/downloads/hdf5/ + + HDF5 binaries provided are fully tested with ZLIB and the free + Open Source SZIP successor Libaec (with BSD license). + The official ZLIB and SZIP/Libaec pages are at: + + ZLIB: http://www.zlib.net/ + http://www.zlib.net/zlib_license.html + SZIP/Libaec: https://gitlab.dkrz.de/k202009/libaec + https://gitlab.dkrz.de/k202009/libaec/-/blob/master/Copyright.txt + +Changes from Release to Release and New Features in the HDF5-1.10.x release series +can be found at: + + https://portal.hdfgroup.org/display/HDF5/HDF5+Application+Developer%27s+Guide + +If you have any questions or comments, please send them to the HDF Help Desk: + + help@hdfgroup.org + + +CONTENTS + +- New Features +- Support for new platforms and languages +- Bug Fixes since HDF5-1.10.6 +- Supported Platforms +- Tested Configuration Features Summary +- More Tested Platforms +- Known Problems +- CMake vs. Autotools installations + + +New Features +============ + + Configuration: + ------------- + - Disable memory sanity checks in the Autotools in release branches + + The library can be configured to use internal memory sanity checking, + which replaces C API calls like malloc(3) and free(3) with our own calls + which add things like heap canaries. These canaries can cause problems + when external filter plugins reallocate canary-marked buffers. + + For this reason, the default will be to not use the memory allocation + sanity check feature in release branches (e.g., hdf5_1_10_7). + Debug builds in development branches (e.g., develop, hdf5_1_10) will + still use them by default. + + This change only affects Autotools debug builds. Non-debug autotools + builds and all CMake builds do not enable this feature by default. + + (DER - 2020/08/19) + + - Add file locking configure and CMake options + + HDF5 1.10.0 introduced a file locking scheme, primarily to help + enforce SWMR setup. Formerly, the only user-level control of the scheme + was via the HDF5_USE_FILE_LOCKING environment variable. + + This change introduces configure-time options that control whether + or not file locking will be used and whether or not the library + ignores errors when locking has been disabled on the file system + (useful on some HPC Lustre installations). + + In both the Autotools and CMake, the settings have the effect of changing + the default property list settings (see the H5Pset/get_file_locking() + entry, below). + + The yes/no/best-effort file locking configure setting has also been + added to the libhdf5.settings file. + + Autotools: + + An --enable-file-locking=(yes|no|best-effort) option has been added. + + yes: Use file locking. + no: Do not use file locking. + best-effort: Use file locking and ignore "disabled" errors. + + CMake: + + Two self-explanatory options have been added: + + HDF5_USE_FILE_LOCKING + HDF5_IGNORE_DISABLED_FILE_LOCKS + + Setting both of these to ON is the equivalent to the Autotools' + best-effort setting. + + NOTE: + The precedence order of the various file locking control mechanisms is: + + 1) HDF5_USE_FILE_LOCKING environment variable (highest) + + 2) H5Pset_file_locking() + + 3) configure/CMake options (which set the property list defaults) + + 4) library defaults (currently best-effort) + + (DER - 2020/07/30, HDFFV-11092) + + - CMake option to link the generated Fortran MOD files into the include + directory. + + The Fortran generation of MOD files by a Fortran compile can produce + different binary files between SHARED and STATIC compiles with different + compilers and/or different platforms. Note that it has been found that + different versions of Fortran compilers will produce incompatible MOD + files. Currently, CMake will locate these MOD files in subfolders of + the include directory and add that path to the Fortran library target + in the CMake config file, which can be used by the CMake find library + process. For other build systems using the binary from a CMake install, + a new CMake configuration can be used to copy the pre-chosen version + of the Fortran MOD files into the install include directory. + + The default will depend on the configuration of + BUILD_STATIC_LIBS and BUILD_SHARED_LIBS: + YES YES Default to SHARED + YES NO Default to STATIC + NO YES Default to SHARED + NO NO Default to SHARED + The defaults can be overriden by setting the config option + HDF5_INSTALL_MOD_FORTRAN to one of NO, SHARED, or STATIC + + (ADB - 2020/07/09, HDFFV-11116) + + - CMake option to use AEC (open source SZip) library instead of SZip + + The open source AEC library is a replacement library for SZip. In + order to use it for hdf5, the libaec CMake source was changed to add + "-fPIC" and exclude test files. A new option USE_LIBAEC is required + to compensate for the different files produced by AEC build. + + Autotools does not build the compression libraries within hdf5 builds, + but will use an installed libaec when configured as before with the + option --with-libsz=<path to libaec directory>. + + (ADB - 2020/04/22, OESS-65) + + - CMake ConfigureChecks.cmake file now uses CHECK_STRUCT_HAS_MEMBER + + Some handcrafted tests in HDFTests.c have been removed and the CMake + CHECK_STRUCT_HAS_MEMBER module has been used. + + (ADB - 2020/03/24, TRILAB-24) + + - Both build systems use same set of warnings flags + + GNU C, C++ and gfortran warnings flags were moved to files in a config + sub-folder named gnu-warnings. Flags that only are available for a specific + version of the compiler are in files named with that version. + Clang C warnings flags were moved to files in a config sub-folder + named clang-warnings. + Intel C, Fortran warnings flags were moved to files in a config sub-folder + named intel-warnings. + + There are flags in named "error-xxx" files with warnings that may + be promoted to errors. Some source files may still need fixes. + + There are also pairs of files named "developer-xxx" and "no-developer-xxx" + that are chosen by the CMake option:HDF5_ENABLE_DEV_WARNINGS or the + configure option:--enable-developer-warnings. + + In addition, CMake no longer applies these warnings for examples. + + (ADB - 2020/03/24, TRILAB-192) + + - Update CMake minimum version to 3.12 + + Updated CMake minimum version to 3.12 and added version checks + for Windows features. + + (ADB - 2020/02/05, TRILABS-142) + + - Fixed CMake include properties for Fortran libraries + + Corrected the library properties for Fortran to use the + correct path for the Fortran module files. + + (ADB - 2020/02/04, HDFFV-11012) + + - Added common warnings files for gnu and intel + + Added warnings files to use one common set of flags + during configure for both autotools and CMake build + systems. The initial implementation only affects a + general set of flags for gnu and intel compilers. + + (ADB - 2020/01/17) + + - Added new options to CMake for control of testing + + Added CMake options (default ON); + HDF5_TEST_SERIAL AND/OR HDF5_TEST_PARALLEL + combined with: + HDF5_TEST_TOOLS + HDF5_TEST_EXAMPLES + HDF5_TEST_SWMR + HDF5_TEST_FORTRAN + HDF5_TEST_CPP + HDF5_TEST_JAVA + + (ADB - 2020/01/15, HDFFV-11001) + + - Added Clang sanitizers to CMake for analyzer support if compiler is clang. + + Added CMake code and files to execute the Clang sanitizers if + HDF5_ENABLE_SANITIZERS is enabled and the USE_SANITIZER option + is set to one of the following: + Address + Memory + MemoryWithOrigins + Undefined + Thread + Leak + 'Address;Undefined' + + (ADB - 2019/12/12, TRILAB-135) + + + Library: + -------- + - Add metadata cache optimization to reduce skip list usage + + On file flush or close, the metadata cache attempts to write out + all dirty entries in increasing address order. To do this, it needs + an address sorted list of metadata entries. Further, since flushing + one metadata cache entry can dirty another, this list must support + efficient insertion and deletion. + + The metadata cache uses a skip list of all dirty entries for this + purpose. Before this release, this skip list was maintained at all + times. However, since profiling indicates that this imposes a + significant cost, we now construct and maintain the skip list only + when needed. Specifically, we enable the skip list and load it with + a list of all dirty entries in the metadata cache just before a flush, + and disable it after the flush. + + (JRM - 2020/08/17, HDFFV-11034) + + - Add BEST_EFFORT value to HDF5_USE_FILE_LOCKING environment variable + + This change adds a BEST_EFFORT to the TRUE/FALSE, 1/0 settings that + were previously accepted. This option turns on file locking but + ignores locking errors when the library detects that file locking + has been disabled on a file system (useful on some HPC Lustre + installations). + + The capitalization of BEST_EFFORT is mandatory. + + See the configure option discussion for HDFFV-11092 (above) for more + information on the file locking feature and how it's controlled. + + (DER - 2020/07/30, HDFFV-11092) + + + - Add H5Pset/get_file_locking() API calls + + This change adds new API calls which can be used to set or get the + file locking parameters. The single API call sets both the "use file + locking" flag and the "ignore disabled file locking" flag. + + When opening a file multiple times without closing, the file MUST be + opened with the same file locking settings. Opening a file with different + file locking settings will fail (this is similar to the behavior of + H5Pset_fclose_degree()). + + See the configure option discussion for HDFFV-11092 (above) for more + information on the file locking feature and how it's controlled. + + (DER - 2020/07/30, HDFFV-11092) + + - Add Mirror VFD + + Use TCP/IP sockets to perform write-only (W/O) file I/O on a remote + machine. Must be used in conjunction with the Splitter VFD. + + (JOS - 2020/03/13, TBD) + + - Add Splitter VFD + + Maintain separate R/W and W/O channels for "concurrent" file writes + to two files using a single HDF5 file handle. + + (JOS - 2020/03/13, TBD) + + - Fixed an assertion failure in the parallel library when collectively + filling chunks. As it is required that chunks be written in + monotonically non-decreasing order of offset in the file, this assertion + was being triggered when the list of chunk file space allocations being + passed to the collective chunk filling routine was not sorted according + to this particular requirement. + + The addition of a sort of the out of order chunks trades a bit of + performance for the elimination of this assertion and of any complaints + from MPI implementations about the file offsets used being out of order. + + (JTH - 2019/10/07) + + Fortran Library: + ---------------- + - Add wrappers for H5Pset/get_file_locking() API calls + + h5pget_file_locking_f() + h5pset_file_locking_f() + + See the configure option discussion for HDFFV-11092 (above) for more + information on the file locking feature and how it's controlled. + + (DER - 2020/07/30, HDFFV-11092) + + - Added new Fortran parameters: + + H5F_LIBVER_ERROR_F + H5F_LIBVER_NBOUNDS_F + H5F_LIBVER_V18_F + H5F_LIBVER_V110_F + + - Added new Fortran API: h5pget_libver_bounds_f + + (MSB - 2020/02/11, HDFFV-11018) + + C++ Library: + ------------ + - Add wrappers for H5Pset/get_file_locking() API calls + + FileAccPropList::setFileLocking() + FileAccPropList::getFileLocking() + + See the configure option discussion for HDFFV-11092 (above) for more + information on the file locking feature and how it's controlled. + + (DER - 2020/07/30, HDFFV-11092) + + Java Library: + ---------------- + - Add wrappers for H5Pset/get_file_locking() API calls + + H5Pset_file_locking() + H5Pget_use_file_locking() + H5Pget_ignore_disabled_file_locking() + + Unlike the C++ and Fortran wrappers, there are separate getters for the + two file locking settings, each of which returns a boolean value. + + See the configure option discussion for HDFFV-11092 (above) for more + information on the file locking feature and how it's controlled. + + (DER - 2020/07/30, HDFFV-11092) + + Tools: + ------ + - h5repack added options to control how external links are handled. + + Currently h5repack preserves external links and cannot copy and merge + data from the external files. Two options, merge and prune, were added to + control how to merge data from an external link into the resulting file. + --merge Follow external soft link recursively and merge data. + --prune Do not follow external soft links and remove link. + --merge --prune Follow external link, merge data and remove dangling link. + + (ADB - 2020/08/05, HDFFV-9984) + + High-Level APIs: + --------------- + - None + + C Packet Table API + ------------------ + - None + + Internal header file + -------------------- + - None + + Documentation + ------------- + - None + + +Support for new platforms, languages and compilers. +======================================= + - None + + +Bug Fixes since HDF5-1.10.6 release +================================== + + Library + ------- + - Fix bug and simplify collective metadata write operation when some ranks + have no entries to contribute. This fixes parallel regression test + failures with IBM SpectrumScale MPI on the Summit system at ORNL. + + (QAK - 2020/09/02) + + - Avoid setting up complex MPI types with 0-length vectors, which some + MPI implementations don't handle well. (In particular, IBM + SpectrumScale MPI on the Summit system at ORNL) + + (QAK - 2020/08/21) + + - Fixed use-of-uninitialized-value error + + Appropriate initialization of local structs was added to remove the + use-of-uninitialized-value errors reported by MemorySanitizer. + + (BMR - 2020/8/13, HDFFV-11101) + + - Creation of dataset with optional filter + + When the combination of type, space, etc doesn't work for filter + and the filter is optional, it was supposed to be skipped but it was + not skipped and the creation failed. + + A fix is applied to allow the creation of a dataset in such + situation, as specified in the user documentation. + + (BMR - 2020/8/13, HDFFV-10933) + + - Explicitly declared dlopen to use RTLD_LOCAL + + dlopen documentation states that if neither RTLD_GLOBAL nor + RTLD_LOCAL are specified, then the default behavior is unspecified. + The default on linux is usually RTLD_LOCAL while macos will default + to RTLD_GLOBAL. + + (ADB - 2020/08/12, HDFFV-11127) + + - Fixed issues CVE-2018-13870 and CVE-2018-13869 + + When a buffer overflow occurred because a name length was corrupted + and became very large, h5dump crashed on memory access violation. + + A check for reading past the end of the buffer was added to multiple + locations to prevent the crashes and h5dump now simply fails with an + error message when this error condition occurs. + + (BMR - 2020/7/31, HDFFV-11120 and HDFFV-11121) + + - H5Sset_extent_none() sets the dataspace class to H5S_NO_CLASS which + causes asserts/errors when passed to other dataspace API calls. + + H5S_NO_CLASS is an internal class value that should not have been + exposed via a public API call. + + In debug builds of the library, this can cause asserts to trip. In + non-debug builds, it will produce normal library errors. + + The new library behavior is for H5Sset_extent_none() to convert + the dataspace into one of type H5S_NULL, which is better handled + by the library and easier for developers to reason about. + + (DER - 2020/07/27, HDFFV-11027) + + - Fixed the segmentation fault when reading attributes with multiple threads + + It was reported that the reading of attributes with variable length string + datatype will crash with segmentation fault particularly when the number + of threads is high (>16 threads). The problem was due to the file pointer + that was set in the variable length string datatype for the attribute. + That file pointer was already closed when the attribute was accessed. + + The problem was fixed by setting the file pointer to the current opened + file pointer when the attribute was accessed. Similar patch up was done + before when reading dataset with variable length string datatype. + + (VC - 2020/07/13, HDFFV-11080) + + - Fixed issue CVE-2018-17438 + + A division by zero was discovered in H5D__select_io() of H5Dselect.c. + https://security-tracker.debian.org/tracker/CVE-2018-17438 + + A check was added to protect against division by zero. When such + situation occurs again, the normal HDF5 error handling will be invoked, + instead of segmentation fault. + + (BMR, DER - 2020/07/09, HDFFV-10587) + + - Fixed CVE-2018-17435 + + The tool h52gif produced a segfault when the size of an attribute message + was corrupted and caused a buffer overflow. + + The problem was fixed by verifying the attribute message's size against the + buffer size before accessing the buffer. h52gif was also fixed to display + the failure instead of silently exiting after the segfault was eliminated. + + (BMR - 2020/6/19, HDFFV-10591) + + - Don't allocate an empty (0-dimensioned) chunked dataset's chunk + index, until the dataset's dimensions are increased. + + (QAK - 2020/05/07) + + Configuration + ------------- + - Stopped addition of szip header and include directory path for + incompatible libsz + + szlib.h is the same for both 32-bit and 64-bit szip, and the header file + and its path were added to the HDF5 binary even though the configure + check of a function in libsz later failed and szip compression was not + enabled. The header file and include path are now added only when the + libsz function passes the configure check. + + (LRK - 2020/08/17, HDFFV-10830) + + - Added -fsanitize=address autotools configure option for Clang compiler + + Clang sanitizer options were also added for Clang compilers with CMake. + + (LRK, 2020/08/05, HDFFV-10836) + + - Updated testh5cc.sh.in for functions versioned in HDF5 1.10. + + testh5cc.sh previously tested that the correct version of a function + versioned in HDF5 1.6 or 1.8 was compiled when one of + H5_NO_DEPRECATED_SYMBOLS or H5_USE_16_API_DEFAULT were defined. This + test was extended for additional testing with H5_USE_18_API_DEFAULT. + + (LRK, 2020/06/22, HDFFV-11000) + + - Fixed CMake include properties for Fortran libraries + + Corrected the library properties for Fortran to use the + correct path for the Fortran module files. + + (ADB - 2020/02/04, HDFFV-11012) + + Performance + ------------- + - None + + Java Library: + ---------------- + - None + + Fortran + -------- + - Corrected INTERFACE INTENT(IN) to INTENT(OUT) for buf_size in h5fget_file_image_f. + + (MSB - 2020/2/18, HDFFV-11029) + + - Fixed configure issue when building HDF5 with NAG Fortran 7.0. + + HDF5 now accounts for the addition of half-precision floating-point + in NAG 7.0 with a KIND=16. + + (MSB - 2020/02/28, HDFFV-11033) + + Tools + ----- + - The tools library was updated by standardizing the error stack process. + + General sequence is: + h5tools_setprogname(PROGRAMNAME); + h5tools_setstatus(EXIT_SUCCESS); + h5tools_init(); + ... process the command-line (check for error-stack enable) ... + h5tools_error_report(); + ... (do work) ... + h5diff_exit(ret); + + (ADB - 2020/07/20, HDFFV-11066) + + - h5diff fixed a command line parsing error. + + h5diff would ignore the argument to -d (delta) if it is smaller than DBL_EPSILON. + The macro H5_DBL_ABS_EQUAL was removed and a direct value comparision was used. + + (ADB - 2020/07/20, HDFFV-10897) + + - h5diff added a command line option to ignore attributes. + + h5diff would ignore all objects with a supplied path if the exclude-path argument is used. + Adding the exclude-attribute argument will only eclude attributes, with the supplied path, + from comparision. + + (ADB - 2020/07/20, HDFFV-5935) + + - h5diff added another level to the verbose argument to print filenames. + + Added verbose level 3 that is level 2 plus the filenames. The levels are: + 0 : Identical to '-v' or '--verbose' + 1 : All level 0 information plus one-line attribute status summary + 2 : All level 1 information plus extended attribute status report + 3 : All level 2 information plus file names + + (ADB - 2020/07/20, HDFFV-10005) + + - h5repack was fixed to repack the reference attributes properly. + The code line that checks if the update of reference inside a compound + datatype is misplaced outside the code block loop that carries out the + check. In consequence, the next attribute that is not the reference + type was repacked again as the reference type and caused the failure of + repacking. The fix is to move the corresponding code line to the correct + code block. + + (KY -2020/02/10, HDFFV-11014) + + High-Level APIs: + ------ + - The H5DSis_scale function was updated to return "not a dimension scale" (0) + instead of failing (-1), when CLASS or DIMENSION_SCALE attributes are + not written according to Dimension Scales Specification. + + (EIP - 2020/08/12, HDFFV-10436) + + Fortran High-Level APIs: + ------ + - None + + Documentation + ------------- + - None + + F90 APIs + -------- + - None + + C++ APIs + -------- + - None + + Testing + ------- + - Stopped java/test/junit.sh.in installing libs for testing under ${prefix} + + Lib files needed are now copied to a subdirectory in the java/test + directory, and on Macs the loader path for libhdf5.xxxs.so is changed + in the temporary copy of libhdf5_java.dylib. + + (LRK, 2020/7/2, HDFFV-11063) + + +Supported Platforms +=================== + + Linux 3.10.0-1127.10.1.el7 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) + #1 SMP ppc64 GNU/Linux g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) + (echidna) GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) + + Linux 2.6.32-754.31.1.el6 IBM XL C/C++ V13.1 + #1 SMP ppc64 GNU/Linux IBM XL Fortran V15.1 + (ostrich) + + Linux 3.10.0-327.18.2.el7 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (jelly/kituo/moohan) Version 4.8.5 20150623 (Red Hat 4.8.5-4) + Version 4.9.3, Version 5.3.0, Version 6.3.0, + Version 7.2.0, Version 8.3.0, Version 9.1.0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.0.098 Build 20160721 + MPICH 3.3 compiled with GCC 7.2.0 + OpenMPI 4.0.0 compiled with GCC 7.2.0 + + SunOS 5.11 11.4.5.12.5.0 Sun C 5.15 SunOS_sparc 2017/05/30 + 32- and 64-bit Studio 12.6 Fortran 95 8.8 SunOS_sparc 2017/05/30 + (hedgehog) Sun C++ 5.15 SunOS_sparc 2017/05/30 + + Windows 7 x64 Visual Studio 2015 w/ Intel C, Fortran 2018 (cmake) + + Windows 10 x64 Visual Studio 2015 w/ Intel Fortran 18 (cmake) + Visual Studio 2017 w/ Intel Fortran 19 (cmake) + Visual Studio 2019 w/ Intel Fortran 19 (cmake) + Visual Studio 2019 w/ MSMPI 10.1 (cmake) + + macOS Mojave 10.14.6 Apple LLVM version 10.0.1 (clang-1001.0.46.4) + 64-bit gfortran GNU Fortran (GCC) 6.3.0 + (swallow) Intel icc/icpc/ifort version 19.0.4.233 20190416 + +Tested Configuration Features Summary +===================================== + + In the tables below + y = tested + n = not tested in this release + C = Cluster + W = Workstation + x = not working in this release + dna = does not apply + ( ) = footnote appears below second table + <blank> = testing incomplete on this feature or platform + +Platform C F90/ F90 C++ zlib SZIP + parallel F2003 parallel +Solaris2.11 32-bit n y/y n y y y +Solaris2.11 64-bit n y/n n y y y +Windows 7 x64 y y/y y y y y +Windows 10 y y/y n y y y +Windows 10 x64 y y/y n y y y +MacOS Sierra 10.12.6 64-bit n y/y n y y y +MacOS High Sierra 10.13.6 64-bit n y/y n y y y +MacOS Mojave 10.14.6 64-bit n y/y n y y y +CentOS 7.2 Linux 3.10.0 x86_64 PGI n y/y n y y y +CentOS 7.2 Linux 3.10.0 x86_64 GNU y y/y y y y y +CentOS 7.2 Linux 3.10.0 x86_64 Intel n y/y n y y y +Linux 2.6.32-754.31.1.el6.ppc64 XL n y/y n y y y + + +Platform Shared Shared Shared Thread- + C libs F90 libs C++ libs safe +Solaris2.11 32-bit y y y y +Solaris2.11 64-bit y y y y +Windows 7 x64 y y y y +Windows 10 y y y y +Windows 10 x64 y y y y +MacOS Sierra 10.12.6 64-bit y n y y +MacOS High Sierra 10.13.6 64-bit y n y y +MacOS Mojave 10.14.6 64-bit y n y y +CentOS 7.2 Linux 3.10.0 x86_64 PGI y y y n +CentOS 7.2 Linux 3.10.0 x86_64 GNU y y y y +CentOS 7.2 Linux 3.10.0 x86_64 Intel y y y n +Linux 2.6.32-754.31.1.el6.ppc64 XL y y y n + +Compiler versions for each platform are listed in the preceding +"Supported Platforms" table. + + +More Tested Platforms +===================== +The following platforms are not supported but have been tested for this release. + + Linux 2.6.32-573.22.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (platypus) Version 4.4.7 20120313 + Version 4.9.3, 5.3.0, 6.2.0 + PGI C, Fortran, C++ for 64-bit target on + x86-64; + Version 19.10-0 + MPICH 3.1.4 compiled with GCC 4.9.3 + + Linux 2.6.32-754.31.1.el6 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) + #1 SMP ppc64 GNU/Linux g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) + (ostrich) GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) + + Linux 3.10.0-327.18.2.el7 GNU C (gcc) and C++ (g++) compilers + #1 SMP x86_64 GNU/Linux Version 4.8.5 20150623 (Red Hat 4.8.5-4) + (jelly) with NAG Fortran Compiler Release 6.1(Tozai) + GCC Version 7.1.0 + OpenMPI 2.1.6-GCC-7.2.0-2.29, + 3.1.3-GCC-7.2.0-2.29 + Intel(R) C (icc) and C++ (icpc) compilers + Version 17.0.0.098 Build 20160721 + with NAG Fortran Compiler Release 6.1(Tozai) + + Linux 3.10.0-327.10.1.el7 MPICH 3.1.4 compiled with GCC 4.9.3 + #1 SMP x86_64 GNU/Linux + (moohan) + + Linux-3.10.0-1127.0.0.1chaos openmpi-4.0.0 + #1 SMP x86_64 GNU/Linux clang/3.9.0, 8.0.1 + (quartz) gcc/7.3.0, 8.1.0 + intel/16.0.4 + + Linux-4.14.0-115.10.1.1 spectrum-mpi/rolling-release + #1 SMP ppc64le GNU/Linux clang/coral-2018.08.08 + (lassen) gcc/7.3.1 + xl/2019.02.07 + + Linux-4.12.14-150.52-default cray-mpich/7.7.10 + #1 SMP x86_64 GNU/Linux gcc/7.3.0, 8.2.0 + (cori) intel/19.0.3 + + Linux-4.4.180-94.107-default cray-mpich/7.7.6 + # 1SMP x86_64 GNU/Linux gcc/7.2.0, 8.2.0 + (mutrino) intel/17.0.4, 18.0.2, 19.0.4 + + Fedora 32 5.7.15-200.fc32.x86_64 Clang version 10.0.0 (Fedora 10.0.0-2.fc32) + #1 SMP x86_64 GNU/Linux GNU gcc (GCC) 10.2.1 20200723 (Red Hat 10.2.1-1) + GNU Fortran (GCC) 10.2.1 20200723 (Red Hat 10.2.1) + (cmake and autotools) + + Mac OS X El Capitan 10.11.6 Apple clang version 7.3.0 from Xcode 7.3 + 64-bit gfortran GNU Fortran (GCC) 5.2.0 + (osx1011test) Intel icc/icpc/ifort version 16.0.2 + + macOS Sierra 10.12.6 Apple LLVM version 9.0.0 (clang-900.39.2) + 64-bit gfortran GNU Fortran (GCC) 7.4.0 + (kite) Intel icc/icpc/ifort version 17.0.2 + + macOS High Sierra 10.13.6 Apple LLVM version 10.0.0 (clang-1000.10.44.4) + 64-bit gfortran GNU Fortran (GCC) 6.3.0 + (bear) Intel icc/icpc/ifort version 19.0.4.233 20190416 + + SunOS 5.11 11.3 Sun C 5.15 SunOS_sparc + 32- and 64-bit Sun Fortran 95 8.8 SunOS_sparc + (emu) Sun C++ 5.15 SunOS_sparc + + +Known Problems +============== + CMake files do not behave correctly with paths containing spaces. + Do not use spaces in paths because the required escaping for handling spaces + results in very complex and fragile build files. + ADB - 2019/05/07 + + At present, metadata cache images may not be generated by parallel + applications. Parallel applications can read files with metadata cache + images, but since this is a collective operation, a deadlock is possible + if one or more processes do not participate. + + Two tests fail attempting collective writes with OpenMPI 3.0.0/GCC-7.2.0-2.29: + testphdf5 (ecdsetw, selnone, cchunk1, cchunk3, cchunk4, and actualio) + t_shapesame (sscontig2) + + CPP ptable test fails on both VS2017 and VS2019 with Intel compiler, JIRA + issue: HDFFV-10628. This test will pass with VS2015 with Intel compiler. + + Known problems in previous releases can be found in the HISTORY*.txt files + in the HDF5 source. Please report any new problems found to + help@hdfgroup.org. + + +CMake vs. Autotools installations +================================= +While both build systems produce similar results, there are differences. +Each system produces the same set of folders on linux (only CMake works +on standard Windows); bin, include, lib and share. Autotools places the +COPYING and RELEASE.txt file in the root folder, CMake places them in +the share folder. + +The bin folder contains the tools and the build scripts. Additionally, CMake +creates dynamic versions of the tools with the suffix "-shared". Autotools +installs one set of tools depending on the "--enable-shared" configuration +option. + build scripts + ------------- + Autotools: h5c++, h5cc, h5fc + CMake: h5c++, h5cc, h5hlc++, h5hlcc + +The include folder holds the header files and the fortran mod files. CMake +the share folder. + +The bin folder contains the tools and the build scripts. Additionally, CMake +places the fortran mod files into separate shared and static subfolders, +while Autotools places one set of mod files into the include folder. Because +CMake produces a tools library, the header files for tools will appear in +the include folder. + +The lib folder contains the library files, and CMake adds the pkgconfig +subfolder with the hdf5*.pc files used by the bin/build scripts created by +the CMake build. CMake separates the C interface code from the fortran code by +creating C-stub libraries for each Fortran library. In addition, only CMake +installs the tools library. The names of the szip libraries are different +between the build systems. + +The share folder will have the most differences because CMake builds include +a number of CMake specific files for support of CMake's find_package and support +for the HDF5 Examples CMake project. + + + +%%%%1.10.6%%%% + +HDF5 version 1.10.6 released on 2019-12-23 +================================================================================ + + +INTRODUCTION + +This document describes the differences between this release and the previous +HDF5 release. It contains information on the platforms tested and known +problems in this release. For more details check the HISTORY*.txt files in the +HDF5 source. + +Note that documentation in the links below will be updated at the time of each +final release. + +Links to HDF5 documentation can be found on The HDF5 web page: + + https://portal.hdfgroup.org/display/HDF5/HDF5 + +The official HDF5 releases can be obtained from: + + https://www.hdfgroup.org/downloads/hdf5/ + +Changes from Release to Release and New Features in the HDF5-1.10.x release series +can be found at: + + https://portal.hdfgroup.org/display/HDF5/HDF5+Application+Developer%27s+Guide + +If you have any questions or comments, please send them to the HDF Help Desk: + + help@hdfgroup.org + + +CONTENTS + +- New Features +- Support for new platforms and languages +- Bug Fixes since HDF5-1.10.5 +- Supported Platforms +- Tested Configuration Features Summary +- More Tested Platforms +- Known Problems +- CMake vs. Autotools installations + + +New Features +============ + + Configuration: + ------------- + - Update CMake for VS2019 support + + CMake added support for VS2019 in version 3.15. Changes to the CMake + generator setting required changes to scripts. Also updated version + references in CMake files as necessary. + + (ADB - 2019/11/18, HDFFV-10962) + + - Update CMake options to match new autotools options + + Add configure options (autotools - CMake): + enable-asserts HDF5_ENABLE_ASSERTS + enable-symbols HDF5_ENABLE_SYMBOLS + enable-profiling HDF5_ENABLE_PROFILING + enable-optimization HDF5_ENABLE_OPTIMIZATION + In addition NDEBUG is no longer forced defined and relies on the CMake + process. + + (ADB - 2019/10/07, HDFFV-100901, HDFFV-10637, TRILAB-97) + + - Update CMake tests to use FIXTURES + + CMake test fixtures allow setup/cleanup tests and other dependency + requirements as properties for tests. This is more flexible for + modern CMake code. + + (ADB - 2019/07/23, HDFFV-10529) + + - Windows PDB files are always installed + + There are build configuration or flag settings for Windows that may not + generate PDB files. If those files are not generated then the install + utility will fail because those PDB files are not found. An optional + variable, DISABLE_PDB_FILES, was added to not install PDB files. + + (ADB - 2019/07/17, HDFFV-10424) + + - Add mingw CMake support with a toolchain file + + There have been a number of mingw issues that have been linked under + HDFFV-10845. It has been decided to implement the CMake cross-compiling + technique of toolchain files. We will use a linux platform with the mingw + compiler stack for testing. Only the C language is fully supported, and + the error tests are skipped. The C++ language works for static but shared + builds have a shared library issue with the mingw Standard Exception Handling + library, which is not available on Windows. Fortran has a common cross-compile + problem with the fortran configure tests. + + (ADB - 2019/07/12, HDFFV-10845, HDFFV-10595) + + - Windows PDB files are installed incorrectly + + For static builds, the PDB files for windows should be installed next + to the static libraries in the lib folder. Also the debug versions of + libraries and PDB files are now correctly built using the default + CMAKE_DEBUG_POSTFIX setting. + + (ADB - 2019/07/09, HDFFV-10581) + + - Add option to build only shared libs + + A request was made to prevent building static libraries and only build + shared. A new option was added to CMake, ONLY_SHARED_LIBS, which will + skip building static libraries. Certain utility functions will build with + static libs but are not published. Tests are adjusted to use the correct + libraries depending on SHARED/STATIC settings. + + (ADB - 2019/06/12, HDFFV-10805) + + - Add options to enable or disable building tools and tests + + Configure options --enable-tests and --enable-tools were added for + autotools configure. These options are enabled by default, and can be + disabled with either --disable-tests (or tools) or --enable-tests=no + (or --enable-tools=no). Build time is reduced ~20% when tools are + disabled, 35% when tests are disabled, 45% when both are disabled. + Re-enabling them after the initial build requires running configure + again with the option(s) enabled. + + (LRK - 2019/06/12, HDFFV-9976) + + - Change tools tests to search the error stack + + There are some use cases which can cause the error stack of tools to be + different then the expected output. These tests now use grepTest.cmake; + this was changed to allow the error file to be searched for an expected string. + + (ADB - 2019/04/15, HDFFV-10741) + + + Library: + -------- + - Added S3 and HDFS Virtual File Drivers (VFDs) to HDF5 + + These new VFDs have been introduced in HDF5-1.10.6. Instructions to + enable them when configuring HDF5 on Linux and Mac may be found at + https://portal.hdfgroup.org/display/HDF5/Virtual+File+Drivers+-+S3+and+HDFS. + + Installing on Windows requires CMake 3.13 and the following additional setup. + Install openssl library (with dev files); + from "Shining Light Productions". msi package preferred. + + PATH should have been updated with the installation dir. + set ENV variable OPENSSL_ROOT_DIR to the installation dir. + set ENV variable OPENSSL_CONF to the cfg file, likely %OPENSSL_ROOT_DIR%\bin\openssl.cfg + Install libcurl library (with dev files); + download the latest released version using git: https://github.com/curl/curl.git + + Open a Visual Studio Command prompt + change to the libcurl root folder + run the "buildconf.bat" batch file + change to the winbuild directory + nmake /f Makefile.vc mode=dll MACHINE=x64 + copy libcurl-vc-x64-release-dll-ipv6-sspi-winssl dir to C:\curl (installation dir) + set ENV variable CURL_ROOT to C:\curl (installation dir) + update PATH ENV variable to %CURL_ROOT%\bin (installation bin dir). + the aws credentials file should be in %USERPROFILE%\.aws folder + set the ENV variable "HDF5_ROS3_TEST_BUCKET_URL=https://s3.us-east-2.amazonaws.com/hdf5ros3" + + (ADB - 2019/09/12, HDFFV-10854) + + C++ Library: + ------------ + - Added new wrappers for H5Pset/get_create_intermediate_group() + LinkCreatPropList::setCreateIntermediateGroup() + LinkCreatPropList::getCreateIntermediateGroup() + + (BMR - 2019/04/22, HDFFV-10622) + + + Java Library: + ---------------- + - Fixed a failure in JUnit-TestH5P on 32-bit architectures + + (JTH - 2019/04/30) + + +Support for new platforms, languages and compilers. +======================================= + - CMake added support for VS2019 in version 3.15. Updated scripts. + + - macOS 10.13.6 Darwin 17.7.0 with Apple clang LLVM version 10.0.0 + + - macOS 10.14.6 Darwin 18.7.0 with Apple clang LLVM version 10.0.1 + + +Bug Fixes since HDF5-1.10.5 release +================================== + + Library + ------- + - Improved performance when creating a large number of small datasets by + retrieving default property values from the API context instead of doing + skip list searches. More work is required to achieve parity with HDF5 1.8. + + (CJH - 2019/12/10, HDFFV-10658) + + - Fixed user-created data access properties not existing in the property list + returned by H5Dget_access_plist. Thanks to Steven Varga for submitting a + reproducer and a patch. + + (CJH - 2019/12/9, HDFFV-10934) + + - Inappropriate linking with deprecated MPI C++ libraries + + HDF5 does not define *_SKIP_MPICXX in the public headers, so applications + can inadvertently wind up linking to the deprecated MPI C++ wrappers. + + MPICH_SKIP_MPICXX and OMPI_SKIP_MPICXX have both been defined in H5public.h + so this should no longer be an issue. HDF5 makes no use of the deprecated + MPI C++ wrappers. + + (DER - 2019/09/17, HDFFV-10893) + + - fcntl(2)-based file locking incorrectly passed the lock argument struct + instead of a pointer to the struct, causing errors on systems where + flock(2) is not available. + + File locking is used when files are opened to enforce SWMR semantics. A + lock operation takes place on all file opens unless the + HDF5_USE_FILE_LOCKING environment variable is set to the string "FALSE". + flock(2) is preferentially used, with fcntl(2) locks as a backup if + flock(2) is unavailable on a system (if neither is available, the lock + operation fails). On these systems, the file lock will often fail, which + causes HDF5 to not open the file and report an error. + + This bug only affects POSIX systems. Win32 builds on Windows use a no-op + locking call which always succeeds. Systems which exhibit this bug will + have H5_HAVE_FCNTL defined but not H5_HAVE_FLOCK in the configure output. + + This bug affects HDF5 1.10.0 through 1.10.5. + + fcntl(2)-based file locking now correctly passes the struct pointer. + + (DER - 2019/08/27, HDFFV-10892) + + - Fixed a bug caused by a bad tag value when condensing object header + messages + + There was an assertion failure when moving messages from running a + user test program with library release HDF5 1.10.4. It was because + the tag value (object header's address) was not set up when entering + the library routine H5O__chunk_update_idx(), which eventually + verifies the metadata tag value when protecting the object header. + + The problem was fixed by replacing FUNC_ENTER_PACKAGE in H5O__chunk_update_idx() + with FUNC_ENTER_PACKAGE_TAG(oh->cache_info.addr) to set up the metadata tag. + + (VC - 2019/08/23, HDFFV-10873) + + - Fixed the test failure from test_metadata_read_retry_info() in + test/swmr.c + + The test failure is due to an incorrect number of bins returned for + retry info (info.nbins). The # of bins expected for 101 read attempts + is 3 instead of 2. The routine H5F_set_retries() in src/H5Fint.c + calculates the # of bins by first obtaining the log10 value for + (read attempts - 1). For PGI/19, the log10 value for 100 read attempts + is 1.9999999999999998 instead of 2.00000. When casting the log10 value + to unsigned later on, the decimal part is chopped off causing the test + failure. + + This was fixed by obtaining the rounded integer value (HDceil) for the + log10 value of read attempts first before casting the result to unsigned. + + (VC - 2019/8/14, HDFFV-10813) + + - Fixed an issue when creating a file with non-default file space info + together with library high bound setting to H5F_LIBVER_V18. + + When setting non-default file space info in fcpl via + H5Pset_file_space_strategy() and then creating a file with both high and + low library bounds set to H5F_LIBVER_V18 in fapl, the library succeeds in + creating the file. File creation should fail because the feature of + setting non-default file space info does not exist in library release 1.8 + or earlier. + + This was fixed by setting and checking the proper version in the file + space info message based on the library low and high bounds when creating + and opening the HDF5 file. + + (VC - 2019/6/25, HDFFV-10808) + + - Fixed an issue where copying a version 1.8 dataset between files using + H5Ocopy fails due to an incompatible fill version + + When using the HDF5 1.10.x H5Ocopy() API call to copy a version 1.8 + dataset to a file created with both high and low library bounds set to + H5F_LIBVER_V18, the H5Ocopy() call will fail with the error stack indicating + that the fill value version is out of bounds. + + This was fixed by changing the fill value message version to H5O_FILL_VERSION_3 + (from H5O_FILL_VERSION_2) for H5F_LIBVER_V18. + + (VC - 2019/6/14, HDFFV-10800) + + - Fixed a bug that would cause an error or cause fill values to be + incorrectly read from a chunked dataset using the "single chunk" index if + the data was held in cache and there was no data on disk. + + (NAF - 2019/03/06) + + - Fixed a bug that could cause an error or cause fill values to be + incorrectly read from a dataset that was written to using H5Dwrite_chunk + if the dataset was not closed after writing. + + (NAF - 2019/03/06, HDFFV-10716) + + - Fixed memory leak in scale offset filter + + In a special case where the MinBits is the same as the number of bits in + the datatype's precision, the filter's data buffer was not freed, causing + the memory usage to grow. In general the buffer was freed correctly. The + Minbits are the minimal number of bits to store the data values. Please + see the reference manual for H5Pset_scaleoffset for the details. + + (RL - 2019/3/4, HDFFV-10705) + + + Configuration + ------------- + - Correct option for default API version + + CMake options for default API version are not mutually exclusive. + Change the multiple BOOL options to a single STRING option with the + strings; v16, v18, v110. + + (ADB - 2019/08/12, HDFFV-10879) + + Tools + ----- + - h5repack was fixed to repack datasets with external storage + to other types of storage. + + New test added to repack files and verify the correct data using h5diff. + + (JS - 2019/09/25, HDFFV-10408) + (ADB - 2019/10/02, HDFFV-10918) + + +Supported Platforms +=================== + + Linux 2.6.32-696.20.1.el6.ppc64 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23) + #1 SMP ppc64 GNU/Linux g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23) + (ostrich) GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23) + IBM XL C/C++ V13.1 + IBM XL Fortran V15.1 + + Linux 3.10.0-327.10.1.el7 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (jelly/kituo/moohan) Version 4.8.5 20150623 (Red Hat 4.8.5-4) + Version 4.9.3, Version 5.2.0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.0.098 Build 20160721 + MPICH 3.1.4 compiled with GCC 4.9.3 + + SunOS 5.11 32- and 64-bit Sun C 5.12 SunOS_sparc + (emu) Sun Fortran 95 8.6 SunOS_sparc + Sun C++ 5.12 SunOS_sparc + + Windows 7 Visual Studio 2015 w/ Intel Fortran 18 (cmake) + + Windows 7 x64 Visual Studio 2015 w/ Intel C, Fortran 2018 (cmake) + Visual Studio 2015 w/ MSMPI 8 (cmake) + + Windows 10 Visual Studio 2015 w/ Intel Fortran 18 (cmake) + + Windows 10 x64 Visual Studio 2015 w/ Intel Fortran 18 (cmake) + Visual Studio 2017 w/ Intel Fortran 19 (cmake) + Visual Studio 2019 w/ Intel Fortran 19 (cmake) + + macOS 10.13.6, Darwin, Apple clang LLVM version 10.0.0 + 17.7.0, x86_64 gfortran GNU Fortran (GCC) 6.3.0 + (bear) Intel icc/icpc/ifort version 19.0.4 + + macOS 10.14.6, Darwin Apple clang LLVM version 10.0.1 + 18.7.0, x86_64 gfortran GNU Fortran (GCC) 6.3.0 + (bobcat) Intel icc/icpc/ifort version 19.0.4 + + +Tested Configuration Features Summary +===================================== + + In the tables below + y = tested + n = not tested in this release + C = Cluster + W = Workstation + x = not working in this release + dna = does not apply + ( ) = footnote appears below second table + <blank> = testing incomplete on this feature or platform + +Platform C F90/ F90 C++ zlib SZIP + parallel F2003 parallel +Solaris2.11 32-bit n y/y n y y y +Solaris2.11 64-bit n y/n n y y y +Windows 7 y y/y n y y y +Windows 7 x64 y y/y y y y y +Windows 7 Cygwin n y/n n y y y +Windows 7 x64 Cygwin n y/n n y y y +Windows 10 y y/y n y y y +Windows 10 x64 y y/y n y y y +Mac OS X Yosemite 10.10.5 64-bit n y/y n y y y +Mac OS X El Capitan 10.11.6 64-bit n y/y n y y y +MacOS High Sierra 10.13.6 64-bit n y/y n y y y +CentOS 7.2 Linux 3.10.0 x86_64 PGI n y/y n y y y +CentOS 7.2 Linux 3.10.0 x86_64 GNU y y/y y y y y +CentOS 7.2 Linux 3.10.0 x86_64 Intel n y/y n y y y +Linux 2.6.32-573.18.1.el6.ppc64 n y/y n y y y + + +Platform Shared Shared Shared Thread- + C libs F90 libs C++ libs safe +Solaris2.11 32-bit y y y y +Solaris2.11 64-bit y y y y +Windows 7 y y y y +Windows 7 x64 y y y y +Windows 7 Cygwin n n n y +Windows 7 x64 Cygwin n n n y +Windows 10 y y y y +Windows 10 x64 y y y y +Mac OS X Yosemite 10.10.5 64-bit y y y y +Mac OS X El Capitan 10.11.6 64-bit y y y y +MacOS High Sierra 10.13.6 64-bit y y y y +CentOS 7.2 Linux 3.10.0 x86_64 PGI y y y n +CentOS 7.2 Linux 3.10.0 x86_64 GNU y y y y +CentOS 7.2 Linux 3.10.0 x86_64 Intel y y y n +Linux 2.6.32-573.18.1.el6.ppc64 y y y n + +Compiler versions for each platform are listed in the preceding +"Supported Platforms" table. + + +More Tested Platforms +===================== +The following configurations are not supported but have been tested for this release. + + Linux 2.6.32-754.11.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (mayll/platypus) Version 4.4.7 20120313 + Version 4.9.3, 5.3.0, 6.2.0 + PGI C, Fortran, C++ for 64-bit target on + x86-64; + Version 17.10-0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.4.196 Build 20170411 + MPICH 3.1.4 compiled with GCC 4.9.3 + + Linux 3.10.0-327.18.2.el7 GNU C (gcc) and C++ (g++) compilers + #1 SMP x86_64 GNU/Linux Version 4.8.5 20150623 (Red Hat 4.8.5-4) + (jelly) with NAG Fortran Compiler Release 6.2(Chiyoda) + GCC Version 7.1.0 + MPICH 3.2-GCC-4.9.3 + MPICH 3.2.1-GCC-7.2.0-2.29 + OpenMPI 2.1.5-GCC-7.2.0-2.29 + Intel(R) C (icc) and C++ (icpc) compilers + Version 17.0.0.098 Build 20160721 + with NAG Fortran Compiler Release 6.2(Chiyoda) + + Linux 3.10.0-327.10.1.el7 MPICH 3.2 compiled with GCC 5.3.0 + #1 SMP x86_64 GNU/Linux + (moohan) + + Linux 2.6.32-573.18.1.el6.ppc64 MPICH mpich 3.1.4 compiled with + #1 SMP ppc64 GNU/Linux IBM XL C/C++ for Linux, V13.1 + (ostrich) and IBM XL Fortran for Linux, V15.1 + + Fedora30 5.3.11-200.fc30.x86_64 + #1 SMP x86_64 GNU/Linux GNU gcc (GCC) 9.2.1 20190827 (Red Hat 9.2.1 20190827) + GNU Fortran (GCC) 9.2.1 20190827 (Red Hat 9.2.1 20190827) + (cmake and autotools) + + Mac OS X 10.11.6, Darwin, Apple clang version 7.3.0 from Xcode 7.3 + 15.6.0, x86-64 gfortran GNU Fortran (GCC) 5.2.0 + (osx1011test) Intel icc/icpc/ifort version 16.0.2 + + macOS 10.12.6, Darwin, Apple clang LLVM version 8.1.0 from Xcode 8.3 + 16.6.0, x86_64 gfortran GNU Fortran (GCC) 7.1.0 + (kite) Intel icc/icpc/ifort version 17.0.2 + + Windows 7 x64 Visual Studio 2008 + + +Known Problems +============== + CMake files do not behave correctly with paths containing spaces. + Do not use spaces in paths because the required escaping for handling spaces + results in very complex and fragile build files. + ADB - 2019/05/07 + + At present, metadata cache images may not be generated by parallel + applications. Parallel applications can read files with metadata cache + images, but since this is a collective operation, a deadlock is possible + if one or more processes do not participate. + + Three tests fail with OpenMPI 3.0.0/GCC-7.2.0-2.29: + testphdf5 (ecdsetw, selnone, cchunk1, cchunk3, cchunk4, and actualio) + t_shapesame (sscontig2) + t_pflush1/fails on exit + The first two tests fail attempting collective writes. + + Parallel builds using OpenMPI 3.03 or later and romio fail several tests + with collective writes or compression that will not fail when ompio is used + instead of romio. This can be done by adding "--mca io ompio" to the mpirun + command. For example, in autotools builds RUNPARALLEL can be set to + "mpirun --mca io ompio -n 6" provided ompio is installed. + + CPP ptable test fails on VS2017 with Intel compiler, JIRA issue: HDFFV-10628. + This test will pass with VS2015 with Intel compiler. + + Older MPI libraries such as OpenMPI 2.0.1 and MPICH 2.1.5 were tested + while attempting to resolve the Jira issue: HDFFV-10540. + The known problems of reading or writing > 2GBs when using MPI-2 was + partially resolved with the MPICH library. The proposed support recognizes + IO operations > 2GB and if the datatype is not a derived type, the library + breaks the IO into chunks which can be input or output with the existing + MPI 2 limitations, i.e. size reporting and function API size/count + arguments are restricted to be 32 bit integers. For derived types larger + than 2GB, MPICH 2.1.5 fails while attempting to read or write data. + OpenMPI in contrast, implements MPI-3 APIs even in the older releases + and thus does not suffer from the 32 bit size limitation described here. + OpenMPI releases prior to v3.1.3 appear to have other datatype issues however, + e.g. within a single parallel test (testphdf5) the subtests (cdsetr, eidsetr) + report data verfication errors before eventually aborting. + The most recent versions of OpenMPI (v3.1.3 or newer) have evidently + resolved these isses and parallel HDF5 testing does not currently report + errors though occasional hangs have been observed. + + Known problems in previous releases can be found in the HISTORY*.txt files + in the HDF5 source. Please report any new problems found to + help@hdfgroup.org. + + +CMake vs. Autotools installations +================================= +While both build systems produce similar results, there are differences. +Each system produces the same set of folders on linux (only CMake works +on standard Windows); bin, include, lib and share. Autotools places the +COPYING and RELEASE.txt file in the root folder, CMake places them in +the share folder. + +The bin folder contains the tools and the build scripts. Additionally, CMake +creates dynamic versions of the tools with the suffix "-shared". Autotools +installs one set of tools depending on the "--enable-shared" configuration +option. + build scripts + ------------- + Autotools: h5c++, h5cc, h5fc + CMake: h5c++, h5cc, h5hlc++, h5hlcc + +The include folder holds the header files and the fortran mod files. CMake +places the fortran mod files into separate shared and static subfolders, +while Autotools places one set of mod files into the include folder. Because +CMake produces a tools library, the header files for tools will appear in +the include folder. + +The lib folder contains the library files, and CMake adds the pkgconfig +subfolder with the hdf5*.pc files used by the bin/build scripts created by +the CMake build. CMake separates the C interface code from the fortran code by +creating C-stub libraries for each Fortran library. In addition, only CMake +installs the tools library. The names of the szip libraries are different +between the build systems. + +The share folder will have the most differences because CMake builds include +a number of CMake specific files for support of CMake's find_package and support +for the HDF5 Examples CMake project. + +%%%%1.10.5%%%% + +HDF5 version 1.10.5 released on 2019-02-25 +================================================================================ + + +INTRODUCTION + +This document describes the differences between this release and the previous +HDF5 release. It contains information on the platforms tested and known +problems in this release. For more details check the HISTORY*.txt files in the +HDF5 source. + +Note that documentation in the links below will be updated at the time of each +final release. + +Links to HDF5 documentation can be found on The HDF5 web page: + + https://portal.hdfgroup.org/display/HDF5/HDF5 + +The official HDF5 releases can be obtained from: + + https://www.hdfgroup.org/downloads/hdf5/ + +Changes from Release to Release and New Features in the HDF5-1.10.x release series +can be found at: + + https://portal.hdfgroup.org/display/HDF5/HDF5+Application+Developer%27s+Guide + +If you have any questions or comments, please send them to the HDF Help Desk: + + help@hdfgroup.org + + +CONTENTS + +- New Features +- Support for new platforms and languages +- Bug Fixes since HDF5-1.10.4 +- Supported Platforms +- Tested Configuration Features Summary +- More Tested Platforms +- Known Problems +- CMake vs. Autotools installations + + +New Features +============ + + Configuration: + ------------- + - Cross compile on mutrino and other Cray XC40 systems. + + Added support for CMake options to use CrayLinuxEnvironment, craype-mic-knl + module for building with craype-haswell module for configuration, and + batch scripts in bin/batch for use with sbatch or bsub to run tests in + batch jobs on compute nodes. An instruction file README_HPC describing + the use of these options was added in release_docs. + + (LRK - 2019/02/18, TRILABS-34) + + - Rework CMake command files to fix MPI testing. + + Added setup fixture to remove any test generated files and added DEPENDS + to test properties to execute tests in order expected. + + (ADB - 2019/02/14, TRILABS-111) + + - Disable SZIP or ZLIB options if TGZ files are not available. + + Changed the TGZ option for SZip and ZLib to disable the options + if the source tar.gz files are not found. + + (ADB - 2019/02/05, HDFFV-10697) + + - Added a new option to enable/disable using pread/pwrite instead of + read/write in the sec2, log, and core VFDs. + + This option is enabled by default when pread/pwrite are detected. + + Autotools: --enable-preadwrite + CMake: HDF5_ENABLE_PREADWRITE + + (DER - 2019/02/03, HDFFV-10696) + + - Rework CMake versioning for OSX platforms. + + Changed the current_version and compatibility_version flags from optional + with HDF5_BUILD_WITH_INSTALL_NAME to always setting the flags for OSX. + + (ADB - 2019/01/22, HDFFV-10685) + + - Rework CMake command files to eliminate developer CMP005 warning + + Use variables without quotes in if () statements. + + (ADB - 2019/01/18, TILABS-105) + + - Rework CMake configure files to eliminate developer CMP0075 warning + + Renamed varname to HDF5_REQUIRED_LIBRARIES as the contents were not + required for configuration. Also moved check includes calls to top of + files. + + (ADB - 2019/01/03, HDFFV-10546) + + - Keep stderr and stdout separate in tests + + Changed test handling of output capture. Tests now keep the stderr + output separate from the stdout output. It is up to the test to decide + which output to check against a reference. Also added the option + to grep for a string in either output. + + (ADB - 2018/12/12, HDFFV-10632) + + - Incorrectly installed private header files were removed from + CMake installs. + + The CMake build files incorrectly flagged the following header files + as public and installed them. They are private and will no longer be + installed. + + HDF5 library private package files (H5Xpkg.h) + H5Edefin.h + H5Einit.h + H5Eterm.h + H5LTparse.h + h5diff.h + h5tools_dump.h + h5tools.h + h5tools_ref.h + h5tools_str.h + h5tools_utils.h + h5trav.h + + (DER - 2018/10/26, HDFFV-10614, 10609) + + - Autotools installs now install H5FDwindows.h + + This is simply to align the installed header files between the + autotools and CMake. H5FDwindows.h has no functionality on + non-Windows systems. + + (DER - 2018/10/26, HDFFV-10614) + + + Library: + -------- + - The sec2, log, and core VFDs can now use pread/pwrite instead of + read/write. + + pread and pwrite do not change the file offset, a feature that was + requested by a user working with a multi-threaded application. + + The option to configure this feature is described above. + + (DER - 2019/02/03, HDFFV-10696) + + - Add ability to minimze dataset object headers. + + Creation of many, very small datasets resulted in extensive file bloat + due to extra space in the dataset object headers -- this space is + allocated by default to allow for the insertion of a small number of + attributes within the object header and not require a continuation + block, an unnecessary provision in the target use case. + + Inform the library to expect no attributes on created datasets, and to + allocate the least space possible for the object headers. + NOTE: A continuation block is created if attributes are added to a + 'minimized' dataset, which can reduce performance. + NOTE: Some extra space is allocated for attributes essential to the + correct behavior of the object header (store creation times, e.g.). This + does not violate the design principle, as the space is calculated and + allocated as needed at the time of dataset object header creation -- + unused space is not generated. + New API calls: + H5Fget_dset_no_attrs_hint + H5Fset_dset_no_attrs_hint + H5Pget_dset_no_attrs_hint + H5Pset_dset_no_attrs_hint + + (JOS - 2019/01/04, TRILAB-45) + + - Added new chunk query functions + + The following public functions were added to discover information about + the chunks in an HDF5 file. + herr_t H5Dget_num_chunks(dset_id, fspace_id, *nchunks) + herr_t H5Dget_chunk_info_by_coord(dset_id, *coord, *filter_mask, *addr, *size) + herr_t H5Dget_chunk_info(dset_id, fspace_id, index, *coord, *filter_mask, *addr, *size) + + (BMR - 2018/11/07, HDFFV-10615) + + - Several empty public header files where removed from the distribution + + The following files were empty placeholders. They are for internal + packages that are unlikely to ever have public functionality and have + thus been removed. + + H5Bpublic.h + H5B2public.h + H5FSpublic.h + H5HFpublic.h + H5HGpublic.h + H5HLpublic.h + + They were only installed in CMake builds. + + (DER - 2018/10/26, HDFFV-10614) + + + Parallel Library: + ----------------- + - Changed the default behavior in parallel when reading the same dataset in its entirety + (i.e. H5S_ALL dataset selection) which is being read by all the processes collectively. + The dataset must be contiguous, less than 2GB, and of an atomic datatype. + The new behavior is the HDF5 library will use an MPI_Bcast to pass the data read from + the disk by the root process to the remain processes in the MPI communicator associated + with the HDF5 file. + + (MSB - 2019/01/02, HDFFV-10652) + + - All MPI-1 API calls have been replaced with MPI-2 equivalents. + + This was done to better support OpenMPI, as default builds no longer + include MPI-1 support (as of OpenMPI 4.0). + + (DER - 2018/12/30, HDFFV-10566) + + Fortran Library: + ---------------- + - Added wrappers for dataset object header minimization calls. + (see the note for TRILAB-45, above) + + New API calls: + + h5fget_dset_no_attrs_hint_f + h5fset_dset_no_attrs_hint_f + h5pget_dset_no_attrs_hint_f + h5pset_dset_no_attrs_hint_f + + (DER - 2019/01/09, TRILAB-45) + + - Added new Fortran derived type, c_h5o_info_t, which is interoperable with + C's h5o_info_t. This is needed for callback functions which + pass C's h5o_info_t data type definition. + + (MSB, 2019/01/08, HDFFV-10443) + + - Added new Fortran API, H5gmtime, which converts (C) 'time_t' structure + to Fortran DATE AND TIME storage format. + + (MSB, 2019/01/08, HDFFV-10443) + + - Added new Fortran 'fields' optional parameter to: h5ovisit_f, h5oget_info_by_name_f, + h5oget_info, h5oget_info_by_idx and h5ovisit_by_name_f. + + (MSB, 2019/01/08, HDFFV-10443) + + C++ Library: + ------------ + - Added new function to the C++ interface + + Added wrapper for H5Ovisit2: + H5Object::visit() + + (BMR - 2019/02/14, HDFFV-10532) + + + Java Library: + ---------------- + - Rewrote the JNI error handling to be much cleaner + + (JTH - 2019/02/12) + + - Add new functions to java interface + + Added wrappers for: + H5Fset_libver_bounds + H5Fget_dset_no_attrs_hint/H5Fset_dset_no_attrs_hint + H5Pget_dset_no_attrs_hint/H5Pset_dset_no_attrs_hint + + (ADB - 2019/01/07, HDFFV-10664) + + - Fix java unit tests when Time is a natural number + + Time substitution in java/test/junit.sh.in doesn't + handle the case when Time is a natural number. Fixed + the regular expression. + + (ADB - 2019/01/07, HDFFV-10674) + + - Duplicate the data read/write functions of Datasets for Attributes. + + Region references could not be displayed for attributes as they could + for datasets. Datasets had overloaded read and write functions for different + datatypes that were not available for attributes. After adding similar + functions, attribute region references work normally. + + (ADB - 2018/12/12, HDFVIEW-4) + + + Tools: + ------ + - The h5repart -family-to-sec2 argument was changed to -family-to-single + + In order to better support other single-file VFDs which could work with + h5repart, the -family-to-sec2 argument was renamed to -family-to-single. + This is just a name change and the functionality of the argument has not + changed. + + The -family-to-sec2 argument has been kept for backwards-compatibility. + This argument should be considered deprecated. + + (DER - 2018/11/14, HDFFV-10633) + + +Bug Fixes since HDF5-1.10.4 release +================================== + + Library + ------- + - Fix hangs with collective metadata reads during chunked dataset I/O + + In the parallel library, it was discovered that when a particular + sequence of operations following a pattern of: + + "write to chunked dataset" -> "flush file" -> "read from dataset" + + occurred with collective metadata reads enabled, hangs could be + observed due to certain MPI ranks not participating in the collective + metadata reads. + + To fix the issue, collective metadata reads are now disabled during + chunked dataset raw data I/O. + + (JTH - 2019/02/11, HDFFV-10563, HDFFV-10688) + + - Performance issue when closing an object + + The slow down is due to the search of the "tag_list" to find + out the "corked" status of an object and "uncork" it if so. + + Improve performance by skipping the search of the "tag_list" + if there are no "corked" objects when closing an object. + + (VC - 2019/02/06) + + - Uninitialized bytes from a type conversion buffer could be written + to disk in H5Dwrite calls where type conversion takes place + and the type conversion buffer was created by the HDF5 library. + + When H5Dwrite is called and datatype conversion must be performed, + the library will create a temporary buffer for type conversion if + one is not provided by the user via H5Pset_buffer. This internal + buffer is allocated via malloc and contains uninitialized data. In + some datatype conversions (float to long double, possibly others), + some of this uninitialized data could be written to disk. + + This was flagged by valgrind in the dtransform test and does not + appear to be a common occurrence (it is flagged in one test out + of the entire HDF5 test suite). + + Switching to calloc fixed the problem. + + (DER - 2019/02/03, HDFFV-10694) + + - There was missing protection against division by zero reported to + The HDF Group as issue #CVE-2018-17434. + + Protection against division by zero was added to address the issue + #CVE-2018-17434. + + (BMR - 2019/01/29, HDFFV-10586) + + - The issue CVE-2018-17437 was reported to The HDF Group + + Although CVE-2018-17437 reported a memory leak, the actual issue + was invalid read. It was found that the attribute name length + in an attribute message was corrupted, which caused the buffer + pointer to be advanced too far and later caused an invalid read. + + A check was added to detect when the attribute name or its length + was corrupted and report the potential of data corruption. + + (BMR - 2019/01/29, HDFFV-10588) + + - H5Ewalk did not stop when it was supposed to + + H5Ewalk was supposed to stop when the callback function stopped + even though the errors in the stack were not all visited, but it + did not. This problem is now fixed. + + (BMR - 2019/01/29, HDFFV-10684) + + - Revert H5Oget_info* and H5Ovisit* functions + + In 1.10.3 new H5Oget_info*2 and H5Ovisit*2 functions were + added for performance. Inadvertently, the original functions; + H5Oget_info, + H5Oget_info_by_name, + H5Oget_info_by_idx, + H5Ovisit, + H5Ovisit_by_name + were versioned to H5Oget_info*1 and H5Ovisit*1. This + broke the API compatibility for a maintenance release. The + original functions have been restored. + + (ADB - 2019/01/24, HDFFV-10686) + + - Fixed a potential invalid memory access and failure that could occur when + decoding an unknown object header message (from a future version of the + library). + + (NAF - 2019/01/07) + + - Deleting attributes in dense storage + + The library aborts with "infinite loop closing library" after + attributes in dense storage are created and then deleted. + + When deleting the attribute nodes from the name index v2 B-tree, + if an attribute is found in the intermediate B-tree nodes, + which may be merged/redistributed in the process, we need to + free the dynamically allocated spaces for the intermediate + decoded attribute. + + (VC - 2018/12/26, HDFFV-10659) + + - There was missing protection against division by zero reported to + The HDF Group as issue #CVE-2018-17233. + + Protection against division by zero was added to address the issue + #CVE-2018-17233. In addition, several similar occurrences in the same + file were fixed as well. + + (BMR - 2018/12/23, HDFFV-10577) + + - Fixed an issue where the parallel filters tests would fail + if zlib was not available on the system. Until support can + be added in the tests for filters beyond gzip/zlib, the tests + will be skipped if zlib is not available. + + (JTH - 2018/12/05) + + - A bug was discovered in the parallel library where an application + would eventually consume all of the available MPI communicators + when continually writing to a compressed dataset in parallel. This + was due to internal copies of an HDF5 File Access Property List, + which each contained a copy of the MPI communicator, not being + closed at the end of each write operation. This problem was + exacerbated by larger numbers of processors. + + (JTH - 2018/12/05, HDFFV-10629) + + + Fortran + -------- + - Fixed issue with Fortran not returning h5o_info_t field values + meta_size%attr%index_size and meta_size%attr%heap_size. + + (MSB, 2019/01/08, HDFFV-10443) + + - Added symbolic links libhdf5_hl_fortran.so to libhdf5hl_fortran.so and + libhdf5_hl_fortran.a to libhdf5hl_fortran.a in hdf5/lib directory for + autotools installs. These were added to match the name of the files + installed by cmake and the general pattern of hl lib files. We will + change the names of the installed lib files to the matching name in + the next major release. + + (LRK - 2019/01/04, HDFFV-10596) + + - Made Fortran specific subroutines PRIVATE in generic procedures. + + Affected generic procedures were functions in H5A, H5D, H5P, H5R and H5T. + + (MSB, 2018/12/04, HDFFV-10511) + + + Testing + ------- + - Fixed a test failure in testpar/t_dset.c caused by + the test trying to use the parallel filters feature + on MPI-2 implementations. + + (JTH, 2019/2/7) + + +Supported Platforms +=================== + + Linux 2.6.32-696.16.1.el6.ppc64 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) + #1 SMP ppc64 GNU/Linux g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) + (ostrich) GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) + IBM XL C/C++ V13.1 + IBM XL Fortran V15.1 + + Linux 3.10.0-327.10.1.el7 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (kituo/moohan) Version 4.8.5 20150623 (Red Hat 4.8.5-4) + Version 4.9.3, Version 5.2.0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.0.098 Build 20160721 + MPICH 3.1.4 compiled with GCC 4.9.3 + + SunOS 5.11 32- and 64-bit Sun C 5.12 SunOS_sparc + (emu) Sun Fortran 95 8.6 SunOS_sparc + Sun C++ 5.12 SunOS_sparc + + Windows 7 Visual Studio 2015 w/ Intel Fortran 16 (cmake) + + Windows 7 x64 Visual Studio 2013 + Visual Studio 2015 w/ Intel Fortran 16 (cmake) + Visual Studio 2015 w/ Intel C, Fortran 2018 (cmake) + Visual Studio 2015 w/ MSMPI 8 (cmake) + + Windows 10 Visual Studio 2015 w/ Intel Fortran 18 (cmake) + + Windows 10 x64 Visual Studio 2015 w/ Intel Fortran 18 (cmake) + Visual Studio 2017 w/ Intel Fortran 18 (cmake) + + Mac OS X Yosemite 10.10.5 Apple clang/clang++ version 6.1 from Xcode 7.0 + 64-bit gfortran GNU Fortran (GCC) 4.9.2 + (osx1010dev/osx1010test) Intel icc/icpc/ifort version 15.0.3 + + Mac OS X El Capitan 10.11.6 Apple clang/clang++ version 7.3.0 from Xcode 7.3 + 64-bit gfortran GNU Fortran (GCC) 5.2.0 + (osx1011dev/osx1011test) Intel icc/icpc/ifort version 16.0.2 + + MacOS High Sierra 10.13.6 Apple LLVM version 10.0.0 (clang/clang++-1000.10.44.4) + 64-bit gfortran GNU Fortran (GCC) 8.3.0 + + +Tested Configuration Features Summary +===================================== + + In the tables below + y = tested + n = not tested in this release + C = Cluster + W = Workstation + x = not working in this release + dna = does not apply + ( ) = footnote appears below second table + <blank> = testing incomplete on this feature or platform + +Platform C F90/ F90 C++ zlib SZIP + parallel F2003 parallel +Solaris2.11 32-bit n y/y n y y y +Solaris2.11 64-bit n y/n n y y y +Windows 7 y y/y n y y y +Windows 7 x64 y y/y y y y y +Windows 7 Cygwin n y/n n y y y +Windows 7 x64 Cygwin n y/n n y y y +Windows 10 y y/y n y y y +Windows 10 x64 y y/y n y y y +Mac OS X Yosemite 10.10.5 64-bit n y/y n y y y +Mac OS X El Capitan 10.11.6 64-bit n y/y n y y y +MacOS High Sierra 10.13.6 64-bit n y/y n y y y +CentOS 7.2 Linux 3.10.0 x86_64 PGI n y/y n y y y +CentOS 7.2 Linux 3.10.0 x86_64 GNU y y/y y y y y +CentOS 7.2 Linux 3.10.0 x86_64 Intel n y/y n y y y +Linux 2.6.32-573.18.1.el6.ppc64 n y/y n y y y + + +Platform Shared Shared Shared Thread- + C libs F90 libs C++ libs safe +Solaris2.11 32-bit y y y y +Solaris2.11 64-bit y y y y +Windows 7 y y y y +Windows 7 x64 y y y y +Windows 7 Cygwin n n n y +Windows 7 x64 Cygwin n n n y +Windows 10 y y y y +Windows 10 x64 y y y y +Mac OS X Yosemite 10.10.5 64-bit y y y y +Mac OS X El Capitan 10.11.6 64-bit y y y y +MacOS High Sierra 10.13.6 64-bit y y y y +CentOS 7.2 Linux 3.10.0 x86_64 PGI y y y n +CentOS 7.2 Linux 3.10.0 x86_64 GNU y y y y +CentOS 7.2 Linux 3.10.0 x86_64 Intel y y y n +Linux 2.6.32-573.18.1.el6.ppc64 y y y n + +Compiler versions for each platform are listed in the preceding +"Supported Platforms" table. + + +More Tested Platforms +===================== +The following configurations are not supported but have been tested for this release. + + Linux 2.6.32-573.22.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (mayll/platypus) Version 4.4.7 20120313 + Version 4.9.3, 5.3.0, 6.2.0 + PGI C, Fortran, C++ for 64-bit target on + x86-64; + Version 17.10-0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.4.196 Build 20170411 + MPICH 3.1.4 compiled with GCC 4.9.3 + + Linux 3.10.0-327.18.2.el7 GNU C (gcc) and C++ (g++) compilers + #1 SMP x86_64 GNU/Linux Version 4.8.5 20150623 (Red Hat 4.8.5-4) + (jelly) with NAG Fortran Compiler Release 6.1(Tozai) + GCC Version 7.1.0 + MPICH 3.2-GCC-4.9.3 + MPICH 3.2.1-GCC-7.2.0-2.29 + OpenMPI 2.1.5-GCC-7.2.0-2.29 + Intel(R) C (icc) and C++ (icpc) compilers + Version 17.0.0.098 Build 20160721 + with NAG Fortran Compiler Release 6.1(Tozai) + + Linux 3.10.0-327.10.1.el7 MPICH 3.2 compiled with GCC 5.3.0 + #1 SMP x86_64 GNU/Linux + (moohan) + + Fedora 29 4.20.10-200.fc29.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux + gcc, g++ (GCC) 8.2.1 20181215 + (Red Hat 8.2.1-6) + GNU Fortran (GCC) 8.2.1 20181215 + (Red Hat 8.2.1-6) + (cmake and autotools) + + Windows 7 x64 Visual Studio 2008 + + +Known Problems +============== + + At present, metadata cache images may not be generated by parallel + applications. Parallel applications can read files with metadata cache + images, but since this is a collective operation, a deadlock is possible + if one or more processes do not participate. + + Three tests fail with OpenMPI 3.0.0/GCC-7.2.0-2.29: + testphdf5 (ecdsetw, selnone, cchunk1, cchunk3, cchunk4, and actualio) + t_shapesame (sscontig2) + t_pflush1/fails on exit + The first two tests fail attempting collective writes. + + CPP ptable test fails on VS2017 with Intel compiler, JIRA issue: HDFFV-10628. + This test will pass with VS2015 with Intel compiler. + + Older MPI libraries such as OpenMPI 2.0.1 and MPICH 2.1.5 were tested + while attempting to resolve the Jira issue: HDFFV-10540. + The known problems of reading or writing > 2GBs when using MPI-2 was + partially resolved with the MPICH library. The proposed support recognizes + IO operations > 2GB and if the datatype is not a derived type, the library + breaks the IO into chunks which can be input or output with the existing + MPI 2 limitations, i.e. size reporting and function API size/count + arguments are restricted to be 32 bit integers. For derived types larger + than 2GB, MPICH 2.1.5 fails while attempting to read or write data. + OpenMPI in contrast, implements MPI-3 APIs even in the older releases + and thus does not suffer from the 32 bit size limitation described here. + OpenMPI releases prior to v3.1.3 appear to have other datatype issues however, + e.g. within a single parallel test (testphdf5) the subtests (cdsetr, eidsetr) + report data verfication errors before eventually aborting. + The most recent versions of OpenMPI (v3.1.3 or newer) have evidently + resolved these isses and parallel HDF5 testing does not currently report + errors though occasional hangs have been observed. + + Known problems in previous releases can be found in the HISTORY*.txt files + in the HDF5 source. Please report any new problems found to + help@hdfgroup.org. + + +CMake vs. Autotools installations +================================= +While both build systems produce similar results, there are differences. +Each system produces the same set of folders on linux (only CMake works +on standard Windows); bin, include, lib and share. Autotools places the +COPYING and RELEASE.txt file in the root folder, CMake places them in +the share folder. + +The bin folder contains the tools and the build scripts. Additionally, CMake +creates dynamic versions of the tools with the suffix "-shared". Autotools +installs one set of tools depending on the "--enable-shared" configuration +option. + build scripts + ------------- + Autotools: h5c++, h5cc, h5fc + CMake: h5c++, h5cc, h5hlc++, h5hlcc + +The include folder holds the header files and the fortran mod files. CMake +places the fortran mod files into separate shared and static subfolders, +while Autotools places one set of mod files into the include folder. Because +CMake produces a tools library, the header files for tools will appear in +the include folder. + +The lib folder contains the library files, and CMake adds the pkgconfig +subfolder with the hdf5*.pc files used by the bin/build scripts created by +the CMake build. CMake separates the C interface code from the fortran code by +creating C-stub libraries for each Fortran library. In addition, only CMake +installs the tools library. The names of the szip libraries are different +between the build systems. + +The share folder will have the most differences because CMake builds include +a number of CMake specific files for support of CMake's find_package and support +for the HDF5 Examples CMake project. + %%%%1.10.4%%%% HDF5 version 1.10.4 released on 2018-10-05 diff --git a/release_docs/HISTORY-1_10_0-1_12_0.txt b/release_docs/HISTORY-1_10_0-1_12_0.txt new file mode 100644 index 0000000..60516fc --- /dev/null +++ b/release_docs/HISTORY-1_10_0-1_12_0.txt @@ -0,0 +1,1183 @@ +HDF5 HISTORY +============= + + +INTRODUCTION + +This document describes the differences between the HDF5-1.10.0 and +HDF5 1.12.0 releases. For more details check the HISTORY*.txt files in the +HDF5 source. + +Information about supported and tested platforms is provided for historical +reasons only and may not be accurate. + + +For more information, see the HDF5 home page: + + http://www.hdfgroup.org/HDF5/ + +If you have any questions or comments, please send them to the HDF Help Desk: + + help@hdfgroup.org + + +CONTENTS + +- New Features +- Support for new platforms and languages +- Bug Fixes since HDF5-1.10.3 +- Bug Fixes since HDF5-1.10.2 +- Supported Platforms +- Tested Configuration Features Summary +- More Tested Platforms +- Known Problems +- CMake vs. Autotools installations + + +New Features +============ + + Configuration: + ------------- + - Update CMake tests to use FIXTURES + + CMake test fixtures allow setup/cleanup tests and other dependency + requirements as properties for tests. This is more flexible for + modern CMake code. + + (ADB - 2019/07/23, HDFFV-10529) + + - Windows PDB files are always installed + + There are build configuration or flag settings for Windows that may not + generate PDB files. If those files are not generated then the install + utility will fail because those PDB files are not found. An optional + variable, DISABLE_PDB_FILES, was added to not install PDB files. + + (ADB - 2019/07/17, HDFFV-10424) + + - Add mingw CMake support with a toolchain file + + There has been a number of mingw issues that has been linked under + HDFFV-10845. It has been decided to implement the CMake cross-compiling + technique of toolchain files. We will use a linux platform with the mingw + compiler stack for testing. Only the C language is fully supported, and + the error tests are skipped. The C++ language works for static but shared + builds has a shared library issue with the mingw Standard Exception Handling + library, which is not available on Windows. Fortran has a common cross-compile + problem with the fortran configure tests. + + (ADB - 2019/07/12, HDFFV-10845, HDFFV-10595) + + - Windows PDB files are installed incorrectly + + For static builds, the PDB files for windows should be installed next + to the static libraries in the lib folder. Also the debug versions of + libraries and PDB files are now correctly built using the default + CMAKE_DEBUG_POSTFIX setting. + + (ADB - 2019/07/09, HDFFV-10581) + + - Add option to build only shared libs + + A request was made to prevent building static libraries and only build + shared. A new option was added to CMake, ONLY_SHARED_LIBS, which will + skip building static libraries. Certain utility functions will build with + static libs but are not published. Tests are adjusted to use the correct + libraries depending on SHARED/STATIC settings. + + (ADB - 2019/06/12, HDFFV-10805) + + - Add options to enable or disable building tools and tests + + Configure options --enable-tests and --enable-tools were added for + autotools configure. These options are enabled by default, and can be + disabled with either --disable-tests (or tools) or --enable-tests=no + (or --enable-tools=no). Build time is reduced ~20% when tools are + disabled, 35% when tests are disabled, 45% when both are disabled. + Reenabling them after the initial build requires running configure + again with the option(s) enabled. + + (LRK - 2019/06/12, HDFFV-9976) + + - Change tools test that test the error stack + + There are some use cases which can cause the error stack of tools to be + different then the expected output. These tests now use grepTest.cmake, + this was changed to allow the error file to be searched for an expected string. + + (ADB - 2019/04/15, HDFFV-10741) + + - Keep stderr and stdout separate in tests + + Changed test handling of output capture. Tests now keep the stderr + output separate from the stdout output. It is up to the test to decide + which output to check against a reference. Also added the option + to grep for a string in either output. + + (ADB - 2018/12/12, HDFFV-10632) + + - Add toolchain and cross-compile support + + Added info on using a toolchain file to INSTALL_CMAKE.txt. A + toolchain file is also used in cross-compiling, which requires + CMAKE_CROSSCOMPILING_EMULATOR to be set. To help with cross-compiling + the fortran configure process, the HDF5UseFortran.cmake file macros + were improved. Fixed a Fortran configure file issue that incorrectly + used #cmakedefine instead of #define. + + (ADB - 2018/10/04, HDFFV-10594) + + - Add warning flags for Intel compilers + + Identified Intel compiler specific warnings flags that should be used + instead of GNU flags. + + (ADB - 2018/10/04, TRILABS-21) + + - Add default rpath to targets + + Default rpaths should be set in shared executables and + libraries to allow the use of loading dependent libraries + without requiring LD_LIBRARY_PATH to be set. The default + path should be relative using @rpath on osx and $ORIGIN + on linux. Windows is not affected. + + (ADB - 2018/09/26, HDFFV-10594) + + - Add missing USE_110_API_DEFAULT option. + + Option USE_110_API_DEFAULT sets the default version of + versioned APIs. The bin/makevers perl script did not set + the maxidx variable correctly when the 1.10 branch was + created. This caused the versioning process to always use + the latest version of any API. + + (ADB - 2018/08/17, HDFFV-10552) + + - Added configuration checks for the following MPI functions: + + MPI_Mprobe - Used for the Parallel Compression feature + MPI_Imrecv - Used for the Parallel Compression feature + + MPI_Get_elements_x - Used for the "big Parallel I/O" feature + MPI_Type_size_x - Used for the "big Parallel I/O" feature + + (JTH - 2018/08/02, HDFFV-10512) + + - Added section to the libhdf5.settings file to indicate + the status of the Parallel Compression and "big Parallel I/O" + features. + + (JTH - 2018/08/02, HDFFV-10512) + + - Add option to execute swmr shell scripts from CMake. + + Option TEST_SHELL_SCRIPTS redirects processing into a + separate ShellTests.cmake file for UNIX types. The tests + execute the shell scripts if a SH program is found. + + (ADB - 2018/07/16) + + + Library: + -------- + - Add new H5R_ref_t type for object, dataset region and _attribute_ + references. This new type will deprecate the current hobj_ref_t + and hdset_reg_ref_t types for references. Added H5T_REF datatype + to read and write new reference types. As opposed to previous + reference types, reference creation no longer modifies existing + files. New reference types also now support references to external + files. + + (JS - 2019/10/08) + + - Add S3 and HDFS VFDs to HDF5 maintenance + + Fix windows requirements and java tests. Windows requires CMake 3.13. + Install openssl library (with dev files); + from "Shining Light Productions". msi package preferred. + + PATH should have been updated with the installation dir. + set ENV variable OPENSSL_ROOT_DIR to the installation dir. + set ENV variable OPENSSL_CONF to the cfg file, likely %OPENSSL_ROOT_DIR%\bin\openssl.cfg + Install libcurl library (with dev files); + download the latest released version using git: https://github.com/curl/curl.git + + Open a Visual Studio Command prompt + change to the libcurl root folder + run the "buildconf.bat" batch file + change to the winbuild directory + nmake /f Makefile.vc mode=dll MACHINE=x64 + copy libcurl-vc-x64-release-dll-ipv6-sspi-winssl dir to C:\curl (installation dir) + set ENV variable CURL_ROOT to C:\curl (installation dir) + update PATH ENV variable to %CURL_ROOT%\bin (installation bin dir). + the aws credentials file should be in %USERPROFILE%\.aws folder + set the ENV variable "HDF5_ROS3_TEST_BUCKET_URL=https://s3.us-east-2.amazonaws.com/hdf5ros3" + + (ADB - 2019/09/12, HDFFV-10854) + + - Added new chunk query functions + + The following public functions were added to discover information about + the chunks in an HDF5 file. + herr_t H5Dget_num_chunks(dset_id, fspace_id, *nchunks) + herr_t H5Dget_chunk_info_by_coord(dset_id, *coord, *filter_mask, *addr, *size) + herr_t H5Dget_chunk_info(dset_id, fspace_id, index, *coord, *filter_mask, *addr, *size) + + (BMR - 2019/06/11, HDFFV-10677) + + - Improved the performance of virtual dataset I/O + + Refactored the internal dataspace routines used by the virtual dataset + code to improve performance, especially when one of the selections + involved is very long and non-contiguous. + + (NAF - 2019/05/31, HDFFV-10693) + + - Added the ability to open files with UTF-8 file names on Windows. + + The POSIX open(2) API call on Windows is limited to ASCII + file names. The library has been updated to convert incoming file + names to UTF-16 (via MultiByteToWideChar(CP_UTF8, ...) and use + _wopen() instead. + + (DER - 2019/03/15, HDFFV-2714, HDFFV-3914, HDFFV-3895, HDFFV-8237, HDFFV-10413, HDFFV-10691) + + - Add new API H5M for map objects. Currently not supported by native + library, can be supported by VOL connectors. + + (NAF - 2019/03/01) + + - Remove H5I_REFERENCE from the library + + This ID class was never used by the library and has been removed. + + (DER - 2018/12/08, HDFFV-10252) + + - Allow pre-generated H5Tinit.c and H5make_libsettings.c to be used. + + Rather than always running H5detect and generating H5Tinit.c and + H5make_libsettings.c, supply a location for those files. + + (ADB - 2018/09/18, HDFFV-10332) + + + Parallel Library: + ----------------- + - Changed the default behavior in parallel when reading the same dataset in its entirely + (i.e. H5S_ALL dataset selection) which is being read by all the processes collectively. + The dataset mush be contiguous, less than 2GB, and of an atomic datatype. + The new behavior is the HDF5 library will use an MPI_Bcast to pass the data read from + the disk by the root process to the remain processes in the MPI communicator associated + with the HDF5 file. + + (MSB - 2019/01/02, HDFFV-10652) + + Fortran Library: + ---------------- + - Added new Fortran derived type, c_h5o_info_t, which is interoperable with + C's h5o_info_t. This is needed for callback functions which + pass C's h5o_info_t data type definition. + + (MSB, 2019/01/08, HDFFV-10443) + + - Added new Fortran API, H5gmtime, which converts (C) 'time_t' structure + to Fortran DATE AND TIME storage format. + + (MSB, 2019/01/08, HDFFV-10443) + + - Added new Fortran 'fields' optional parameter to: h5ovisit_f, h5oget_info_by_name_f, + h5oget_info, h5oget_info_by_idx and h5ovisit_by_name_f. + + (MSB, 2019/01/08, HDFFV-10443) + + C++ Library: + ------------ + - Added new wrappers for H5Pset/get_create_intermediate_group() + LinkCreatPropList::setCreateIntermediateGroup() + LinkCreatPropList::getCreateIntermediateGroup() + + (BMR - 2019/04/22, HDFFV-10622) + + - Added new wrapper for H5Ovisit2() + H5Object::visit() + + (BMR - 2019/02/14, HDFFV-10532) + + + Java Library: + ---------------- + - Fix a failure in JUnit-TestH5P on 32-bit architectures + + (JTH - 2019/04/30) + + - Duplicate the data read/write functions of Datasets for Attributes. + + Region references could not be displayed for attributes as they could + for datasets. Datasets had overloaded read and write functions for different + datatypes that were not available for attributes. After adding similar + functions, attribute region references work normally. + + (ADB - 2018/12/12, HDFVIEW-4) + + - Removed H5I_REFERENCE from the Java wrappers + + This ID class was never used by the library and has been removed + from the Java wrappers. + + (DER - 2018/12/08, HDFFV-10252) + + + Tools: + ------ + - h5repack was fixed to repack datasets with external storage + to other types of storage. + + New test added to repack files and verify the correct data using h5diff. + + (JS - 2019/09/25, HDFFV-10408) + (ADB - 2019/10/02, HDFFV-10918) + + - h5dump was fixed for 128-bit floats, but was missing a test. + + New test greps for the first 15 numbers of the 128-bit value. + + (ADB - 2019/06/23, HDFFV-9407) + + + High-Level APIs: + --------------- + - + + C Packet Table API + ------------------ + - + + Internal header file + -------------------- + - + + Documentation + ------------- + - + +Support for new platforms, languages and compilers. +======================================= + - + +Bug Fixes since HDF5-1.10.3 release +================================== + + Library + ------- + - Improved performance when creating a large number of small datasets by + retrieving default property values from the API context instead of doing + skip list searches. + + (CJH - 2019/12/10, HDFFV-10658) + + - Fixed user-created data access properties not existing in the property list + returned by H5Dget_access_plist. Thanks to Steven Varga for submitting a + reproducer and a patch. + + (CJH - 2019/12/9, HDFFV-10934) + + - Fixed the iteration error in test_versionbounds() in test/dtypes.c + + The test was supposed to loop through all valid combinations of + low and high bounds in the array versions[], but they were set to + H5F_LIBVER_EARLIEST always without changing. + + The problem was fixed by indexing low and high into the array versions[]. + + (VC - 2019/09/30) + + - Fixed the slowness of regular hyperslab selection in a chunked dataset + + It was reported that the selection of every 10th element from a 20G + chunked dataset was extremely slow and sometimes could hang the system. + The problem was due to the iteration and the building of the span tree + for all the selected elements in file space. + + As the selected elements are going to a 1-d contiguous single block + memory space, the problem was fixed by building regular hyperslab selections + in memory space for the selected elements in file space. + + (VC - 2019/09/26, HDFFV-10585) + + - Fixed a bug caused by bad tag value when condensing object header + messages + + There was an assertion failure when moving meessages from running a + user test program with library release hdf5.1.10.4. It was because + the tag value (object header's address) was not set up when entering + the library routine H5O__chunk_update_idx(), which will eventually + verifies the metadata tag value when protecting the object header. + + The problem was fixed by replacing FUNC_ENTER_PACKAGE in H5O__chunk_update_idx() + with FUNC_ENTER_PACKAGE_TAG(oh->cache_info.addr) to set up the metadata tag. + + (VC - 2019/08/23, HDFFV-10873) + + - Fixed the test failure from test_metadata_read_retry_info() in + test/swmr.c + + The test failure is due to the incorrect number of bins returned for + retry info (info.nbins). The # of bins expected for 101 read attempts + is 3 instead of 2. The routine H5F_set_retries() in src/H5Fint.c + calculates the # of bins by first obtaining the log10 value for + (read attempts - 1). For PGI/19, the log10 value for 100 read attempts + is 1.9999999999999998 instead of 2.00000. When casting the log10 value + to unsigned later on, the decimal part is chopped off causing the test + failure. + + This was fixed by obtaining the rounded integer value (HDceil) for the + log10 value of read attempts first before casting the result to unsigned. + + (VC - 2019/8/14, HDFFV-10813) + + - Fixed an issue where creating a file with non-default file space info + together with library high bound setting to H5F_LIBVER_V18. + + When setting non-default file space info in fcpl via + H5Pset_file_space_strategy() and then creating a file with + both high and low library bounds set to + H5F_LIBVER_V18 in fapl, the library succeeds in creating the file. + File creation should fail because the feature of setting non-default + file space info does not exist in library release 1.8 or earlier. + + This was fixed by setting and checking the proper version in the + file space info message based on the library low and high bounds + when creating and opening the HDF5 file. + + (VC - 2019/6/25, HDFFV-10808) + + - When iterating over an old-style group (i.e., when not using the latest + file format) of size 0, a NULL pointer representing the empty links + table would be sent to qsort(3) for sorting, which is undefined behavior. + + Iterating over an empty group is explicitly tested in the links test. + This has not caused any failures to date and was flagged by gcc's + -fsanitize=undefined. + + The library no longer attempts to sort an empty array. + + (DER - 2019/06/18, HDFFV-10829) + + - Fixed an issue where copying a version 1.8 dataset between files using + H5Ocopy fails due to an incompatible fill version + + When using the HDF5 1.10.x H5Ocopy() API call to copy a version 1.8 + dataset to a file created with both high and low library bounds set to + H5F_LIBVER_V18, the H5Ocopy() call will fail with the error stack indicating + that the fill value version is out of bounds. + + This was fixed by changing the fill value message version to H5O_FILL_VERSION_3 + (from H5O_FILL_VERSION_2) for H5F_LIBVER_V18. + + (VC - 2019/6/14, HDFFV-10800) + + - Some oversights in the index iterating area of the library caused + a callback function to continue iterating even though it's supposed + to stop. + + Added the returned value check to the for loop's conditions in + H5EA_iterate(), H5FA_iterate(), and H5D__none_idx_iterate(). The + iteration now stops when it should. + + (BMR - 2019/06/11, HDFFV-10661) + + - Fixed a bug that would cause an error or cause fill values to be + incorrectly read from a chunked dataset using the "single chunk" index if + the data was held in cache and there was no data on disk. + + (NAF - 2019/03/06) + + - Fixed a bug that could cause an error or cause fill values to be + incorrectly read from a dataset that was written to using H5Dwrite_chunk + if the dataset was not closed after writing. + + (NAF - 2019/03/06, HDFFV-10716) + + - Fixed memory leak in scale offset filter + + In a special case where the MinBits is the same as the number of bits in + the datatype's precision, the filter's data buffer was not freed, causing + the memory usage to grow. In general the buffer was freed correctly. The + Minbits are the minimal number of bits to store the data values. Please + see the reference manual for H5Pset_scaleoffset for the detail. + + (RL - 2019/3/4, HDFFV-10705) + + - Fix hangs with collective metadata reads during chunked dataset I/O + + In the parallel library, it was discovered that when a particular + sequence of operations following a pattern of: + + "write to chunked dataset" -> "flush file" -> "read from dataset" + + occurred with collective metadata reads enabled, hangs could be + observed due to certain MPI ranks not participating in the collective + metadata reads. + + To fix the issue, collective metadata reads are now disabled during + chunked dataset raw data I/O. + + (JTH - 2019/02/11, HDFFV-10563, HDFFV-10688) + + - Performance issue when closing an object + + The slow down is due to the search of the "tag_list" to find + out the "corked" status of an object and "uncork" it if so. + + Improve porformance by skipping the search of the "tag_list" + if there are no "corked" objects when closing an object. + + (VC - 2019/2/6) + + - Fixed a potential invalid memory access and failure that could occur when + decoding an unknown object header message (from a future version of the + library). + + (NAF - 2019/01/07) + + - Deleting attributes in dense storage + + The library aborts with "infinite loop closing library" after + attributes in dense storage are created and then deleted. + + When deleting the attribute nodes from the name index v2 B-tree, + if an attribute is found in the intermediate B-tree nodes, + which may be merged/redistributed in the process, we need to + free the dynamically allocated spaces for the intermediate + decoded attribute. + + (VC - 2018/12/26, HDFFV-10659) + + - Allow H5detect and H5make_libsettings to take a file as an argument. + + Rather than only writing to stdout, add a command argument to name + the file that H5detect and H5make_libsettings will use for output. + Without an argument, stdout is still used, so backwards compatibility + is maintained. + + (ADB - 2018/09/05, HDFFV-9059) + + - A bug was discovered in the parallel library where an application + would hang if a collective read/write of a chunked dataset occurred + when collective metadata reads were enabled and some of the ranks + had no selection in the dataset's dataspace. The ranks which had no + selection in the dataset's dataspace called H5D__chunk_addrmap() to + retrieve the lowest chunk address in the dataset. This is because we + require reads/writes to be performed in strictly non-decreasing order + of chunk address in the file. + + When the chunk index used was a version 1 or 2 B-tree, these + non-participating ranks would issue a collective MPI_Bcast() call + that the participating ranks would not issue, causing the hang. Since + the non-participating ranks are not actually reading/writing anything, + the H5D__chunk_addrmap() call can be safely removed and the address used + for the read/write can be set to an arbitrary number (0 was chosen). + + (JTH - 2018/08/25, HDFFV-10501) + + - fcntl(2)-based file locking incorrectly passed the lock argument struct + instead of a pointer to the struct, causing errors on systems where + flock(2) is not available. + + File locking is used when files are opened to enforce SWMR semantics. A + lock operation takes place on all file opens unless the + HDF5_USE_FILE_LOCKING environment variable is set to the string "FALSE". + flock(2) is preferentially used, with fcntl(2) locks as a backup if + flock(2) is unavailable on a system (if neither is available, the lock + operation fails). On these systems, the file lock will often fail, which + causes HDF5 to not open the file and report an error. + + This bug only affects POSIX systems. Win32 builds on Windows use a no-op + locking call which always succeeds. Systems which exhibit this bug will + have H5_HAVE_FCNTL defined but not H5_HAVE_FLOCK in the configure output. + + This bug affects HDF5 1.10.0 through 1.10.5. + + fcntl(2)-based file locking now correctly passes the struct pointer. + + (DER - 2019/08/27, HDFFV-10892) + + + Java Library: + ---------------- + - JNI native library dependencies + + The build for the hdf5_java native library used the wrong + hdf5 target library for CMake builds. Correcting the hdf5_java + library to build with the shared hdf5 library required testing + paths to change also. + + (ADB - 2018/08/31, HDFFV-10568) + - Java iterator callbacks + + Change global callback object to a small stack structure in order + to fix a runtime crash. This crash was discovered when iterating + through a file with nested group members. The global variable + visit_callback is overwritten when recursion starts. When recursion + completes, visit_callback will be pointing to the wrong callback method. + + (ADB - 2018/08/15, HDFFV-10536) + + - Java HDFLibraryException class + + Change parent class from Exception to RuntimeException. + + (ADB - 2018/07/30, HDFFV-10534) + + - JNI Read and Write + + Refactored variable-length functions, H5DreadVL and H5AreadVL, + to correct dataset and attribute reads. New write functions, + H5DwriteVL and H5AwriteVL, are under construction. + + (ADB - 2018/06/02, HDFFV-10519) + + + Configuration + ------------- + - Correct option for default API version + + CMake options for default API version are not mutually exclusive. + Change the multiple BOOL options to a single STRING option with the + strings; v16, v18, v110, v112. + + (ADB - 2019/08/12, HDFFV-10879) + + + Fortran + -------- + - Added symbolic links libhdf5_hl_fortran.so to libhdf5hl_fortran.so and + libhdf5_hl_fortran.a to libhdf5hl_fortran.a in hdf5/lib directory for + autotools installs. These were added to match the name of the files + installed by cmake and the general pattern of hl lib files. We will + change the names of the installed lib files to the matching name in + the next major release. + + (LRK - 2019/01/04, HDFFV-10596) + + - Made Fortran specific subroutines PRIVATE in generic procedures. + + Effected generic procedures were functions in H5A, H5D, H5P, H5R and H5T. + + (MSB, 2018/12/04, HDFFV-10511) + + - Fixed issue with Fortran not returning h5o_info_t field values + meta_size%attr%index_size and meta_size%attr%heap_size. + + (MSB, 2018/1/8, HDFFV-10443) + + + Tools + ----- + - + + High-Level APIs: + ------ + - + + Fortran High-Level APIs: + ------ + - + + Documentation + ------------- + - + + F90 APIs + -------- + - + + C++ APIs + -------- + - + + Testing + ------- + - Fixed a test failure in testpar/t_dset.c caused by + the test trying to use the parallel filters feature + on MPI-2 implementations. + + (JTH, 2019/2/7) + +Bug Fixes since HDF5-1.10.2 release +================================== + + Library + ------- + - Java HDF5LibraryException class + + The error minor and major values would be lost after the + constructor executed. + + Created two local class variables to hold the values obtained during + execution of the constructor. Refactored the class functions to retrieve + the class values rather then calling the native functions. + The native functions were renamed and called only during execution + of the constructor. + Added error checking to calling class constructors in JNI classes. + + (ADB - 2018/08/06, HDFFV-10544) + + - Added checks of the defined MPI_VERSION to guard against usage of + MPI-3 functions in the Parallel Compression and "big Parallel I/O" + features when HDF5 is built with MPI-2. Previously, the configure + step would pass but the build itself would fail when it could not + locate the MPI-3 functions used. + + As a result of these new checks, HDF5 can again be built with MPI-2, + but the Parallel Compression feature will be disabled as it relies + on the MPI-3 functions used. + + (JTH - 2018/08/02, HDFFV-10512) + + - User's patches: CVEs + + The following patches have been applied: + + CVE-2018-11202 - NULL pointer dereference was discovered in + H5S_hyper_make_spans in H5Shyper.c (HDFFV-10476) + https://security-tracker.debian.org/tracker/CVE-2018-11202 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11202 + + CVE-2018-11203 - A division by zero was discovered in + H5D__btree_decode_key in H5Dbtree.c (HDFFV-10477) + https://security-tracker.debian.org/tracker/CVE-2018-11203 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11203 + + CVE-2018-11204 - A NULL pointer dereference was discovered in + H5O__chunk_deserialize in H5Ocache.c (HDFFV-10478) + https://security-tracker.debian.org/tracker/CVE-2018-11204 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11204 + + CVE-2018-11206 - An out of bound read was discovered in + H5O_fill_new_decode and H5O_fill_old_decode in H5Ofill.c + (HDFFV-10480) + https://security-tracker.debian.org/tracker/CVE-2018-11206 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11206 + + CVE-2018-11207 - A division by zero was discovered in + H5D__chunk_init in H5Dchunk.c (HDFFV-10481) + https://security-tracker.debian.org/tracker/CVE-2018-11207 + https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11207 + + (BMR - 2018/7/22, PR#s: 1134 and 1139, + HDFFV-10476, HDFFV-10477, HDFFV-10478, HDFFV-10480, HDFFV-10481) + + - H5Adelete + + H5Adelete failed when deleting the last "large" attribute that + is stored densely via fractal heap/v2 b-tree. + + After removing the attribute, update the ainfo message. If the + number of attributes goes to zero, remove the message. + + (VC - 2018/07/20, HDFFV-9277) + + - A bug was discovered in the parallel library which caused partial + parallel reads of filtered datasets to return incorrect data. The + library used the incorrect dataspace for each chunk read, causing + the selection used in each chunk to be wrong. + + The bug was not caught during testing because all of the current + tests which do parallel reads of filtered data read all of the data + using an H5S_ALL selection. Several tests were added which exercise + partial parallel reads. + + (JTH - 2018/07/16, HDFFV-10467) + + - A bug was discovered in the parallel library which caused parallel + writes of filtered datasets to trigger an assertion failure in the + file free space manager. + + This occurred when the filter used caused chunks to repeatedly shrink + and grow over the course of several dataset writes. The previous chunk + information, such as the size of the chunk and the offset in the file, + was being cached and not updated after each write, causing the next write + to the chunk to retrieve the incorrect cached information and run into + issues when reallocating space in the file for the chunk. + + (JTH - 2018/07/16, HDFFV-10509) + + - A bug was discovered in the parallel library which caused the + H5D__mpio_array_gatherv() function to allocate too much memory. + + When the function is called with the 'allgather' parameter set + to a non-true value, the function will receive data from all MPI + ranks and gather it to the single rank specied by the 'root' + parameter. However, the bug in the function caused memory for + the received data to be allocated on all MPI ranks, not just the + singular rank specified as the receiver. In some circumstances, + this would cause an application to fail due to the large amounts + of memory being allocated. + + (JTH - 2018/07/16, HDFFV-10467) + + - Error checks in h5stat and when decoding messages + + h5stat exited with seg fault/core dumped when + errors are encountered in the internal library. + + Add error checks and --enable-error-stack option to h5stat. + Add range checks when decoding messages: old fill value, old + layout and refcount. + + (VC - 2018/07/11, HDFFV-10333) + + - If an HDF5 file contains a malformed compound datatype with a + suitably large offset, the type conversion code can run off + the end of the type conversion buffer, causing a segmentation + fault. + + This issue was reported to The HDF Group as issue #CVE-2017-17507. + + NOTE: The HDF5 C library cannot produce such a file. This condition + should only occur in a corrupt (or deliberately altered) file + or a file created by third-party software. + + THE HDF GROUP WILL NOT FIX THIS BUG AT THIS TIME + + Fixing this problem would involve updating the publicly visible + H5T_conv_t function pointer typedef and versioning the API calls + which use it. We normally only modify the public API during + major releases, so this bug will not be fixed at this time. + + (DER - 2018/02/26, HDFFV-10356) + + - Inappropriate linking with deprecated MPI C++ libraries + + HDF5 does not define *_SKIP_MPICXX in the public headers, so applications + can inadvertently wind up linking to the deprecated MPI C++ wrappers. + + MPICH_SKIP_MPICXX and OMPI_SKIP_MPICXX have both been defined in H5public.h + so this should no longer be an issue. HDF5 makes no use of the deprecated + MPI C++ wrappers. + + (DER - 2019/09/17, HDFFV-10893) + + + + Configuration + ------------- + - Applied patches to address Cywin build issues + + There were three issues for Cygwin builds: + - Shared libs were not built. + - The -std=c99 flag caused a SIG_SETMASK undeclared error. + - Undefined errors when buildbing test shared libraries. + + Patches to address these issues were received and incorporated in this version. + + (LRK - 2018/07/18, HDFFV-10475) + + - Moved the location of gcc attribute. + + The gcc attribute(no_sanitize), named as the macro HDF_NO_UBSAN, + was located after the function name. Builds with GCC 7 did not + indicate any problem, but GCC 8 issued errors. Moved the + attribute before the function name, as required. + + (ADB - 2018/05/22, HDFFV-10473) + + - Reworked java test suite into individual JUnit tests. + + Testing the whole suite of java unit tests in a single JUnit run + made it difficult to determine actual failures when tests would fail. + Running each file set of tests individually, allows individual failures + to be diagnosed easier. A side benefit is that tests for optional components + of the library can be disabled if not configured. + + (ADB - 2018/05/16, HDFFV-9739) + + - Converted CMake global commands ADD_DEFINITIONS and INCLUDE_DIRECTORIES + to use target_* type commands. This change modernizes the CMake usage + in the HDF5 library. + + In addition, there is the intention to convert to generator expressions, + where possible. The exception is Fortran FLAGS on Windows Visual Studio. + The HDF macros TARGET_C_PROPERTIES and TARGET_FORTRAN_PROPERTIES have + been removed with this change in usage. + + The additional language (C++ and Fortran) checks have also been localized + to only be checked when that language is enabled. + + (ADB - 2018/05/08) + + Performance + ------------- + - + + Fortran + -------- + - + + Tools + ----- + - + + High-Level APIs: + ------ + - + + Fortran High-Level APIs: + ------ + - + + Documentation + ------------- + - + + F90 APIs + -------- + - + + C++ APIs + -------- + - Adding default arguments to existing functions + + Added the following items: + + Two more property list arguments are added to H5Location::createDataSet: + const DSetAccPropList& dapl = DSetAccPropList::DEFAULT + const LinkCreatPropList& lcpl = LinkCreatPropList::DEFAULT + + + One more property list argument is added to H5Location::openDataSet: + const DSetAccPropList& dapl = DSetAccPropList::DEFAULT + + (BMR - 2018/07/21, PR# 1146) + + - Improvement C++ documentation + + Replaced the table in main page of the C++ documentation from mht to htm format + for portability. + + (BMR - 2018/07/17, PR# 1141) + + Testing + ------- + - The dt_arith test failed on IBM Power8 and Power9 machines when testing + conversions from or to long double types, especially when special values + such as infinity or NAN were involved. In some cases the results differed + by extremely small amounts from those on other machines, while some other + tests resulted in segmentation faults. These conversion tests with long + double types have been disabled for ppc64 machines until the problems are + better understood and can be properly addressed. + + (SRL - 2019/01/07, TRILAB-98) + +Supported Platforms +=================== + + Linux 2.6.32-696.16.1.el6.ppc64 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) + #1 SMP ppc64 GNU/Linux g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) + (ostrich) GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) + IBM XL C/C++ V13.1 + IBM XL Fortran V15.1 + + Linux 3.10.0-327.10.1.el7 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (kituo/moohan) Version 4.8.5 20150623 (Red Hat 4.8.5-4) + Version 4.9.3, Version 5.2.0, + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.0.098 Build 20160721 + MPICH 3.1.4 compiled with GCC 4.9.3 + + SunOS 5.11 32- and 64-bit Sun C 5.12 SunOS_sparc + (emu) Sun Fortran 95 8.6 SunOS_sparc + Sun C++ 5.12 SunOS_sparc + + Windows 7 Visual Studio 2015 w/ Intel Fortran 16 (cmake) + + Windows 7 x64 Visual Studio 2013 + Visual Studio 2015 w/ Intel Fortran 16 (cmake) + Visual Studio 2015 w/ Intel C, Fortran 2018 (cmake) + Visual Studio 2015 w/ MSMPI 8 (cmake) + + Windows 10 Visual Studio 2015 w/ Intel Fortran 18 (cmake) + + Windows 10 x64 Visual Studio 2015 w/ Intel Fortran 18 (cmake) + Visual Studio 2017 w/ Intel Fortran 18 (cmake) + + Mac OS X Yosemite 10.10.5 Apple clang/clang++ version 6.1 from Xcode 7.0 + 64-bit gfortran GNU Fortran (GCC) 4.9.2 + (osx1010dev/osx1010test) Intel icc/icpc/ifort version 15.0.3 + + Mac OS X El Capitan 10.11.6 Apple clang/clang++ version 7.3.0 from Xcode 7.3 + 64-bit gfortran GNU Fortran (GCC) 5.2.0 + (osx1011dev/osx1011test) Intel icc/icpc/ifort version 16.0.2 + + Mac OS Sierra 10.12.6 Apple LLVM version 8.1.0 (clang/clang++-802.0.42) + 64-bit gfortran GNU Fortran (GCC) 7.1.0 + (swallow/kite) Intel icc/icpc/ifort version 17.0.2 + + +Tested Configuration Features Summary +===================================== + + In the tables below + y = tested + n = not tested in this release + C = Cluster + W = Workstation + x = not working in this release + dna = does not apply + ( ) = footnote appears below second table + <blank> = testing incomplete on this feature or platform + +Platform C F90/ F90 C++ zlib SZIP + parallel F2003 parallel +Solaris2.11 32-bit n y/y n y y y +Solaris2.11 64-bit n y/n n y y y +Windows 7 y y/y n y y y +Windows 7 x64 y y/y y y y y +Windows 7 Cygwin n y/n n y y y +Windows 7 x64 Cygwin n y/n n y y y +Windows 10 y y/y n y y y +Windows 10 x64 y y/y n y y y +Mac OS X Mountain Lion 10.8.5 64-bit n y/y n y y y +Mac OS X Mavericks 10.9.5 64-bit n y/y n y y ? +Mac OS X Yosemite 10.10.5 64-bit n y/y n y y ? +Mac OS X El Capitan 10.11.6 64-bit n y/y n y y ? +CentOS 6.7 Linux 2.6.18 x86_64 GNU n y/y n y y y +CentOS 6.7 Linux 2.6.18 x86_64 Intel n y/y n y y y +CentOS 6.7 Linux 2.6.32 x86_64 PGI n y/y n y y y +CentOS 7.2 Linux 2.6.32 x86_64 GNU y y/y y y y y +CentOS 7.2 Linux 2.6.32 x86_64 Intel n y/y n y y y +Linux 2.6.32-573.18.1.el6.ppc64 n y/n n y y y + + +Platform Shared Shared Shared Thread- + C libs F90 libs C++ libs safe +Solaris2.11 32-bit y y y y +Solaris2.11 64-bit y y y y +Windows 7 y y y y +Windows 7 x64 y y y y +Windows 7 Cygwin n n n y +Windows 7 x64 Cygwin n n n y +Windows 10 y y y y +Windows 10 x64 y y y y +Mac OS X Mountain Lion 10.8.5 64-bit y n y y +Mac OS X Mavericks 10.9.5 64-bit y n y y +Mac OS X Yosemite 10.10.5 64-bit y n y y +Mac OS X El Capitan 10.11.6 64-bit y n y y +CentOS 6.7 Linux 2.6.18 x86_64 GNU y y y y +CentOS 6.7 Linux 2.6.18 x86_64 Intel y y y n +CentOS 6.7 Linux 2.6.32 x86_64 PGI y y y n +CentOS 7.2 Linux 2.6.32 x86_64 GNU y y y n +CentOS 7.2 Linux 2.6.32 x86_64 Intel y y y n +Linux 2.6.32-573.18.1.el6.ppc64 y y y n + +Compiler versions for each platform are listed in the preceding +"Supported Platforms" table. + + +More Tested Platforms +===================== +The following platforms are not supported but have been tested for this release. + + Linux 2.6.32-573.22.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (mayll/platypus) Version 4.4.7 20120313 + Version 4.9.3, 5.3.0, 6.2.0 + PGI C, Fortran, C++ for 64-bit target on + x86-64; + Version 17.10-0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.4.196 Build 20170411 + MPICH 3.1.4 compiled with GCC 4.9.3 + + Linux 3.10.0-327.18.2.el7 GNU C (gcc) and C++ (g++) compilers + #1 SMP x86_64 GNU/Linux Version 4.8.5 20150623 (Red Hat 4.8.5-4) + (jelly) with NAG Fortran Compiler Release 6.1(Tozai) + GCC Version 7.1.0 + OpenMPI 3.0.0-GCC-7.2.0-2.29 + Intel(R) C (icc) and C++ (icpc) compilers + Version 17.0.0.098 Build 20160721 + with NAG Fortran Compiler Release 6.1(Tozai) + + Linux 3.10.0-327.10.1.el7 MPICH 3.2 compiled with GCC 5.3.0 + #1 SMP x86_64 GNU/Linux + (moohan) + + Linux 2.6.32-573.18.1.el6.ppc64 MPICH mpich 3.1.4 compiled with + #1 SMP ppc64 GNU/Linux IBM XL C/C++ for Linux, V13.1 + (ostrich) and IBM XL Fortran for Linux, V15.1 + + Debian 8.4 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1 x86_64 GNU/Linux + gcc, g++ (Debian 4.9.2-10) 4.9.2 + GNU Fortran (Debian 4.9.2-10) 4.9.2 + (cmake and autotools) + + Fedora 24 4.7.2-201.fc24.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux + gcc, g++ (GCC) 6.1.1 20160621 + (Red Hat 6.1.1-3) + GNU Fortran (GCC) 6.1.1 20160621 + (Red Hat 6.1.1-3) + (cmake and autotools) + + Ubuntu 16.04.1 4.4.0-38-generic #57-Ubuntu SMP x86_64 GNU/Linux + gcc, g++ (Ubuntu 5.4.0-6ubuntu1~16.04.2) + 5.4.0 20160609 + GNU Fortran (Ubuntu 5.4.0-6ubuntu1~16.04.2) + 5.4.0 20160609 + (cmake and autotools) + + +Known Problems +============== + CMake files do not behave correctly with paths containing spaces. + Do not use spaces in paths because the required escaping for handling spaces + results in very complex and fragile build files. + ADB - 2019/05/07 + + At present, metadata cache images may not be generated by parallel + applications. Parallel applications can read files with metadata cache + images, but since this is a collective operation, a deadlock is possible + if one or more processes do not participate. + + Known problems in previous releases can be found in the HISTORY*.txt files + in the HDF5 source. Please report any new problems found to + help@hdfgroup.org. + + +CMake vs. Autotools installations +================================= +While both build systems produce similar results, there are differences. +Each system produces the same set of folders on linux (only CMake works +on standard Windows); bin, include, lib and share. Autotools places the +COPYING and RELEASE.txt file in the root folder, CMake places them in +the share folder. + +The bin folder contains the tools and the build scripts. Additionally, CMake +creates dynamic versions of the tools with the suffix "-shared". Autotools +installs one set of tools depending on the "--enable-shared" configuration +option. + build scripts + ------------- + Autotools: h5c++, h5cc, h5fc + CMake: h5c++, h5cc, h5hlc++, h5hlcc + +The include folder holds the header files and the fortran mod files. CMake +places the fortran mod files into separate shared and static subfolders, +while Autotools places one set of mod files into the include folder. Because +CMake produces a tools library, the header files for tools will appear in +the include folder. + +The lib folder contains the library files, and CMake adds the pkgconfig +subfolder with the hdf5*.pc files used by the bin/build scripts created by +the CMake build. CMake separates the C interface code from the fortran code by +creating C-stub libraries for each Fortran library. In addition, only CMake +installs the tools library. The names of the szip libraries are different +between the build systems. + +The share folder will have the most differences because CMake builds include +a number of CMake specific files for support of CMake's find_package and support +for the HDF5 Examples CMake project. + diff --git a/release_docs/HISTORY-1_12.txt b/release_docs/HISTORY-1_12.txt new file mode 100644 index 0000000..6d0c1e2 --- /dev/null +++ b/release_docs/HISTORY-1_12.txt @@ -0,0 +1,628 @@ +HDF5 History +============ + +This file contains development history of the HDF5 1.12 branch + +01. Release Information for hdf5-1.12.0 + +[Search on the string '%%%%' for section breaks of each release.] + +%%%%1.12.0%%%% + +HDF5 version 1.12.0 released on 2020-02-28 +================================================================================ + + +INTRODUCTION + +This document describes the new features introduced in the HDF5 1.12.0 release. +It contains information on the platforms tested and known problems in this +release. For more details check the HISTORY*.txt files in the HDF5 source. + +Note that documentation in the links below will be updated at the time of the +release. + +Links to HDF5 documentation can be found on The HDF5 web page: + + https://portal.hdfgroup.org/display/HDF5/HDF5 + +The official HDF5 releases can be obtained from: + + https://www.hdfgroup.org/downloads/hdf5/ + +More information about the new features can be found at: + + https://portal.hdfgroup.org/display/HDF5/New+Features+in+HDF5+Release+1.12 + +If you have any questions or comments, please send them to the HDF Help Desk: + + help@hdfgroup.org + + +CONTENTS + +- New Features +- Support for new platforms and languages +- Bug Fixes since HDF5-1.12.0-alpha1 +- Major Bug Fixes since HDF5-1.10.0 +- Supported Platforms +- Tested Configuration Features Summary +- More Tested Platforms +- Known Problems +- CMake vs. Autotools installations + + +New Features +============ + + Configuration: + ------------- + - Added test script for file size compare + + If CMake minimum version is at least 3.14, the fileCompareTest.cmake + script will compare file sizes. + + (ADB - 2020/02/24, HDFFV-11036) + + - Update CMake minimum version to 3.12 + + Updated CMake minimum version to 3.12 and added version checks + for Windows features. + + (ADB - 2020/02/05, TRILABS-142) + + - Fixed CMake include properties for Fortran libraries + + Corrected the library properties for Fortran to use the + correct path for the Fortran module files. + + (ADB - 2020/02/04, HDFFV-11012) + + - Added common warnings files for gnu and intel + + Added warnings files to use one common set of flags + during configure for both autotools and CMake build + systems. The initial implementation only affects a + general set of flags for gnu and intel compilers. + + (ADB - 2020/01/17) + + - Added new options to CMake for control of testing + + Added CMake options (default ON); + HDF5_TEST_SERIAL AND/OR HDF5_TEST_PARALLEL + combined with: + HDF5_TEST_TOOLS + HDF5_TEST_EXAMPLES + HDF5_TEST_SWMR + HDF5_TEST_FORTRAN + HDF5_TEST_CPP + HDF5_TEST_JAVA + + (ADB - 2020/01/15, HDFFV-11001) + + - Added Clang sanitizers to CMake for analyzer support if compiler is clang. + + Added CMake code and files to execute the Clang sanitizers if + HDF5_ENABLE_SANITIZERS is enabled and the USE_SANITIZER option + is set to one of the following: + Address + Memory + MemoryWithOrigins + Undefined + Thread + Leak + 'Address;Undefined' + + (ADB - 2019/12/12, TRILAB-135) + + - Update CMake for VS2019 support + + CMake added support for VS2019 in version 3.15. Changes to the CMake + generator setting required changes to scripts. Also updated version + references in CMake files as necessary. + + (ADB - 2019/11/18, HDFFV-10962) + + + Library: + -------- + - Refactored public exposure of haddr_t type in favor of "object tokens" + + To better accommodate HDF5 VOL connectors where "object addresses in a file" + may not make much sense, the following changes were made to the library: + + * Introduced new H5O_token_t "object token" type, which represents a + unique and permanent identifier for referencing an HDF5 object within + a container; these "object tokens" are meant to replace object addresses. + Along with the new type, a new H5Oopen_by_token API call was introduced + to open an object by a token, similar to how object addresses were + previously used with H5Oopen_by_addr. + + * Introduced new H5Lget_info2, H5Lget_info_by_idx2, H5Literate2, H5Literate_by_name2, + H5Lvisit2 and H5Lvisit_by_name2 API calls, along with their associated H5L_info2_t + struct and H5L_iterate2_t callback function, which work with the newly-introduced + object tokens, instead of object addresses. The original functions have been + renamed to version 1 functions and are deprecated in favor of the new version 2 + functions. The H5L_info_t and H5L_iterate_t types have been renamed to version 1 + types and are now deprecated in favor of their version 2 counterparts. For each of + the functions and types, compatibility macros take place of the original symbols. + + * Introduced new H5Oget_info3, H5Oget_info_by_name3, H5Oget_info_by_idx3, + H5Ovisit3 and H5Ovisit_by_name3 API calls, along with their associated H5O_info2_t + struct and H5O_iterate2_t callback function, which work with the newly-introduced + object tokens, instead of object addresses. The version 2 functions are now + deprecated in favor of the version 3 functions. The H5O_info_t and H5O_iterate_t + types have been renamed to version 1 types and are now deprecated in favor of their + version 2 counterparts. For each, compatibility macros take place of the original + symbols. + + * Introduced new H5Oget_native_info, H5Oget_native_info_by_name and + H5Oget_native_info_by_idx API calls, along with their associated H5O_native_info_t + struct, which are used to retrieve the native HDF5 file format-specific information + about an object. This information (such as object header info and B-tree/heap info) + has been removed from the new H5O_info2_t struct so that the more generic + H5Oget_info(_by_name/_by_idx)3 routines will not try to retrieve it for non-native + VOL connectors. + + * Added new H5Otoken_cmp, H5Otoken_to_str and H5Otoken_from_str routines to compare + two object tokens, convert an object token into a nicely-readable string format and + to convert an object token string back into a real object token, respectively. + + (DER, QAK, JTH - 2020/01/16) + + - Virtual Object Layer (VOL) + + In this major HDF5 release we introduce HDF5 Virtual Object Layer (VOL). + VOL is an abstraction layer within the HDF5 library that enables different + methods for accessing data and objects that conform to the HDF5 data model. + The VOL layer intercepts all HDF5 API calls that potentially modify data + on disk and forwards those calls to a plugin "object driver". The data on + disk can be a different format than the HDF5 format. For more information + about VOL we refer the reader to the following documents (under review): + + VOL HDF5 APIs + https://portal.hdfgroup.org/display/HDF5/Virtual+Object++Layer + + VOL Documentation + https://bitbucket.hdfgroup.org/projects/HDFFV/repos/hdf5doc/browse/RFCs/HDF5/VOL + + Repository with VOL plugins + https://bitbucket.hdfgroup.org/projects/HDF5VOL + + - Enhancements to HDF5 References + + HDF5 references were extended to support attributes, and object and dataset + selections that reside in another HDF5 file. For more information including + a list of new APIs, see + + https://portal.hdfgroup.org/display/HDF5/Update+to+References + + - Add new public function H5Sselect_adjust. + + This function shifts a dataspace selection by a specified logical offset + within the dataspace extent. This can be useful for VOL developers to + implement chunked datasets. + + (NAF - 2019/11/18) + + - Add new public function H5Sselect_project_intersection. + + This function computes the intersection between two dataspace selections + and projects that intersection into a third selection. This can be useful + for VOL developers to implement chunked or virtual datasets. + + (NAF - 2019/11/13, ID-148) + + - Add new public function H5VLget_file_type. + + This function returns a datatype equivalent to the supplied datatype but + with the location set to be in the file. This datatype can then be used + with H5Tconvert to convert data between file and in-memory representation. + This funcition is intended for use only by VOL connector developers. + + (NAF - 2019/11/08, ID-127) + + - New S3 and HDFS Virtual File Drivers (VFDs) + + This release has two new VFDs. The S3 VFD allows accessing HDF5 files on + AWS S3 buckets. HDFS VFD allows accessing HDF5 files stored on Apache HDFS. + See https://portal.hdfgroup.org/display/HDF5/Virtual+File+Drivers+-+S3+and+HDFS + for information on enabling those drivers and using those APIs. + + Below are specific instructions for enabling S3 VFD on Windows: + + Fix windows requirements and java tests. Windows requires CMake 3.13. + - Install openssl library (with dev files); + from "Shining Light Productions". msi package preferred. + - PATH should have been updated with the installation dir. + - set ENV variable OPENSSL_ROOT_DIR to the installation dir. + - set ENV variable OPENSSL_CONF to the cfg file, likely %OPENSSL_ROOT_DIR%\bin\openssl.cfg + - Install libcurl library (with dev files); + - download the latest released version using git: https://github.com/curl/curl.git + - Open a Visual Studio Command prompt + - change to the libcurl root folder + - run the "buildconf.bat" batch file + - change to the winbuild directory + - nmake /f Makefile.vc mode=dll MACHINE=x64 + - copy libcurl-vc-x64-release-dll-ipv6-sspi-winssl dir to C:\curl (installation dir) + - set ENV variable CURL_ROOT to C:\curl (installation dir) + - update PATH ENV variable to %CURL_ROOT%\bin (installation bin dir). + - the aws credentials file should be in %USERPROFILE%\.aws folder + - set the ENV variable HDF5_ROS3_TEST_BUCKET_URL to the s3 url for the + s3 bucket containing the HDF5 files to be accessed. + + FORTRAN Library: + ---------------- + - Added new Fortran parameters: + + H5F_LIBVER_ERROR_F + H5F_LIBVER_NBOUNDS_F + H5F_LIBVER_V18_F + H5F_LIBVER_V110_F + H5F_LIBVER_V112_F + + - Added new Fortran API: h5pget_libver_bounds_f + + (MSB - 2020/02/11, HDFFV-11018) + + Java Library: + ---------------- + - Added ability to test java library with VOLs. + + Created new CMake script that combines the java and vol test scripts. + + (ADB - 2020/02/03, HDFFV-10996) + + - Tests fail for non-English locale. + + In the JUnit tests with a non-English locale, only the part before + the decimal comma is replaced by XXXX and this leads to a comparison + error. Changed the regex for the Time substitution. + + (ADB - 2020/01/09, HDFFV-10995) + + + Tools: + ------ + - h5diff was updated to use the new reference APIs. + + h5diff uses the new reference APIs to compare references. + Attribute references can also be compared. + + (ADB - 2019/12/19, HDFFV-10980) + + - h5dump and h5ls were updated to use the new reference APIs. + + The tools library now use the new reference APIs to inspect a + file. Also the DDL spec was updated to reflect the format + changes produced with the new APIs. The export API and support + functions in the JNI were updated to match. + + + Other improvements and changes: + + - Hyperslab selection code was reworked to improve performance, getting more + than 10x speedup in some cases. + + - The HDF5 Library was enhanced to open files with Unicode names on Windows. + + - Deprecated H5Dvlen_reclaim() and replaced it with H5Treclaim(). + This routine is meant to be used when resources are internally allocated + when reading data, i.e. when using either vlen or new reference types. + This is applicable to both attribute and dataset reads. + + - h5repack was fixed to repack datasets with external storage + to other types of storage. + + +Support for new platforms, languages and compilers. +======================================= + - Added spectrum-mpi with clang, gcc and xl compilers on Linux 3.10.0 + - Added OpenMPI 3.1 and 4.0 with clang, gcc and Intel compilers on Linux 3.10.0 + - Added cray-mpich/PrgEnv with gcc and Intel compilers on Linux 4.14.180 + - Added spectrum mpi with clang, gcc and xl compilers on Linux 4.14.0 + + +Bug Fixes since HDF5-1.12.0-alpha1 release +========================================== + Library + ------- + - Improved performance when creating a large number of small datasets by + retrieving default property values from the API context instead of doing + skip list searches. + + (CJH - 2019/12/10, HDFFV-10658) + + - Fixed user-created data access properties not existing in the property list + returned by H5Dget_access_plist. Thanks to Steven Varga for submitting a + reproducer and a patch. + + (CJH - 2019/12/09, HDFFV-10934) + + - Fixed an assertion failure in the parallel library when collectively + filling chunks. As it is required that chunks be written in + monotonically non-decreasing order of offset in the file, this assertion + was being triggered when the list of chunk file space allocations being + passed to the collective chunk filling routine was not sorted according + to this particular requirement. + + The addition of a sort of the out of order chunks trades a bit of + performance for the elimination of this assertion and of any complaints + from MPI implementations about the file offsets used being out of order. + + (JTH - 2019/10/07, HDFFV-10792) + + FORTRAN library: + ---------------- + + - Corrected INTERFACE INTENT(IN) to INTENT(OUT) for buf_size in h5fget_file_image_f. + + (MSB - 2020/2/18, HDFFV-11029) + + Java Library: + ---------------- + - Added ability to test java library with VOLs. + + Created new CMake script that combines the java and vol test scripts. + + (ADB - 2020/02/03, HDFFV-10996) + + - Tests fail for non-English locale. + + In the JUnit tests with a non-English locale, only the part before + the decimal comma is replaced by XXXX and this leads to a comparison + error. Changed the regex for the Time substitution. + + (ADB - 2020/01/09, HDFFV-10995) + + Tools: + ------ + - h5repack was fixed to repack the reference attributes properly. + The code line that checks if the update of reference inside a compound + datatype is misplaced outside the code block loop that carries out the + check. In consequence, the next attribute that is not the reference + type was repacked again as the reference type and caused the failure of + repacking. The fix is to move the corresponding code line to the correct + code block. + + (KY -2020/02/10, HDFFV-11014) + + - h5diff was updated to use the new reference APIs. + + h5diff uses the new reference APIs to compare references. + Attribute references can also be compared. + + (ADB - 2019/12/19, HDFFV-10980) + + - h5dump and h5ls were updated to use the new reference APIs. + + The tools library now use the new reference APIs to inspect a + file. Also the DDL spec was updated to reflect the format + changes produced with the new APIs. The export API and support + functions in the JNI were updated to match. + + (ADB - 2019/12/06, HDFFV-10876 and HDFFV-10877) + + +Major Bug Fixes since HDF5-1.10.0 release +========================================= + + - For major bug fixes please see HISTORY-1_10_0-1_12_0.txt file + + +Supported Platforms +=================== + + Linux 2.6.32-696.16.1.el6.ppc64 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) + #1 SMP ppc64 GNU/Linux g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) + (ostrich) GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) + IBM XL C/C++ V13.1 + IBM XL Fortran V15.1 + + Linux 3.10.0-327.10.1.el7 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (kituo/moohan) Version 4.8.5 20150623 (Red Hat 4.8.5-4) + Version 4.9.3, 5.2.0, 7.1.0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.0.098 Build 20160721 + MPICH 3.1.4 + + Linux-3.10.0- spectrum-mpi/rolling-release with cmake>3.10 and + 862.14.4.1chaos.ch6.ppc64le clang/3.9,8.0 + #1 SMP ppc64le GNU/Linux gcc/7.3 + (ray) xl/2016,2019 + + Linux 3.10.0- openmpi/3.1,4.0 with cmake>3.10 and + 957.12.2.1chaos.ch6.x86_64 clang 5.0 + #1 SMP x86_64 GNU/Linux gcc/7.3,8.2 + (serrano) intel/17.0,18.0/19.0 + + Linux 3.10.0- openmpi/3.1/4.0 with cmake>3.10 and + 1062.1.1.1chaos.ch6.x86_64 clang/3.9,5.0,8.0 + #1 SMP x86_64 GNU/Linux gcc/7.3,8.1,8.2 + (chama,quartz) intel/16.0,18.0,19.0 + + Linux 4.4.180-94.100-default cray-mpich/7.7.6 with PrgEnv-*/6.0.5, cmake>3.10 and + #1 SMP x86_64 GNU/Linux gcc/7.2.0,8.2.0 + (mutrino) intel/17.0,18.0 + + Linux 4.14.0- spectrum-mpi/rolling-release with cmake>3.10 and + 49.18.1.bl6.ppc64le clang/6.0,8.0 + #1 SMP ppc64le GNU/Linux gcc/7.3 + (lassen) xl/2019 + + SunOS 5.11 32- and 64-bit Sun C 5.12 SunOS_sparc + (emu) Sun Fortran 95 8.6 SunOS_sparc + Sun C++ 5.12 SunOS_sparc + + Windows 7 x64 Visual Studio 2015 w/ Intel C, Fortran 2018 (cmake) + Visual Studio 2015 w/ MSMPI 10 (cmake) + + Windows 10 x64 Visual Studio 2015 w/ Intel Fortran 18 (cmake) + Visual Studio 2017 w/ Intel Fortran 19 (cmake) + Visual Studio 2019 w/ Intel Fortran 19 (cmake) + + macOS 10.13.6 High Sierra Apple LLVM version 10.0.0 (clang/clang++-1000.10.44.4) + 64-bit gfortran GNU Fortran (GCC) 6.3.0 + (bear) Intel icc/icpc/ifort version 19.0.4 + + macOS 10.14.6 Mohave Apple LLVM version 10.0.1 (clang/clang++-1001.0.46.4) + 64-bit gfortran GNU Fortran (GCC) 6.3.0 + (bobcat) Intel icc/icpc/ifort version 19.0.4 + + +Tested Configuration Features Summary +===================================== + + In the tables below + y = tested + n = not tested in this release + C = Cluster + W = Workstation + x = not working in this release + dna = does not apply + ( ) = footnote appears below second table + <blank> = testing incomplete on this feature or platform + +Platform C F90/ F90 C++ zlib SZIP + parallel F2003 parallel +SunOS 5.11 32-bit n y/y n y y y +SunOS 5.11 64-bit n y/n n y y y +Windows 7 y y/y n y y y +Windows 7 x64 y y/y y y y y +Windows 7 Cygwin n y/n n y y y +Windows 7 x64 Cygwin n y/n n y y y +Windows 10 y y/y n y y y +Windows 10 x64 y y/y n y y y +macOS 10.13.6 64-bit n y/y n y y ? +macOS 10.14.6 64-bit n y/y n y y ? +CentOS 6.7 Linux 2.6.18 x86_64 GNU n y/y n y y y +CentOS 6.7 Linux 2.6.18 x86_64 Intel n y/y n y y y +CentOS 6.7 Linux 2.6.32 x86_64 PGI n y/y n y y y +CentOS 7.2 Linux 2.6.32 x86_64 GNU y y/y y y y y +CentOS 7.2 Linux 2.6.32 x86_64 Intel n y/y n y y y +Linux 2.6.32-573.18.1.el6.ppc64 n y/n n y y y + + +Platform Shared Shared Shared Thread- + C libs F90 libs C++ libs safe +SunOS 5.11 32-bit y y y y +SunOS 5.11 64-bit y y y y +Windows 7 y y y y +Windows 7 x64 y y y y +Windows 7 Cygwin n n n y +Windows 7 x64 Cygwin n n n y +Windows 10 y y y y +Windows 10 x64 y y y y +macOS 10.13.6 64-bit y n y y +macOS 10.14.6 64-bit y n y y +CentOS 6.7 Linux 2.6.18 x86_64 GNU y y y y +CentOS 6.7 Linux 2.6.18 x86_64 Intel y y y n +CentOS 6.7 Linux 2.6.32 x86_64 PGI y y y n +CentOS 7.2 Linux 2.6.32 x86_64 GNU y y y n +CentOS 7.2 Linux 2.6.32 x86_64 Intel y y y n +Linux 2.6.32-573.18.1.el6.ppc64 y y y n + +Compiler versions for each platform are listed in the preceding +"Supported Platforms" table. + + +More Tested Platforms +===================== +The following platforms are not supported but have been tested for this release. + + Linux 2.6.32-573.22.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (mayll/platypus) Version 4.4.7 20120313 + Version 4.9.3, 5.3.0, 6.2.0 + PGI C, Fortran, C++ for 64-bit target on + x86-64; + Version 17.10-0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.4.196 Build 20170411 + MPICH 3.1.4 compiled with GCC 4.9.3 + + Linux 3.10.0-327.18.2.el7 GNU C (gcc) and C++ (g++) compilers + #1 SMP x86_64 GNU/Linux Version 4.8.5 20150623 (Red Hat 4.8.5-4) + (jelly) with NAG Fortran Compiler Release 6.1(Tozai) + GCC Version 7.1.0 + OpenMPI 3.0.0-GCC-7.2.0-2.29 + Intel(R) C (icc) and C++ (icpc) compilers + Version 17.0.0.098 Build 20160721 + with NAG Fortran Compiler Release 6.1(Tozai) + PGI C (pgcc), C++ (pgc++), Fortran (pgf90) + compilers: + Version 18.4, 19.4 + MPICH 3.3 + OpenMPI 2.1.5, 3.1.3, 4.0.0 + + Fedora30 5.3.11-200.fc30.x86_64 + #1 SMP x86_64 GNU/Linux GNU gcc (GCC) 9.2.1 20190827 (Red Hat 9.2.1 20190827) + GNU Fortran (GCC) 9.2.1 20190827 (Red Hat 9.2.1 20190827) + (cmake and autotools) + + Mac OS X El Capitan 10.11.6 Apple LLVM version 7.3.0 (clang/clang++-703.0.29) + 64-bit gfortran GNU Fortran (GCC) 5.2.0 + (osx1011dev/osx1011test) Intel icc/icpc/ifort version 16.0.2 + + macOS 10.12.6 Sierra Apple LLVM version 9.0.0 (clang/clang++-900.0.39.2) + 64-bit gfortran GNU Fortran (GCC) 7.4.0 + (kite) Intel icc/icpc/ifort version 17.0.8 + + +Known Problems +============== + CMake files do not behave correctly with paths containing spaces. + Do not use spaces in paths because the required escaping for handling spaces + results in very complex and fragile build files. + ADB - 2019/05/07 + + At present, metadata cache images may not be generated by parallel + applications. Parallel applications can read files with metadata cache + images, but since this is a collective operation, a deadlock is possible + if one or more processes do not participate. + + Known problems in previous releases can be found in the HISTORY*.txt files + in the HDF5 source, and in the HDF5 Jira database, available at + https://jira.hdfgroup.org/. Please register at https://www.hdfgroup.org to + create a free account for accessing the Jira database. Please report any + new problems found to help@hdfgroup.org. + + +CMake vs. Autotools installations +================================= +While both build systems produce similar results, there are differences. +Each system produces the same set of folders on linux (only CMake works +on standard Windows); bin, include, lib and share. Autotools places the +COPYING and RELEASE.txt file in the root folder, CMake places them in +the share folder. + +The bin folder contains the tools and the build scripts. Additionally, CMake +creates dynamic versions of the tools with the suffix "-shared". Autotools +installs one set of tools depending on the "--enable-shared" configuration +option. + build scripts + ------------- + Autotools: h5c++, h5cc, h5fc + CMake: h5c++, h5cc, h5hlc++, h5hlcc + +The include folder holds the header files and the fortran mod files. CMake +places the fortran mod files into separate shared and static subfolders, +while Autotools places one set of mod files into the include folder. Because +CMake produces a tools library, the header files for tools will appear in +the include folder. + +The lib folder contains the library files, and CMake adds the pkgconfig +subfolder with the hdf5*.pc files used by the bin/build scripts created by +the CMake build. CMake separates the C interface code from the fortran code by +creating C-stub libraries for each Fortran library. In addition, only CMake +installs the tools library. The names of the szip libraries are different +between the build systems. + +The share folder will have the most differences because CMake builds include +a number of CMake specific files for support of CMake's find_package and support +for the HDF5 Examples CMake project. + diff --git a/release_docs/HISTORY-1_8.txt b/release_docs/HISTORY-1_8.txt index e6df15b..da3d849 100644 --- a/release_docs/HISTORY-1_8.txt +++ b/release_docs/HISTORY-1_8.txt @@ -3,6 +3,10 @@ HDF5 History This file contains development history of HDF5 1.8 branch +23. Release Information for hdf5-1.8.21 +22. Release Information for hdf5-1.8.20 +21. Release Information for hdf5-1.8.19 +20. Release Information for hdf5-1.8.18 19. Release Information for hdf5-1.8.17 18. Release Information for hdf5-1.8.16 17. Release Information for hdf5-1.8.15 @@ -25,6 +29,2097 @@ This file contains development history of HDF5 1.8 branch [Search on the string '%%%%' for section breaks of each release.] +%%%%1.8.21%%%% + + +HDF5 version 1.8.21 released on 2018-06-04 +================================================================================ + +INTRODUCTION +============ + +This document describes the differences between HDF5-1.8.20 and +HDF5-1.8.21, and contains information on the platforms tested and +known problems in HDF5-1.8.21. +For more details, see the files HISTORY-1_0-1_8_0_rc3.txt +and HISTORY-1_8.txt in the release_docs/ directory of the HDF5 source. + +Links to the HDF5 1.8.21 source code, documentation, and additional materials +can be found on the HDF5 web page at: + + https://support.hdfgroup.org/HDF5/ + +The HDF5 1.8.21 release can be obtained from: + + https://support.hdfgroup.org/HDF5/release/obtain518.html + +User documentation for 1.8.21 can be accessed directly at this location: + + https://support.hdfgroup.org/HDF5/doc1.8/ + +New features in the HDF5-1.8.x release series, including brief general +descriptions of some new and modified APIs, are described in the "What's New +in 1.8.0?" document: + + https://support.hdfgroup.org/HDF5/doc/ADGuide/WhatsNew180.html + +All new and modified APIs are listed in detail in the "HDF5 Software Changes +from Release to Release" document, in the section "Release 1.8.21 (current +release) versus Release 1.8.20 + + https://support.hdfgroup.org/HDF5/doc1.8/ADGuide/Changes.html + +If you have any questions or comments, please send them to the HDF Help Desk: + + help@hdfgroup.org + + +CONTENTS +======== + +- New Features +- Support for New Platforms, Languages, and Compilers +- Bug Fixes since HDF5-1.8.20 +- Supported Platforms +- Supported Configuration Features Summary +- More Tested Platforms +- Known Problems + + +New Features +============ + + Configuration + ------------- + - CMake + + Change minimum version to 3.10. + + This change removes the need to support a copy of the FindMPI.cmake module, + which has been removed, along with its subfolder in the config/cmake_ext_mod + location. + + (ADB - 2018/03/09) + + - CMake + + Add pkg-config file generation + + Added pkg-config file generation for the C, C++, HL, and HL C++ libraries. + In addition, builds on linux will create h5cXXX scripts that use the pkg-config + files. This is a limited implementation of a script like autotools h5cc. + + (ADB - 2018/03/08, HDFFV-4359) + + - CMake + + Refactor use of CMAKE_BUILD_TYPE for new variable, which understands + the type of generator in use. + + Added new configuration macros to use new HDF_BUILD_TYPE variable. This + variable is set correctly for the type of generator being used for the build. + + (ADB - 2018/01/08, HDFFV-10385, HDFFV-10296) + + C++ API + ------- + - The following C++ API wrappers have been added to class H5Location + + H5Lcreate_soft: + // Creates a soft link from link_name to target_name. + void link(const char *target_name, const char *link_name,...) + void link(const H5std_string& target_name,...) + + + H5Lcreate_hard: + // Creates a hard link from new_name to curr_name. + void link(const char *curr_name, const Group& new_loc,...) + void link(const H5std_string& curr_name, const Group& new_loc,...) + + // Creates a hard link from new_name to curr_name in the same location. + void link(const char *curr_name, const hid_t same_loc,...) + void link(const H5std_string& curr_name, const hid_t same_loc,...) + + Note: previous version CommonFG::link will be deprecated. + + + H5Lcopy: + // Copy an object from a group of file to another. + void copyLink(const char *src_name, const Group& dst,...) + void copyLink(const H5std_string& src_name, const Group& dst,...) + + // Copy an object from a group of file to the same location. + void copyLink(const char *src_name, const char *dst_name,...) + void copyLink(const H5std_string& src_name,...) + + + H5Lmove: + // Rename an object in a group or file to a new location. + void moveLink(const char* src_name, const Group& dst,...) + void moveLink(const H5std_string& src_name, const Group& dst,...) + + // Rename an object in a group or file to the same location. + void moveLink(const char* src_name, const char* dst_name,...) + void moveLink(const H5std_string& src_name,...) + + Note: previous version CommonFG::move will be deprecated. + + + H5Ldelete: + // Removes the specified link from this location. + void unlink(const char *link_name, + const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) + void unlink(const H5std_string& link_name, + const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) + + Note: An additional parameter is added to CommonFG::unlink and it + is moved to H5Location. + + (BMR - 2018/05/11 - HDFFV-10445) + + - New property list subclasses + + Property list subclasses StrCreatPropList, LinkCreatPropList, and + AttrCreatPropList are added for the C property list classes + H5P_STRING_CREATE, H5P_LINK_CREATE, and H5P_ATTRIBUTE_CREATE. + + (BMR - 2018/05/11 - HDFFV-10445) + + - Another argument, LinkCreatPropList& lcpl, is added to the following + functions for the use of link creation property list. + Group createGroup(const char* name, size_t size_hint = 0, + const LinkCreatPropList& lcpl = LinkCreatPropList::DEFAULT) + Group createGroup(const H5std_string& name, size_t size_hint = 0, + const LinkCreatPropList& lcpl = LinkCreatPropList::DEFAULT) + + (BMR - 2018/05/11 - HDFFV-10445) + + + +Support for New Platforms, Languages, and Compilers +=================================================== + + - Added support for Visual Studio 2017 w/ Intel Fortran 18 on Windows 10 x64. + + +Bug Fixes since HDF5-1.8.20 +=========================== + + - If an HDF5 file contains a filter pipeline message with a 'number of + filters' field that exceeds the maximum number of allowed filters, + the error handling code will attempt to dereference a NULL pointer. + + This issue was reported to The HDF Group as issue #CVE-2017-17505. + + NOTE: The HDF5 C library cannot produce such a file. This condition + should only occur in a corrupt (or deliberately altered) file + or a file created by third-party software. + + This problem arose because the error handling code assumed that + the 'number of filters' field implied that a dynamic array of that + size had already been created and that the cleanup code should + iterate over that array and clean up each element's resources. If + an error occurred before the array has been allocated, this will + not be true. + + This has been changed so that the number of filters is set to + zero on errors. Additionally, the filter array traversal in the + error handling code now requires that the filter array not be NULL. + + (DER - 2018/02/06, HDFFV-10354) + + - If an HDF5 file contains a filter pipeline message which contains + a 'number of filters' field that exceeds the actual number of + filters in the message, the HDF5 C library will read off the end of + the read buffer. + + This issue was reported to The HDF Group as issue #CVE-2017-17506. + + NOTE: The HDF5 C library cannot produce such a file. This condition + should only occur in a corrupt (or deliberately altered) file + or a file created by third-party software. + + The problem was fixed by passing the buffer size with the buffer + and ensuring that the pointer cannot be incremented off the end + of the buffer. A mismatch between the number of filters declared + and the actual number of filters will now invoke normal HDF5 + error handling. + + (DER - 2018/02/26, HDFFV-10355) + + - If an HDF5 file contains a malformed compound datatype with a + suitably large offset, the type conversion code can run off + the end of the type conversion buffer, causing a segmentation + fault. + + This issue was reported to The HDF Group as issue #CVE-2017-17507. + + NOTE: The HDF5 C library cannot produce such a file. This condition + should only occur in a corrupt (or deliberately altered) file + or a file created by third-party software. + + THE HDF GROUP WILL NOT FIX THIS BUG AT THIS TIME + + Fixing this problem would involve updating the publicly visible + H5T_conv_t function pointer typedef and versioning the API calls + which use it. We normally only modify the public API during + major releases, so this bug will not be fixed at this time. + + (DER - 2018/02/26, HDFFV-10356) + + - If an HDF5 file contains a malformed compound type which contains + a member of size zero, a division by zero error will occur while + processing the type. + + This issue was reported to The HDF Group as issue #CVE-2017-17508. + + NOTE: The HDF5 C library cannot produce such a file. This condition + should only occur in a corrupt (or deliberately altered) file + or a file created by third-party software. + + Checking for zero before dividing fixes the problem. Instead of the + division by zero, the normal HDF5 error handling is invoked. + + (DER - 2018/02/26, HDFFV-10357) + + - If an HDF5 file contains a malformed symbol table node that declares + it contains more symbols than it actually contains, the library + can run off the end of the metadata cache buffer while processing + the symbol table node. + + This issue was reported to The HDF Group as issue #CVE-2017-17509. + + NOTE: The HDF5 C library cannot produce such a file. This condition + should only occur in a corrupt (or deliberately altered) file + or a file created by third-party software. + + Performing bounds checks on the buffer while processing fixes the + problem. Instead of the segmentation fault, the normal HDF5 error + handling is invoked. + + (DER - 2018/03/12, HDFFV-10358) + + + Configuration + ------------- + - Library + + Moved the location of gcc attribute. + + The gcc attribute(no_sanitize), named as the macro HDF_NO_UBSAN, + was located after the function name. Builds with GCC 7 did not + indicate any problem, but GCC 8 issued errors. Moved the + attribute before the function name, as required. + + (ADB 2018/05/22, HDFFV-10473) + + - CMake + + Update CMake commands configuration. + + A number of improvements were made to the CMake commands. Most + changes simplify usage or eliminate unused constructs. Also, + some changes support better cross-platform support. + + (ADB - 2018/02/01, HDFFV-10398) + + - CMake + + Correct usage of CMAKE_BUILD_TYPE variable. + + The use of the CMAKE_BUILD_TYPE is incorrect for multi-config + generators (Visual Studio and XCode) and is optional for single + config generators. Created a new macro to check + GLOBAL PROPERTY -> GENERATOR_IS_MULTI_CONFIG + Created two new HDF variable, HDF_BUILD_TYPE and HDF_CFG_BUILD_TYPE. + Defaults for these variables is "Release". + + (ADB - 2018/01/10, HDFFV-10385) + + - CMake + + Add replacement of fortran flags if using static CRT. + + Added TARGET_STATIC_CRT_FLAGS call to HDFUseFortran.cmake file in + config/cmake_ext_mod folder. + + (ADB - 2018/01/08, HDFFV-10334) + + + Library + ------- + - Utility function can not handle lowercase Windows drive letters + + Added call to toupper function for drive letter. + + (ADB - 2017/12/18, HDFFV-10307) + + + Tools + ----- + - h5repack + + h5repack changes the chunk parameters when a change of layout is not + specified and a filter is applied. + + HDFFV-10297, HDFFV-10319 reworked code for h5repack and h5diff code + in the tools library. The check for an existing layout was incorrectly + placed into an if block and not executed. The check was moved into + the normal path of the function. + + (ADB - 2018/02/21, HDFFV-10412) + + - h5dump + + the tools library will hide the error stack during file open. + + While this is preferable almost always, there are reasons to enable + display of the error stack when a tool will not open a file. Adding an + optional argument to the --enable-error-stack will provide this use case. + As an optional argument it will not affect the operation of the + --enable-error-stack. h5dump is the only tool to implement this change. + + (ADB - 2018/02/15, HDFFV-10384) + + - h5dump + + h5dump would output an indented blank line in the filters section. + + h5dump overused the h5tools_simple_prefix function, which is a + function intended to account for the data index (x,y,z) option. + Removed the function call for header information. + + (ADB - 2018/01/25, HDFFV-10396) + + - h5repack + + h5repack incorrectly searched internal object table for name. + + h5repack would search the table of objects for a name, if the + name did not match it tried to determine if the name without a + leading slash would match. The logic was flawed! The table + stored names(paths) without a leading slash and did a strstr + of the table path to the name. + The assumption was that if there was a difference of one then + it was a match, however "pressure" would match "/pressure" as + well as "/pressure1", "/pressure2", etc. Changed logic to remove + any leading slash and then do a full compare of the name. + + (ADB - 2018/01/18, HDFFV-10393) + + - h5repack + + h5repack failed to handle command line parameters for customer filters. + + User defined filter parameter conversions would fail when integers + were represented on the command line with character strings + larger than 9 characters. Increased local variable array for storing + the current command line parameter to prevent buffer overflows. + + (ADB - 2018/01/17, HDFFV-10392) + + - h5diff + + h5diff seg faulted if comparing VL strings against fixed strings. + + Reworked solution for HDFFV-8625 and HDFFV-8639. Implemented the check + for string objects of same type in the diff_can_type function by + adding an if(tclass1 == H5T_STRING) block. This "if block" moves the + same check that was added for attributes to this function, which is + used by all object types. This function handles complex type structures. + Also added a new test file in h5diffgentest for testing this issue + and removed the temporary files used in the test scripts. + + (ADB - 2018/01/04, HDFFV-8745) + + + C++ API + ------- + - Removal of memory leaks + + A private function was inadvertently called, causing memory leaks. This + is now fixed. + + (BMR - 2018/04/12 - User reported in email) + + - Changes in exception classes + + Some exception classes are reorganized to reflect the HDF5 object + hierarchy and allow customization. + DataSetIException -> LocationException -> Exception + DataTypeIException -> LocationException -> Exception + GroupIException -> LocationException -> Exception + AttributeIException -> LocationException -> Exception + FileIException -> GroupIException -> LocationException -> Exception + Member functions in H5Location and H5Object now throw specific exceptions + associated with the invoking objects. + + (BMR - 2018/05/11) + + - H5Location::closeObjId is made static + (BMR - 2018/05/11) + + - H5A wrappers in H5Location are removed as they have been in H5Object. + (BMR - 2018/05/11) + + +Supported Platforms +=================== +The following platforms are supported and have been tested for this release. +They are built with the configure process unless specified otherwise. + + Linux 2.6.32-573.22.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (platypus/mayll) Version 4.4.7 20120313 + Versions 4.9.3, 5.3.0, 6.2.0 + PGI C, Fortran, C++ for 64-bit target on + x86-64; + Version 17.10-0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.4.196 Build 20160721 + MPICH 3.1.4 compiled with GCC 4.9.3 + OpenMPI 2.0.1 compiled with GCC 4.9.3 + + Linux 2.6.32-573.18.1.el6 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) + #1 SMP ppc64 GNU/Linux g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) + (ostrich) GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) + IBM XL C/C++ V13.1 + IBM XL Fortran V15.1 + + Linux 3.10.0-327.10.1.el7 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (kituo/moohan/jelly Version 4.8.5 20150623 (Red Hat 4.8.5-4) + Versions 4.9.3, 5.3.0, 6.2.0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.4.196 Build 20170411 + MPICH 3.1.4 compiled with GCC 4.9.3 + NAG Fortran Compiler Release 6.1(Tozai) Build 6116 + + SunOS 5.11 32- and 64-bit Sun C 5.12 SunOS_sparc + (emu) Sun Fortran 95 8.6 SunOS_sparc + Sun C++ 5.12 SunOS_sparc + + Windows 7 Visual Studio 2015 w/ Intel Fortran 16 (cmake) + + Windows 7 x64 Visual Studio 2012 w/ Intel Fortran 15 (cmake) + Visual Studio 2013 w/ Intel Fortran 15 (cmake) + Visual Studio 2015 w/ Intel Fortran 16 (cmake) + Visual Studio 2015 w/ Intel C, Fortran 2017 (cmake) + Visual Studio 2015 w/ MSMPI 8 (cmake) + + Windows 10 Visual Studio 2015 w/ Intel Fortran 16 (cmake) + + Windows 10 x64 Visual Studio 2015 w/ Intel Fortran 16 (cmake) + Visual Studio 2017 w/ Intel Fortran 18 (cmake) + + Mac OS X Mavericks 10.9.5 Apple LLVM version 6.0 (clang-600.0.57) + 64-bit gfortran GNU Fortran (GCC) 4.9.2 + (wren/quail) Intel icc/icpc/ifort version 15.0.3 + + Mac OS X Yosemite 10.10.5 Apple LLVM version 6.1 (clang-602.0.53) + 64-bit gfortran GNU Fortran (GCC) 4.9.2 + (osx1010dev/osx1010test) Intel icc/icpc/ifort version 15.0.3 + + Mac OS X El Capitan 10.11.6 Apple LLVM version 7.3.0 (clang-703.0.29) + 64-bit gfortran GNU Fortran (GCC) 5.2.0 + (VM osx1011dev/osx1011test) Intel icc/icpc/ifort version 16.0.2 + + Mac OS Sierra 10.12.6 Apple LLVM version 8.1 (clang-802.0.42) + 64-bit gfortran GNU Fortran (GCC) 7.1.0 + (kite) Intel icc/icpc/ifort version 17.0.2 + + +Tested Configuration Features Summary +===================================== + + In the tables below + y = tested + n = not tested in this release + C = Cluster + W = Workstation + x = not working in this release + dna = does not apply + ( ) = footnote appears below second table + <blank> = testing incomplete on this feature or platform + +Platform C F90/ F90 C++ zlib SZIP + parallel F2003 parallel +SunOS 5.11 32-bit n y/y n y y y +SunOS 5.11 64-bit n y/y n y y y +Windows 7 y y/y n y y y +Windows 7 x64 y y/y n y y y +Windows 7 Cygwin n y/n n y y y +Windows 7 x64 Cygwin n y/n n y y y +Windows 10 y y/y n y y y +Windows 10 x64 y y/y n y y y +Mac OS X Yosemite 10.10.5 64-bit n y/y n y y y +Mac OS X El Capitan 10.11.6 64-bit n y/y n y y y +Mac OS Sierra 10.12.6 64-bit n y/y n y y y +AIX 6.1 32- and 64-bit n y/n n y y y +CentOS 6.7 Linux 2.6.32 x86_64 GNU y y/y y y y y +CentOS 6.7 Linux 2.6.32 x86_64 Intel n y/y n y y y +CentOS 6.7 Linux 2.6.32 x86_64 PGI n y/y n y y y +CentOS 7.1 Linux 3.10.0 x86_64 GNU y y/y y y y y +CentOS 7.1 Linux 3.10.0 x86_64 Intel n y/y n y y y +Linux 2.6.32-573.18.1.el6.ppc64 n y/n n y y y + +Platform Shared Shared Shared Thread- + C libs F90 libs C++ libs safe +SunOS 5.11 32-bit y y y y +SunOS 5.11 64-bit y y y y +Windows 7 y y y y +Windows 7 x64 y y y y +Windows 7 Cygwin n n n y +Windows 7 x64 Cygwin n n n y +Windows 10 y y y y +Windows 10 x64 y y y y +Mac OS X Yosemite 10.10.5 64-bit y n y y +Mac OS X El Capitan 10.11.6 64-bit y n y y +Mac OS Sierra 10.12.6 64-bit y n y y +AIX 6.1 32- and 64-bit y n n y +CentOS 6.7 Linux 2.6.32 x86_64 GNU y y y y +CentOS 6.7 Linux 2.6.32 x86_64 Intel y y y y +CentOS 6.7 Linux 2.6.32 x86_64 PGI y y y y +CentOS 7.1 Linux 3.10.0 x86_64 GNU y y y y +CentOS 7.1 Linux 3.10.0 x86_64 Intel y y y y +Linux 2.6.32-573.18.1.el6.ppc64 y y y y + +Compiler versions for each platform are listed in the preceding +"Supported Platforms" table. + + +More Tested Platforms +===================== +The following platforms are not supported but have been tested for this release. + + Linux 2.6.32-573.22.1.el6 g95 (GCC 4.0.3 (g95 0.94!) + #1 SMP x86_64 GNU/Linux + (mayll) + + Debian8.4.0 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1 x86_64 GNU/Linux + gcc (Debian 4.9.2-10) 4.9.2 + GNU Fortran (Debian 4.9.2-10) 4.9.2 + (cmake and autotools) + + Fedora24 4.7.2-201.fc24.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux + gcc (GCC) 6.1.1 20160621 (Red Hat 6.1.1-3) + GNU Fortran (GCC) 6.1.1 20160621 (Red Hat 6.1.1-3) + (cmake and autotools) + + CentOS 7.2 3.10.0-327.28.2.el7.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux + gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) + GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) + (cmake and autotools) + + Ubuntu 16.04 4.4.0-38-generic #62-Ubuntu SMP x86_64 GNU/Linux + gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 + GNU Fortran (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 + (cmake and autotools) + + +Known Problems +============== + + The dynamically loaded plugin test libraries require undefined references + to HDF5 functions to be resolved at runtime in order to function properly. + With autotools on CYGWIN this results in build errors, and we have not + found a solution that satisfies both. Therefore the dynamically loaded + plugin tests have been disabled on CYGWIN. + + Mac OS X 10.13 added additional subdirectory structure in .libs for shared + libraries. Consequently "make check" will fail testing java and dynamically + loaded plugin test libraries attempting to copy files from the previous + locations in .libs directories. This will be addressed in the next release + when support for the Mac OS X 10.13 platform is added. + + Known problems in previous releases can be found in the HISTORY*.txt files + in the HDF5 source. Please report any new problems found to + help@hdfgroup.org. + + +%%%%1.8.20%%%% + + +HDF5 version 1.8.20 released on 2017-11-28 +================================================================================ + +INTRODUCTION +============ + +This document describes the differences between HDF5-1.8.19 and +HDF5-1.8.20, and contains information on the platforms tested and +known problems in HDF5-1.8.20. +For more details, see the files HISTORY-1_0-1_8_0_rc3.txt +and HISTORY-1_8.txt in the release_docs/ directory of the HDF5 source. + +Links to the HDF5 1.8.20 source code, documentation, and additional materials +can be found on the HDF5 web page at: + + https://support.hdfgroup.org/HDF5/ + +The HDF5 1.8.20 release can be obtained from: + + https://support.hdfgroup.org/HDF5/release/obtain518.html + +User documentation for 1.8.20 can be accessed directly at this location: + + https://support.hdfgroup.org/HDF5/doc1.8/ + +New features in the HDF5-1.8.x release series, including brief general +descriptions of some new and modified APIs, are described in the "What's New +in 1.8.0?" document: + + https://support.hdfgroup.org/HDF5/doc/ADGuide/WhatsNew180.html + +All new and modified APIs are listed in detail in the "HDF5 Software Changes +from Release to Release" document, in the section "Release 1.8.20 (current +release) versus Release 1.8.19 + + https://support.hdfgroup.org/HDF5/doc1.8/ADGuide/Changes.html + +If you have any questions or comments, please send them to the HDF Help Desk: + + help@hdfgroup.org + + +CONTENTS +======== + +- New Features +- Support for New Platforms, Languages, and Compilers +- Bug Fixes since HDF5-1.8.20 +- Supported Platforms +- Supported Configuration Features Summary +- More Tested Platforms +- Known Problems + + +New Features +============ + + Tools + ----- + - h5diff + + h5diff has new option enable-error-stack. + + Updated h5diff with the --enable-error-stack argument, which + enables the display of the hdf5 error stack. This completes the + improvement to the main tools; h5copy, h5diff, h5dump, h5ls and + h5repack. + + (ADB - 2017/08/30, HDFFV-9774) + + + C++ API + ------- + - The following C++ API wrappers have been added to the C++ Library: + + // Creates a binary object description of this datatype. + void DataType::encode() - C API H5Tencode() + + // Returns the decoded type from the binary object description. + DataType::decode() - C API H5Tdecode() + ArrayType::decode() - C API H5Tdecode() + CompType::decode() - C API H5Tdecode() + DataType::decode() - C API H5Tdecode() + EnumType::decode() - C API H5Tdecode() + FloatType::decode() - C API H5Tdecode() + IntType::decode() - C API H5Tdecode() + StrType::decode() - C API H5Tdecode() + VarLenType::decode() - C API H5Tdecode() + + // Three overloaded functions to retrieve information about an object + H5Location::getObjectInfo() - H5Oget_info()/H5Oget_info_by_name() + + (BMR - 2017/10/17, HDFFV-10175) + + - New constructors to open existing datatypes added in ArrayType, + CompType, DataType, EnumType, FloatType, IntType, StrType, and + VarLenType. + + (BMR - 2017/10/17, HDFFV-10175) + + - A document is added to the HDF5 C++ API Reference Manual to show the + mapping from a C API to C++ wrappers. It can be found from the main + page of the C++ API Reference Manual. + + (BMR - 2017/10/17, HDFFV-10151) + + + High-Level APIs + --------------- + - H5DOread_chunk + + Users wanted to read compressed data directly from a file without any + processing by the HDF5 data transfer pipeline, just as they were able + to write it directly to a file with H5DOwrite_chunk. + + New API function, corresponding to existing function H5DOwrite_chunk. + H5DOread_chunk reads a raw data chunk directly from a chunked dataset + in the file into the application buffer, bypassing the library’s internal + data transfer pipeline, including filters. + + (VC - 2017/05/02, HDFFV-9934) + + +Support for New Platforms, Languages, and Compilers +=================================================== + + - Added NAG compiler + + +Bug Fixes since HDF5-1.8.19 +=========================== + + Configuration + ------------- + - cmake + + The hdf5 library used shared szip and zlib, which needlessly required + applications to link with the same szip and zlib libraries. + + Changed the target_link_libraries commands to use the static libs. + Removed improper link duplication of szip and zlib. + Adjusted the link dependencies and the link interface values of + the target_link_libraries commands. + + (ADB - 2017/11/14, HDFFV-10329) + + - cmake MPI + + CMake implementation for MPI was problematic and would create incorrect + MPI library references in the hdf5 libraries. + + Reworked the CMake MPI code to properly create CMake targets.Also merged + the latest CMake FindMPI.cmake changes to the local copy. This is necessary + until HDF changes the CMake minimum to 3.9 or greater. + + (ADB - 2017/11/02, HDFFV-10321) + + + - Fixed Fortran linker flags when using the NAG Fortran compiler (autotools). + + (HDFFV-10037, MSB, 2017/10/21) + + - cmake + + Too many commands for POST_BUILD step caused command line to be + too big on windows. + + Changed foreach of copy command to use a custom command with the + use of the HDFTEST_COPY_FILE macro. + + (ADB - 2017/07/12, HDFFV-10254) + + + Library + ------- + - filter plugin handling in H5PL.c and H5Z.c + + It was discovered that the dynamic loading process used by + filter plugins had issues with library dependencies. + + CMake build process changed to use LINK INTERFACE keywords, which + allowed HDF5 C library to make dependent libraries private. The + filter plugin libraries no longer require dependent libraries + (such as szip or zlib) to be available. + (ADB - 2017/11/16, HDFFV-10328) + + - Fix rare object header corruption bug + + In certain cases, such as when converting large attributes to dense + storage, an error could occur which would either fail an assertion or + cause file corruption. Fixed and added test. + + (NAF - 2017/11/14, HDFFV-10274) + + - H5Zfilter_avail in H5Z.c + + The public function checked for plugins, while the private + function did not. + + Modified H5Zfilter_avail and private function, H5Z_filter_avail. + Moved check for plugin from public to private function. Updated + H5P__set_filter due to change in H5Z_filter_avail. Updated tests. + + (ADB - 2017/10/10, HDFFV-10297, HDFFV-10319) + + - Fix H5Sencode bug when num points selected is >2^32 + + Modified to fail if the 32 bit limit is exceeded when encoding either + offsets or counts in the selection. + + (HDFFV-10323, VC, 2017/09/07) + + - Fix H5HL_offset_into() + + (1) Fix H5HL_offset_into() to return error when offset exceeds heap data + block size. + (2) Fix other places in the library that call this routine to detect + error routine. + + (HDFFV-10216, VC, 2017/09/05) + + + Tools + ----- + - h5repack + + h5repack failed to copy a dataset with existing filter. + + Reworked code for h5repack and h5diff code in tools library. Added + improved error handling, cleanup of resources and checks of calls. + Modified H5Zfilter_avail and private function, H5Z_filter_avail. + Moved check for plugin from public to private function. Updated + H5P__set_filter due to change in H5Z_filter_avail. Updated tests. + Note, h5repack output display has changed to clarify the individual + steps of the repack process. The output indicates if an operation + applies to all objects. Lines with notation and no information + have been removed. + + (ADB - 2017/10/10, HDFFV-10297, HDFFV-10319) + + - h5repack + + h5repack always set the User Defined filter flag to H5Z_FLAG_MANDATORY. + + Added another parameter to the 'UD=' option to set the flag by default + to '0' or H5Z_FLAG_MANDATORY, the other choice is '1' or H5Z_FLAG_OPTIONAL. + + (ADB - 2017/08/31, HDFFV-10269) + + - h5ls + + h5ls generated error on stack when it encountered a H5S_NULL + dataspace. + + Adding checks for H5S_NULL before calling H5Sis_simple (located + in the h5tools_dump_mem function) fixed the issue. + + (ADB - 2017/08/17, HDFFV-10188) + + - h5dump + + h5dump segfaulted on output of XML file. + + Function that escape'd strings used the full buffer length + instead of just the length of the replacement string in a + strncpy call. Using the correct length fixed the issue. + + (ADB - 2017/08/01, HDFFV-10256) + + - h5diff + + h5diff segfaulted on compare of a NULL variable length string. + + Improved h5diff compare of strings by adding a check for + NULL strings and setting the lengths to zero. + + (ADB - 2017/07/25, HDFFV-10246) + + - h5import + + h5import crashed trying to import data from a subset of a dataset. + + Improved h5import by adding the SUBSET keyword. h5import understands + to use the Count times the Block as the size of the dimensions. + Added INPUT_B_ORDER keyword to old-style configuration files. + The import from h5dump function expects the binary files to use native + types (FILE '-b' option) in the binary file. + + (ADB - 2017/06/15, HDFFV-10219) + + + C++ API + ------- + - Marked the following functions deprecated because they were moved to + class H5Object: + H5Location::createAttribute() + H5Location::openAttribute() + H5Location::attrExists() + H5Location::removeAttr() + H5Location::renameAttr() + H5Location::getNumAttrs() + + (BMR - 2017/10/17) + + +Supported Platforms +=================== +The following platforms are supported and have been tested for this release. +They are built with the configure process unless specified otherwise. + + Linux 2.6.32-573.22.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (platypus/mayll) Version 4.4.7 20120313 + Versions 4.9.3, 5.3.0, 6.2.0 + PGI C, Fortran, C++ for 64-bit target on + x86-64; + Version 16.10-0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.0.196 Build 20160721 + MPICH 3.1.4 compiled with GCC 4.9.3 + OpenMPI 2.0.1 compiled with GCC 4.9.3 + + Linux 2.6.32-573.18.1.el6 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) + #1 SMP ppc64 GNU/Linux g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) + (ostrich) GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) + IBM XL C/C++ V13.1 + IBM XL Fortran V15.1 + + Linux 3.10.0-327.10.1.el7 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (kituo/moohan/jelly Version 4.8.5 20150623 (Red Hat 4.8.5-4) + Versions 4.9.3, 5.3.0, 6.2.0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.4.196 Build 20170411 + MPICH 3.1.4 compiled with GCC 4.9.3 + NAG Fortran Compiler Release 6.1(Tozai) Build 6116 + + SunOS 5.11 32- and 64-bit Sun C 5.12 SunOS_sparc + (emu) Sun Fortran 95 8.6 SunOS_sparc + Sun C++ 5.12 SunOS_sparc + + Windows 7 Visual Studio 2012 w/ Intel Fortran 15 (cmake) + Visual Studio 2013 w/ Intel Fortran 15 (cmake) + Visual Studio 2015 w/ Intel Fortran 16 (cmake) + + Windows 7 x64 Visual Studio 2012 w/ Intel Fortran 15 (cmake) + Visual Studio 2013 w/ Intel Fortran 15 (cmake) + Visual Studio 2015 w/ Intel Fortran 16 (cmake) + Visual Studio 2015 w/ Intel C, Fortran 2017 (cmake) + Visual Studio 2015 w/ MSMPI 8 (cmake) + Cygwin(CYGWIN_NT-6.1 2.8.0(0.309/5/3) + gcc and gfortran compilers (GCC 5.4.0) + (cmake and autotools) + + Windows 10 Visual Studio 2015 w/ Intel Fortran 16 (cmake) + Cygwin(CYGWIN_NT-6.1 2.8.0(0.309/5/3) + gcc and gfortran compilers (GCC 5.4.0) + (cmake and autotools) + + Windows 10 x64 Visual Studio 2015 w/ Intel Fortran 16 (cmake) + + Mac OS X Mavericks 10.9.5 Apple LLVM version 6.0 (clang-600.0.57) + 64-bit gfortran GNU Fortran (GCC) 4.9.2 + (wren/quail) Intel icc/icpc/ifort version 15.0.3 + + Mac OS X Yosemite 10.10.5 Apple LLVM version 6.1 (clang-602.0.53) + 64-bit gfortran GNU Fortran (GCC) 4.9.2 + (osx1010dev/osx1010test) Intel icc/icpc/ifort version 15.0.3 + + Mac OS X El Capitan 10.11.6 Apple LLVM version 7.3.0 (clang-703.0.29) + 64-bit gfortran GNU Fortran (GCC) 5.2.0 + (VM osx1011dev/osx1011test) Intel icc/icpc/ifort version 16.0.2 + + Mac OS Sierra 10.12.6 Apple LLVM version 8.1 (clang-802.0.42) + 64-bit gfortran GNU Fortran (GCC) 7.1.0 + (kite) Intel icc/icpc/ifort version 17.0.2 + +Tested Configuration Features Summary +===================================== + + In the tables below + y = tested + n = not tested in this release + C = Cluster + W = Workstation + x = not working in this release + dna = does not apply + ( ) = footnote appears below second table + <blank> = testing incomplete on this feature or platform + +Platform C F90/ F90 C++ zlib SZIP + parallel F2003 parallel +SunOS 5.11 32-bit n y/y n y y y +SunOS 5.11 64-bit n y/y n y y y +Windows 7 y y/y n y y y +Windows 7 x64 y y/y n y y y +Windows 7 Cygwin n y/n n y y y +Windows 7 x64 Cygwin n y/n n y y y +Windows 10 y y/y n y y y +Windows 10 x64 y y/y n y y y +Mac OS X Mavericks 10.9.5 64-bit n y/y n y y y +Mac OS X Yosemite 10.10.5 64-bit n y/y n y y y +Mac OS X El Capitan 10.11.6 64-bit n y/y n y y y +Mac OS Sierra 10.12.6 64-bit n y/y n y y y +AIX 6.1 32- and 64-bit n y/n n y y y +CentOS 6.7 Linux 2.6.32 x86_64 GNU y y/y y y y y +CentOS 6.7 Linux 2.6.32 x86_64 Intel n y/y n y y y +CentOS 6.7 Linux 2.6.32 x86_64 PGI n y/y n y y y +CentOS 7.1 Linux 3.10.0 x86_64 GNU y y/y y y y y +CentOS 7.1 Linux 3.10.0 x86_64 Intel n y/y n y y y +Linux 2.6.32-431.11.2.el6.ppc64 n y/n n y y y + +Platform Shared Shared Shared Thread- + C libs F90 libs C++ libs safe +SunOS 5.11 32-bit y y y y +SunOS 5.11 64-bit y y y y +Windows 7 y y y y +Windows 7 x64 y y y y +Windows 7 Cygwin n n n y +Windows 7 x64 Cygwin n n n y +Windows 10 y y y y +Windows 10 x64 y y y y +Mac OS X Mavericks 10.9.5 64-bit y n y y +Mac OS X Yosemite 10.10.5 64-bit y n y y +Mac OS X El Capitan 10.11.6 64-bit y n y y +Mac OS Sierra 10.12.6 64-bit y n y y +AIX 6.1 32- and 64-bit y n n y +CentOS 6.7 Linux 2.6.32 x86_64 GNU y y y y +CentOS 6.7 Linux 2.6.32 x86_64 Intel y y y y +CentOS 6.7 Linux 2.6.32 x86_64 PGI y y y y +CentOS 7.1 Linux 3.10.0 x86_64 GNU y y y y +CentOS 7.1 Linux 3.10.0 x86_64 Intel y y y y +Linux 2.6.32-431.11.2.el6.ppc64 y y y y + +Compiler versions for each platform are listed in the preceding +"Supported Platforms" table. + + +More Tested Platforms +===================== +The following platforms are not supported but have been tested for this release. + + Linux 2.6.32-573.22.1.el6 g95 (GCC 4.0.3 (g95 0.94!) + #1 SMP x86_64 GNU/Linux + (mayll) + + Debian8.4.0 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1 x86_64 GNU/Linux + gcc (Debian 4.9.2-10) 4.9.2 + GNU Fortran (Debian 4.9.2-10) 4.9.2 + (cmake and autotools) + + Fedora24 4.7.2-201.fc24.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux + gcc (GCC) 6.1.1 20160621 (Red Hat 6.1.1-3) + GNU Fortran (GCC) 6.1.1 20160621 (Red Hat 6.1.1-3) + (cmake and autotools) + + CentOS 7.2 3.10.0-327.28.2.el7.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux + gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) + GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) + (cmake and autotools) + + Ubuntu 16.04 4.4.0-38-generic #62-Ubuntu SMP x86_64 GNU/Linux + gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 + GNU Fortran (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 + (cmake and autotools) + + +Known Problems +============== + + The dynamically loaded plugin test libraries require undefined references + to HDF5 functions to be resolved at runtime in order to function properly. + With autotools on CYGWIN this results in build errors, and we have not + found a solution that satisfies both. Therefore the dynamically loaded + plugin tests have been disabled on CYGWIN. + + Mac OS X 10.13 added additional subdirectory structure in .libs for shared + libraries. Consequently "make check" will fail testing java and dynamically + loaded plugin test libraries attempting to copy files from the previous + locations in .libs directories. This will be addressed in the next release + when support for the Mac OS X 10.13 platform is added. + + Known problems in previous releases can be found in the HISTORY*.txt files + in the HDF5 source. Please report any new problems found to + help@hdfgroup.org. + + +%%%%1.8.19%%%% + + +HDF5 version 1.8.19 released on 2017-06-15 +================================================================================ + +INTRODUCTION +============ + +This document describes the differences between HDF5-1.8.18 and +HDF5-1.8.19, and contains information on the platforms tested and +known problems in HDF5-1.8.19. +For more details, see the files HISTORY-1_0-1_8_0_rc3.txt +and HISTORY-1_8.txt in the release_docs/ directory of the HDF5 source. + +Links to the HDF5 1.8.19 source code, documentation, and additional materials +can be found on the HDF5 web page at: + + https://support.hdfgroup.org/HDF5/ + +The HDF5 1.8.19 release can be obtained from: + + https://support.hdfgroup.org/HDF5/release/obtain518.html + +User documentation for 1.8.19 can be accessed directly at this location: + + https://support.hdfgroup.org/HDF5/doc1.8/ + +New features in the HDF5-1.8.x release series, including brief general +descriptions of some new and modified APIs, are described in the "What's New +in 1.8.0?" document: + + https://support.hdfgroup.org/HDF5/doc/ADGuide/WhatsNew180.html + +All new and modified APIs are listed in detail in the "HDF5 Software Changes +from Release to Release" document, in the section "Release 1.8.19 (current +release) versus Release 1.8.18 + + https://support.hdfgroup.org/HDF5/doc1.8/ADGuide/Changes.html + +If you have any questions or comments, please send them to the HDF Help Desk: + + help@hdfgroup.org + + +CONTENTS +======== + +- New Features +- Support for New Platforms, Languages, and Compilers +- Bug Fixes since HDF5-1.8.19 +- Supported Platforms +- Supported Configuration Features Summary +- More Tested Platforms +- Known Problems + + +New Features +============ + + Configuration + -------------- + - CMake in the Tools + + User-defined filters on Windows require that tools be built + with shared libraries. + + CMake command code added to build tools with + shared libraries as well as with static libraries. + + (ADB - 2017/02/07, HDFFV-10123) + + + Library + ------- + - H5PL package + + Users would like to be able to set the plugin path programmatically + instead of through the environment variable. + + H5PL package obtained new APIs for manipulating the entries of + the plugin path table. The new APIs are; + H5PLappend - Insert a plugin path at the end of the list. + H5PLprepend - Insert a plugin path at the beginning of the list. + H5PLreplace - Replace the path at the specified index. + H5PLinsert - Insert a plugin path at the specified index, moving + other paths after the index. + H5PLremove - Remove the plugin path at the specifed index and + compacting the list. + H5PLget - Query the plugin path at the specified index. + H5PLsize - Query the size of the current list of plugin paths. + + (ADB - 2017/04/04, HDFFV-10143) + + - H5Dget_chunk_storage_size + + The storage size of a chunk in the file is needed to determine the size + of the buffer to be allocated for reading a chunk directly from a file. + + New API function gets the size in bytes currently allocated within a + file for a raw data chunk in a dataset. This function was added to get + the chunk size in support of the implementation of H5DOread_chunks, but + may also be useful for other purposes. + + (VC - 2017/05/02, HDFFV-9934) + + C++ API + ------- + - The following C++ API wrappers have been added to the C++ Library: + // Determines if a name exists. + H5Location::nameExists() - C API H5Lexists() + + // Checks if an ID is valid. + IdComponent::isValid() - C API H5Iis_valid() + + // Sets the number of soft or user-defined links that can be + // traversed before a failure occurs. + LinkAccPropList::setNumLinks() - C API H5Pset_nlinks() + + // Gets the number of soft or user-defined link traversals allowed + LinkAccPropList::getNumLinks() - C API H5Pget_nlinks() + + // Returns a copy of the creation property list of a datatype. + DataType::getCreatePlist() - C API H5Tget_create_plist() + + // Opens an object within a location, regarless its type. + H5Location::openObjId() - C API H5Oopen() + H5Location::openObjId() - C API H5Oopen() + + // Closes an object opened by openObjId(). + H5Location::closeObjId() - C API H5Oclose() + + // Gets general information about a file. + H5File::getFileInfo() - C API H5Fget_info() + + // Returns the header version of an HDF5 object. + H5Object::objVersion() - C API H5Oget_info() + + (BMR, 2017/05/13, HDFFV-10004, HDFFV-10156) + + - New class LinkAccPropList is added for link access proprety list + + (BMR, 2017/05/13, HDFFV-10156) + + High-Level APIs + --------------- + - H5DOread_chunk + + Users wanted to read compressed data directly from a file without any + processing by the HDF5 data transfer pipeline, just as they were able + to write it directly to a file with H5DOwrite_chunk. + + New API function, corresponding to existing function H5DOwrite_chunk. + H5DOread_chunk reads a raw data chunk directly from a chunked dataset + in the file into the application buffer, bypassing the library’s internal + data transfer pipeline, including filters. + + (VC - 2017/05/02, HDFFV-9934) + + +Support for New Platforms, Languages, and Compilers +=================================================== + + - Added OpenMPI 2.0.1 compiled with GCC 4.9.3 + + +Bug Fixes since HDF5-1.8.18 +=========================== + + Configuration + ------------- + - Support for Fortran shared libraries on OS X with autotools now + works. Cmake builds still disables Fortran shared libraries on OS X. + (MSB - 2017/04/30, HDFFV-2772) + + + Library + ------- + - bitfield datatypes + + bitfield datatypes did not fully support endianness of the data. + + Improved the endianness of bitfield datatypes by adding missing functional + code. This code used integer types as a template. + + (ADB - 2017/05/12, HDFFV-10186) + + - Newly created datasets with H5D_COMPACT layout failed to open after + several H5Dopen/H5Dclose cycles. + + The layout "dirty" flag for a compact dataset is now properly reset + before flushing the message. + + (VC - 2017/05/11, HDFFV-10051) + - Missing #ifdef __cplusplus macros were added to the generated H5Epubgen.h file. + + (DER - 2017/04/25, HDFFV-9638) + + + Tools + ----- + - h5repack + + h5repack did not maintain the creation order flag of the root + group. + + Improved h5repack by reading the creation order and applying the + flag to the new root group. Also added arguments to set the + order and index direction, which applies to the traversing of the + original file, on the command line. + + (ADB - 2017/05/26, HDFFV-8611) + + - h5diff + + h5diff failed to account for strpad type and null terminators + of char strings. Also, h5diff failed to account for string length + differences and would give a different result depending on file + order in the command line. + + Improved h5diff compare of strings and arrays by adding a check for + string lengths and if the strpad was null filled. + + (ADB - 2017/05/18, HDFFV-9055, HDFFV-10128) + + - h5diff + + h5diff help text about epsilon comparison was confusing. + + Changed h5diff help text to indicate that the 'a' refers to the + datapoint in file1 and 'b' refers to the datapoint value in file2. + + (ADB - 2017/05/16, HDFFV-9995) + + - h5diff + + h5diff did not report user-defined filter data differences correctly. + + Improved h5diff compare of user-defined filter data by reporting an + error if the user-defined filter plugin cannot be found. + + (ADB - 2017/01/18, HDFFV-9994) + C++ API + ------- + - The class hierarchy is revised to better reflect the HDF5 model. + Class H5File is now derived from class Group instead of H5Location. + Class Attribute is now derived from H5Location instead of IdComponent. + Wrappers of H5A APIs in H5Location are now duplicated in H5Object, + the original wrappers in H5Location will be deprecated in future + releases. + + (BMR - 2017/05/15, HDFFV-10156) + + + +Supported Platforms +=================== +The following platforms are supported and have been tested for this release. +They are built with the configure process unless specified otherwise. + + Linux 2.6.32-573.22.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (platypus/mayll) Version 4.4.7 20120313 + Versions 4.9.3, 5.2.0, 6.2.0 + PGI C, Fortran, C++ for 64-bit target on + x86-64; + Version 16.10-0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.0.098 Build 20160721 + MPICH 3.1.4 compiled with GCC 4.9.3 + OpenMPI 2.0.1 compiled with GCC 4.9.3 + + Linux 2.6.32-573.18.1.el6 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) + #1 SMP ppc64 GNU/Linux g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) + (ostrich) GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) + IBM XL C/C++ V13.1 + IBM XL Fortran V15.1 + + Linux 3.10.0-327.10.1.el7 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (kituo/moohan) Version 4.8.5 20150623 (Red Hat 4.8.5-4) + Versions 4.9.3, 5.3.0, 6.2.0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.4.196 Build 20170411 + MPICH 3.1.4 compiled with GCC 4.9.3 + + SunOS 5.11 32- and 64-bit Sun C 5.12 SunOS_sparc + (emu) Sun Fortran 95 8.6 SunOS_sparc + Sun C++ 5.12 SunOS_sparc + Windows 7 Visual Studio 2012 w/ Intel Fortran 15 (cmake) + Visual Studio 2013 w/ Intel Fortran 15 (cmake) + Visual Studio 2015 w/ Intel Fortran 16 (cmake) + + Windows 7 x64 Visual Studio 2012 w/ Intel Fortran 15 (cmake) + Visual Studio 2013 w/ Intel Fortran 15 (cmake) + Visual Studio 2015 w/ Intel Fortran 16 (cmake) + Visual Studio 2015 w/ Intel C, Fortran 2017 (cmake) + Visual Studio 2015 w/ MSMPI 8 (cmake) + Cygwin(CYGWIN_NT-6.1 2.8.0(0.309/5/3) + gcc and gfortran compilers (GCC 5.4.0) + (cmake and autotools) + + Windows 10 Visual Studio 2015 w/ Intel Fortran 16 (cmake) + Cygwin(CYGWIN_NT-6.1 2.8.0(0.309/5/3) + gcc and gfortran compilers (GCC 5.4.0) + (cmake and autotools) + + Windows 10 x64 Visual Studio 2015 w/ Intel Fortran 16 (cmake) + + Mac OS X Mt. Lion 10.8.5 Apple LLVM version 5.1 (clang-503.0.40) + 64-bit gfortran GNU Fortran (GCC) 4.8.2 + (swallow/kite) Intel icc/icpc/ifort version 15.0.3 + + Mac OS X Mavericks 10.9.5 Apple LLVM version 6.0 (clang-600.0.57) + 64-bit gfortran GNU Fortran (GCC) 4.9.2 + (wren/quail) Intel icc/icpc/ifort version 15.0.3 + + Mac OS X Yosemite 10.10.5 Apple LLVM version 6.1 (clang-602.0.53) + 64-bit gfortran GNU Fortran (GCC) 4.9.2 + (osx1010dev/osx1010test) Intel icc/icpc/ifort version 15.0.3 + + Mac OS X El Capitan 10.11.4 Apple LLVM version 7.3.0 (clang-703.0.29) + 64-bit gfortran GNU Fortran (GCC) 5.2.0 + (VM osx1011dev/osx1011test) Intel icc/icpc/ifort version 16.0.2 + + +Tested Configuration Features Summary +===================================== + + In the tables below + y = tested + n = not tested in this release + C = Cluster + W = Workstation + x = not working in this release + dna = does not apply + ( ) = footnote appears below second table + <blank> = testing incomplete on this feature or platform +Platform C F90/ F90 C++ zlib SZIP + parallel F2003 parallel +SunOS 5.11 32-bit n y/y n y y y +SunOS 5.11 64-bit n y/y n y y y +Windows 7 y y/y n y y y +Windows 7 x64 y y/y n y y y +Windows 7 Cygwin n y/n n y y y +Windows 7 x64 Cygwin n y/n n y y y +Windows 10 y y/y n y y y +Windows 10 x64 y y/y n y y y +Mac OS X Mountain Lion 10.8.5 64-bit n y/y n y y y +Mac OS X Mavericks 10.9.5 64-bit n y/y n y y y +Mac OS X Yosemite 10.10.5 64-bit n y/y n y y y +AIX 6.1 32- and 64-bit n y/n n y y y +CentOS 6.7 Linux 2.6.32 x86_64 GNU y y/y y y y y +CentOS 6.7 Linux 2.6.32 x86_64 Intel n y/y n y y y +CentOS 6.7 Linux 2.6.32 x86_64 PGI n y/y n y y y +CentOS 7.1 Linux 3.10.0 x86_64 GNU y y/y y y y y +CentOS 7.1 Linux 3.10.0 x86_64 Intel n y/y n y y y +Linux 2.6.32-431.11.2.el6.ppc64 n y/n n y y y + +Platform Shared Shared Shared Thread- + C libs F90 libs C++ libs safe +SunOS 5.11 32-bit y y y y +SunOS 5.11 64-bit y y y y +Windows 7 y y y y +Windows 7 x64 y y y y +Windows 7 Cygwin n n n y +Windows 7 x64 Cygwin n n n y +Windows 10 y y y y +Windows 10 x64 y y y y +Mac OS X Mountain Lion 10.8.5 64-bit y n y y +Mac OS X Mavericks 10.9.5 64-bit y n y y +Mac OS X Yosemite 10.10.5 64-bit y n y y +AIX 6.1 32- and 64-bit y n n y +CentOS 6.7 Linux 2.6.32 x86_64 GNU y y y y +CentOS 6.7 Linux 2.6.32 x86_64 Intel y y y y +CentOS 6.7 Linux 2.6.32 x86_64 PGI y y y y +CentOS 7.1 Linux 3.10.0 x86_64 GNU y y y y +CentOS 7.1 Linux 3.10.0 x86_64 Intel y y y y +Linux 2.6.32-431.11.2.el6.ppc64 y y y y + +Compiler versions for each platform are listed in the preceding +"Supported Platforms" table. + + +More Tested Platforms +===================== +The following platforms are not supported but have been tested for this release. + + Linux 2.6.32-573.22.1.el6 g95 (GCC 4.0.3 (g95 0.94!) + #1 SMP x86_64 GNU/Linux + (mayll) + + Debian8.4.0 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1 x86_64 GNU/Linux + gcc (Debian 4.9.2-10) 4.9.2 + GNU Fortran (Debian 4.9.2-10) 4.9.2 + (cmake and autotools) + + Fedora24 4.7.2-201.fc24.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux + gcc (GCC) 6.1.1 20160621 (Red Hat 6.1.1-3) + GNU Fortran (GCC) 6.1.1 20160621 (Red Hat 6.1.1-3) + (cmake and autotools) + + CentOS 7.2 3.10.0-327.28.2.el7.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux + gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) + GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) + (cmake and autotools) + + Ubuntu 16.04 4.4.0-38-generic #62-Ubuntu SMP x86_64 GNU/Linux + gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 + GNU Fortran (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 + (cmake and autotools) + + +Known Problems +============== + + The dynamically loaded plugin test libraries require undefined references + to HDF5 functions to be resolved at runtime in order to function properly. + With autotools on CYGWIN this results in build errors, and we have not + found a solution that satisfies both. Therefore the dynamically loaded + plugin tests have been disabled on CYGWIN. + + Known problems in previous releases can be found in the HISTORY*.txt files + in the HDF5 source. Please report any new problems found to + help@hdfgroup.org. + + +%%%%1.8.18%%%% + + +HDF5 version 1.8.18 released on 2016-11-14 +================================================================================ + +INTRODUCTION +============ + +This document describes the differences between HDF5-1.8.17 and +HDF5-1.8.18, and contains information on the platforms tested and +known problems in HDF5-1.8.18. +For more details, see the files HISTORY-1_0-1_8_0_rc3.txt +and HISTORY-1_8.txt in the release_docs/ directory of the HDF5 source. + +Links to the HDF5 1.8.18 source code, documentation, and additional materials +can be found on the HDF5 web page at: + + https://support.hdfgroup.org/HDF5/ + +The HDF5 1.8.18 release can be obtained from: + + https://support.hdfgroup.org/HDF5/release/obtain518.html + +User documentation for 1.8.18 can be accessed directly at this location: + + https://support.hdfgroup.org/HDF5/doc1.8/ + +New features in the HDF5-1.8.x release series, including brief general +descriptions of some new and modified APIs, are described in the "What's New +in 1.8.0?" document: + + https://support.hdfgroup.org/HDF5/doc/ADGuide/WhatsNew180.html + +All new and modified APIs are listed in detail in the "HDF5 Software Changes +from Release to Release" document, in the section "Release 1.8.18 (current +release) versus Release 1.8.17 + + https://support.hdfgroup.org/HDF5/doc1.8/ADGuide/Changes.html + +If you have any questions or comments, please send them to the HDF Help Desk: + + help@hdfgroup.org + + +CONTENTS +======== + +- New Features +- Support for New Platforms, Languages, and Compilers +- Bug Fixes since HDF5-1.8.17 +- Supported Platforms +- Supported Configuration Features Summary +- More Tested Platforms +- Known Problems + + +New Features +============ + + Configuration + ------------- + + - CMake: Added NAMESPACE hdf5:: to package configuration files to allow + projects using installed HDF5 binaries built with CMake to link with + them without specifying the HDF5 library location via IMPORTED_LOCATION. + + (ADB, 2016/10/17, HDFFV-10003) + + + - CMake: Changed the CTEST_BUILD_CONFIGURATION option to + CTEST_CONFIGURATION_TYPE as recommended by the CMake documentation. + + (ADB, 2016/10/17, HDFFV-9971) + + - CMake: Added support for GIT + + (ADB, 2016/07/12) + + + Library + ------- + - None + + + Parallel Library + ---------------- + - None + + + Tools + ----- + - None + + + High-Level APIs + --------------- + - None + + + Fortran API + ----------- + - None + + + C++ API + ------- + - None + + +Support for New Platforms, Languages, and Compilers +=================================================== + + + +Bug Fixes since HDF5-1.8.17 +=========================== + + Configuration + ------------- + + - Fixed a problem preventing HDF5 to be built on 32-bit CYGWIN by + condensing cygwin configuration files into a single file and + removing outdated compiler settings. + + (ABD, 2016/07/12, HDFFV-9946) + + + - CMake: Fixed a command length overflow error by converting custom + commands inside CMakeTest.cmake files into regular dependencies and + targets. + + (ABD, 2016/07/12, HDFFV-9939) + + + - CMake: Fixed a timeout error that would occasionally occur when running + the virtual file driver tests simultaneously due to test directory and file + name collisions. + + (ABD, 2016/09/19, HDFFV-9431) + + + Library + ------- + + - Fixed a memory leak that would occur when the library allocated memory + for an external file prefix (H5Pset_efile_prefix) and failed to free it. + + (DER, 2016/04/29) + + + - Fixed an error that would occur when calling H5Adelete on an attribute + which is attached to an externally linked object in the target file and + whose datatype is a committed datatype in the main file. + + (VC, 2016-07-04, HDFFV-9940) + + + - Fixed a problem where a plugin compiled into a DLL in the default plugin + directory could not be found by the HDF5 library at runtime on Windows + when the HDF5_PLUGIN_PATH environment variable was not set. + + (ABD, 2016/08/01, HDFFV-9706) + + + - Fixed an issue where H5Pset_alignment could result in misaligned blocks + with some input combinations, causing an assertion failure in debug mode. + + (NAF, 2016/08/11, HDFFV-9948) + + + - A number of issues were fixed when reading/writing from/to corrupted + files to ensure that the library fails gracefully in these cases: + + * Writing to a corrupted file that has an object message which is + incorrectly marked as sharable on disk results in a buffer overflow / + invalid write instead of a clean error message. + + * Decoding data from a corrupted file with a dataset encoded with the + H5Z_NBIT decoding can result in a code execution vulnerability under + the context of the application using the HDF5 library. + + * When decoding an array datatype from a corrupted file, the HDF5 library + fails to return an error in production if the number of dimensions + decoded is greater than the maximum rank. + + * When decoding an "old style" array datatype from a corrupted file, the + HDF5 library fails to return an error in production if the number of + dimensions decoded is greater than the maximum rank. + + (NAF, 2016/10/06, HDFFV-9950, HDFFV-9951, HDFFV-9992, HDFFV-9993) + + + - Fixed an error that would occur when copying an object with an attribute + which is a compound datatype consisting of a variable length string. + + (VC, 2016-10-17, HDFFV-7991) + + + Parallel Library + ---------------- + + - Fixed a bug that could occur when allocating a chunked dataset in parallel + with an alignment set and an alignment threshold greater than the chunk + size but less than or equal to the raw data aggregator size. + + (NAF, 2016/08/11, HDFFV-9969) + + + Performance + ------------- + - None + + + Tools + ----- + + - Fixed an error in the compiler wrapper scripts (h5cc, h5fc, et al.) + in which they would erroneously drop the file argument specified via + the -o flag when the -o flag was specified before the -c flag on the + command line, resulting in a failure to compile. + + (LRK, 2016/06/08, HDFFV-9938, HDFFV-9530) + + + - h5repack User Defined (UD) filter parameters were not parsed correctly. + + The UD filter parameters were not being parsed correctly. Reworked coding + section to parse the correct values and verify number of parameters. + + (ADB, 2016/10/19, HDFFV-9996, HDFFV-9974, HDFFV-9515, HDFFV-9039) + + + Fortran API + ----------- + + - Fortran library fails to compile and fails tests with NAG compiler. + + * Removed the non-standard assumption that KIND=SIZEOF, in the HDF5 + configure programs. + * Removed Fortran 66 character/integer conversions from tests. + * Removed the use of C_SIZEOF in the test programs + * Changed to using STORAGE_SIZE in the test programs if available. Otherwise, + uses C_SIZEOF or SIZEOF. + + (MSB, 2016/9/22, HDFFV-9973) + + + - Fortran segfaults for F03 tests with NAG compiler + + * Removed INTENT(OUT) from 'fillvalue' in F2003 interface + for H5Pget_fill_value_f. + + (MSB, 2016/9/22, HDFFV-9980) + + + C++ API + ------- + + - The macro H5_NO_NAMESPACE is deprecated from the HDF5 C++ API library. + In future releases, the macros H5_NO_STD and OLD_HEADER_FILENAME may + also be removed. + + (BMR, 2016/10/27, HDFFV-9532) + + + High-Level APIs: + --------------- + + - The high-level API Packet Table (PT) did not write data correctly when + the datatype is a compound type that has string type as one of the + members. This problem started in 1.8.15, after the fix of HDFFV-9042 + was applied, which caused the Packet Table to use native type to access + the data. It should be up to the application to specify whether the + buffer to be read into memory in the machine’s native architecture. + Thus, the PT is fixed to not use native type but to make a copy of the + user's provided datatype during creation or the packet table's datatype + during opening. If an application wishes to use native type to read the + data, then the application will request that. However, the Packet Table + doesn't provide a way to specify memory datatype in this release. This + feature will be available in future releases, HDFFV-10023. + + (BMR, 2016/10/27, HDFFV-9758) + + + Fortran High-Level APIs: + ------------------------ + - None + + + Testing + ------- + - None + + +Supported Platforms +=================== +The following platforms are supported and have been tested for this release. +They are built with the configure process unless specified otherwise. + + Linux 2.6.32-573.22.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (platypus/mayll) Version 4.4.7 20120313 + Versions 4.8.4, 4.9.3, 5.2.0 + PGI C, Fortran, C++ for 64-bit target on + x86-64; + Version 15.7-0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 15.0.3.187 Build 20150407 + MPICH 3.1.4 compiled with GCC 4.9.3 + + Linux 2.6.32-573.18.1.el6 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) + #1 SMP ppc64 GNU/Linux g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) + (ostrich) GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16) + IBM XL C/C++ V13.1 + IBM XL Fortran V15.1 + + Linux 3.10.0-327.10.1.el7 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (kituo/moohan) Version 4.8.5 20150623 (Red Hat 4.8.5-4) + Versions 4.9.3, 5.2.0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 15.0.3.187 Build 20150407 + MPICH 3.1.4 compiled with GCC 4.9.3 + + SunOS 5.11 32- and 64-bit Sun C 5.12 SunOS_sparc + (emu) Sun Fortran 95 8.6 SunOS_sparc + Sun C++ 5.12 SunOS_sparc + + Windows 7 Visual Studio 2012 w/ Intel Fortran 15 (cmake) + Visual Studio 2013 w/ Intel Fortran 15 (cmake) + Visual Studio 2015 w/ Intel Fortran 16 (cmake) + Cygwin(CYGWIN_NT-6.1 2.2.1(0.289/5/3) gcc(4.9.3) compiler and gfortran) + (cmake and autotools) + + Windows 7 x64 Visual Studio 2012 w/ Intel Fortran 15 (cmake) + Visual Studio 2013 w/ Intel Fortran 15 (cmake) + Visual Studio 2015 w/ Intel Fortran 16 (cmake) + + Windows 10 Visual Studio 2015 w/ Intel Fortran 16 (cmake) + + Windows 10 x64 Visual Studio 2015 w/ Intel Fortran 16 (cmake) + + Mac OS X Mt. Lion 10.8.5 Apple LLVM version 5.1 (clang-503.0.40) + 64-bit gfortran GNU Fortran (GCC) 4.8.2 + (swallow/kite) Intel icc/icpc/ifort version 15.0.3 + + Mac OS X Mavericks 10.9.5 Apple LLVM version 6.0 (clang-600.0.57) + 64-bit gfortran GNU Fortran (GCC) 4.9.2 + (wren/quail) Intel icc/icpc/ifort version 15.0.3 + + Mac OS X Yosemite 10.10.5 Apple LLVM version 6.1 (clang-602.0.53) + 64-bit gfortran GNU Fortran (GCC) 4.9.2 + (osx1010dev/osx1010test) Intel icc/icpc/ifort version 15.0.3 + + Mac OS X El Capitan 10.11.4 Apple LLVM version 7.3.0 (clang-703.0.29) + 64-bit gfortran GNU Fortran (GCC) 5.2.0 + (VM osx1011dev/osx1011test) Intel icc/icpc/ifort version 16.0.2 + + +Tested Configuration Features Summary +===================================== + + In the tables below + y = tested + n = not tested in this release + C = Cluster + W = Workstation + x = not working in this release + dna = does not apply + ( ) = footnote appears below second table + <blank> = testing incomplete on this feature or platform + +Platform C F90/ F90 C++ zlib SZIP + parallel F2003 parallel +SunOS 5.11 32-bit n y/y n y y y +SunOS 5.11 64-bit n y/y n y y y +Windows 7 y y/y n y y y +Windows 7 x64 y y/y n y y y +Windows 7 Cygwin n y/y n y y n +Windows 10 n y/y n y y y +Windows 10 x64 n y/y n y y y +Mac OS X Mountain Lion 10.8.5 64-bit n y/y n y y y +Mac OS X Mavericks 10.9.5 64-bit n y/y n y y y +Mac OS X Yosemite 10.10.5 64-bit n y/y n y y y +AIX 6.1 32- and 64-bit n y/n n y y y +CentOS 6.7 Linux 2.6.32 x86_64 GNU y y/y y y y y +CentOS 6.7 Linux 2.6.32 x86_64 Intel n y/y n y y y +CentOS 6.7 Linux 2.6.32 x86_64 PGI n y/y n y y y +CentOS 7.1 Linux 3.10.0 x86_64 GNU y y/y y y y y +CentOS 7.1 Linux 3.10.0 x86_64 Intel n y/y n y y y +Linux 2.6.32-431.11.2.el6.ppc64 n y/n n y y y + +Platform Shared Shared Shared Thread- + C libs F90 libs C++ libs safe +SunOS 5.11 32-bit y y y y +SunOS 5.11 64-bit y y y y +Windows 7 y y y y +Windows 7 x64 y y y y +Windows 7 Cygwin n n n y +Windows 10 y y y y +Windows 10 x64 y y y y +Mac OS X Mountain Lion 10.8.5 64-bit y n y y +Mac OS X Mavericks 10.9.5 64-bit y n y y +Mac OS X Yosemite 10.10.5 64-bit y n y y +AIX 6.1 32- and 64-bit y n n y +CentOS 6.7 Linux 2.6.32 x86_64 GNU y y y y +CentOS 6.7 Linux 2.6.32 x86_64 Intel y y y y +CentOS 6.7 Linux 2.6.32 x86_64 PGI y y y y +CentOS 7.1 Linux 3.10.0 x86_64 GNU y y y y +CentOS 7.1 Linux 3.10.0 x86_64 Intel y y y y +Linux 2.6.32-431.11.2.el6.ppc64 y y y y + +Compiler versions for each platform are listed in the preceding +"Supported Platforms" table. + + +More Tested Platforms +===================== +The following platforms are not supported but have been tested for this release. + + Linux 2.6.32-573.22.1.el6 g95 (GCC 4.0.3 (g95 0.94!) + #1 SMP x86_64 GNU/Linux + (platypus) + + Debian8.4.0 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1 x86_64 GNU/Linux + gcc (Debian 4.9.2-10) 4.9.2 + GNU Fortran (Debian 4.9.2-10) 4.9.2 + (cmake and autotools) + + Fedora24 4.7.2-201.fc24.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux + gcc (GCC) 6.1.1 20160621 (Red Hat 6.1.1-3) + GNU Fortran (GCC) 6.1.1 20160621 (Red Hat 6.1.1-3) + (cmake and autotools) + + CentOS 7.2 3.10.0-327.28.2.el7.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux + gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) + GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) + (cmake and autotools) + + Ubuntu 16.04 4.4.0-38-generic #62-Ubuntu SMP x86_64 GNU/Linux + gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 + GNU Fortran (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 + (cmake and autotools) + + +Known Problems +============== +* On windows platforms in debug configurations, the VFD flush1 tests will fail + with the split and multi VFD drivers. These tests will display a modal debug + dialog which must be answered or wait for the test timeout to expire. + (ADB - 2014/06/23 - HDFFV-8851) + +* CLANG compiler with the options -fcatch-undefined-behavior and -ftrapv + catches some undefined behavior in the alignment algorithm of the macro DETECT_I + in H5detect.c (Issue 8147). Since the algorithm is trying to detect the alignment + of integers, ideally the flag -fcatch-undefined-behavior shouldn't to be used for + H5detect.c. In the future, we can separate flags for H5detect.c from the rest of + the library. (SLU - 2013/10/16) + +* Make provided by Solaris fails in "make check". Solaris users should use + gmake to build and install the HDF5 software. (AKC - 2013/10/08 - HDFFV-8534) + +* The C++ and FORTRAN bindings are not currently working on FreeBSD with the + native release 8.2 compilers (4.2.1), but are working with gcc 4.6 from the + ports (and probably gcc releases after that). + (QAK - 2012/10/19) + +* The following h5dump test case fails in BG/P machines (and potentially other + machines that use a command script to launch executables): + + h5dump --no-compact-subset -d "AHFINDERDIRECT::ah_centroid_t[0] it=0 tl=0" + tno-subset.h5 + + This is due to the embedded spaces in the dataset name being interpreted + by the command script launcher as meta-characters, thus passing three + arguments to h5dump's -d flag. The command passes if run by hand, just + not via the test script. + (AKC - 2012/05/03) + +* The STDIO VFD does not work on some architectures, possibly due to 32/64 + bit or large file issues. The basic STDIO VFD test is known to fail on + 64-bit SunOS 5.10 on SPARC when built with -m64 and 32-bit OS X/Darwin + 10.7.0. The STDIO VFD test has been disabled while we investigate and + a fix should appear in a future release. + (DER - 2011/10/14 - HDFFV-8235) + +* h5diff can report inconsistent results when comparing datasets of enum type + that contain invalid values. This is due to how enum types are handled in + the library and will be addressed in a future release. + (DER - 2011/10/14 - HDFFV-7527) + +* The links test can fail under the stdio VFD due to some issues with external + links. This will be investigated and fixed in a future release. + (DER - 2011/10/14 - HDFFV-7768) + +* After the shared library support was fixed for some bugs, it was discovered + that "make prefix=XXX install" no longer works for shared libraries. It + still works correctly for static libraries. Therefore, if you want to + install the HDF5 shared libraries in a location such as /usr/local/hdf5, + you need to specify the location via the --prefix option during configure + time. E.g, ./configure --prefix=/usr/local/hdf5 ... + (AKC - 2011/05/07 - HDFFV-7583) + +* The parallel test, t_shapesame, in testpar/, may run for a long time and may + be terminated by the alarm signal. If that happens, one can increase the + alarm seconds (default is 1200 seconds = 20 minutes) by setting the + environment variable, $HDF5_ALARM_SECONDS, to a larger value such as 3600 + (60 minutes). Note that the t_shapesame test may fail in some systems + (see the "While working on the 1.8.6 release..." problem below). If + it does, it will waste more time if $HDF5_ALARM_SECONDS is set + to a larger value. + (AKC - 2011/05/07) + +* Shared Fortran libraries are not quite working on AIX. While they are + generated when --enable-shared is specified, the fortran and hl/fortran + tests fail. the issue. HL and C++ shared libraries should now be + working as intended, however. + (MAM - 2011/04/20) + +* While working on the 1.8.6 release of HDF5, a bug was discovered that can + occur when reading from a dataset in parallel shortly after it has been + written to collectively. The issue was exposed by a new test in the parallel + HDF5 test suite, but had existed before that. We believe the problem lies with + certain MPI implementations and/or file systems. + + We have provided a pure MPI test program, as well as a standalone HDF5 + program, that can be used to determine if this is an issue on your system. + They should be run across multiple nodes with a varying number of processes. + These programs can be found at: + http://www.hdfgroup.org/ftp/HDF5/examples/known_problems/ + (NAF - 2011/01/19) + +* All the VFL drivers aren't backward compatible. In H5FDpublic.h, the + structure H5FD_class_t changed in 1.8. There is new parameter added to + get_eoa and set_eoa callback functions. A new callback function + get_type_map was added in. The public function H5FDrealloc was taken + out in 1.8. The problem only happens when users define their own driver + for 1.6 and try to plug in 1.8 library. Because there's only one user + complaining about it, we (Elena, Quincey, and I) decided to leave it as + it is (see bug report #1279). Quincey will make a plan for 1.10. + (SLU - 2010/02/02) + +* The --enable-static-exec configure flag will only statically link libraries + if the static version of that library is present. If only the shared version + of a library exists (i.e., most system libraries on Solaris, AIX, and Mac, + for example, only have shared versions), the flag should still result in a + successful compilation, but note that the installed executables will not be + fully static. Thus, the only guarantee on these systems is that the + executable is statically linked with just the HDF5 library. + (MAM - 2009/11/04) + +* A dataset created or rewritten with a v1.6.3 library or after cannot be read + with the v1.6.2 library or before when the Fletcher32 EDC filter is enabled. + There was a bug in the calculation of the Fletcher32 checksum in the + library before v1.6.3; the checksum value was not consistent between big- + endian and little-endian systems. This bug was fixed in Release 1.6.3. + However, after fixing the bug, the checksum value was no longer the same as + before on little-endian system. Library releases after 1.6.4 can still read + datasets created or rewritten with an HDF5 library of v1.6.2 or before. + (SLU - 2005/06/30) + + %%%%1.8.17%%%% @@ -2155,15 +4250,15 @@ They are built with the configure process unless specified otherwise. Visual Studio 2013 w/ Intel Fortran 15 (cmake) Mac OS X Mt. Lion 10.8.5 Apple clang/clang++ version 5.1 from Xcode 5.1 - 64-bit gfortran GNU Fortran (GCC) 4.8.2 + 64-bit gfortran GNU Fortran (GCC) 4.8.2 (swallow/kite) Intel icc/icpc/ifort version 14.0.2 Mac OS X Mavericks 10.9.5 Apple clang/clang++ version 6.0 from Xcode 6.1.1 - 64-bit gfortran GNU Fortran (GCC) 4.8.2 + 64-bit gfortran GNU Fortran (GCC) 4.8.2 (wren/quail) Intel icc/icpc/ifort version 14.0.2 Mac OS X Yosemite 10.10.2 Apple clang/clang++ version 6.0 from Xcode 6.1.1 - 64-bit gfortran GNU Fortran (GCC) 4.9.2 + 64-bit gfortran GNU Fortran (GCC) 4.9.2 (osx1010dev/osx1010test) Intel icc/icpc/ifort version 15.0.1 @@ -2902,11 +4997,11 @@ They are built with the configure process unless specified otherwise. (duck) Intel icc/icpc/ifort version 13.0.3 Mac OS X Mt. Lion 10.8.5 Apple clang/clang++ version 5.1 from Xcode 5.1 - 64-bit gfortran GNU Fortran (GCC) 4.8.2 + 64-bit gfortran GNU Fortran (GCC) 4.8.2 (swallow/kite) Intel icc/icpc/ifort version 14.0.2 Mac OS X Mavericks 10.9.5 Apple clang/clang++ version 6.0 from Xcode 6.0.1 - 64-bit gfortran GNU Fortran (GCC) 4.8.2 + 64-bit gfortran GNU Fortran (GCC) 4.8.2 (wren) Intel icc/icpc/ifort version 14.0.2 @@ -3308,10 +5403,10 @@ New Features ssize_t getName(H5std_string& attr_name, size_t buf_size=0) (BMR, 2014/04/15) + A static wrapper to Exception for printing the error stack without an - instance of Exception - static void printErrorStack(FILE* stream = stderr, - hid_t err_stack = H5E_DEFAULT); - (BMR, 2014/04/25) + instance of Exception + static void printErrorStack(FILE* stream = stderr, + hid_t err_stack = H5E_DEFAULT); + (BMR, 2014/04/25) Support for New Platforms, Languages, and Compilers @@ -3505,7 +5600,7 @@ They are built with the configure process unless specified otherwise. AIX 5.3 xlc 10.1.0.5 (NASA G-ADA) xlC 10.1.0.5 xlf90 12.1.0.6 - gmake v3.82 + gmake v3.82 Linux 2.6.18-308.13.1.el5PAE GNU C (gcc), Fortran (gfortran), C++ (g++) #1 SMP i686 i686 i386 compilers for 32-bit applications; @@ -3569,11 +5664,11 @@ They are built with the configure process unless specified otherwise. (duck) Intel icc/icpc/ifort version 13.0.3 Mac OS X Mt. Lion 10.8.5 Apple clang/clang++ version 5.0 from Xcode 5.0.2 - 64-bit gfortran GNU Fortran (GCC) 4.8.2 + 64-bit gfortran GNU Fortran (GCC) 4.8.2 (swallow/kite) Intel icc/icpc/ifort version 14.0.2 Mac OS X Mavericks 10.9.2 Apple clang/clang++ version 5.1 from Xcode 5.1 - 64-bit gfortran GNU Fortran (GCC) 4.8.2 + 64-bit gfortran GNU Fortran (GCC) 4.8.2 (wren/quail) Intel icc/icpc/ifort version 14.0.2 @@ -4015,11 +6110,11 @@ New Features an attribute. (BMR - 2013/09/27) - Added wrappers for H5Rget_obj_type2 to retrieve the type of the object that an object reference points to. (BMR - 2013/09/27) - H5O_type_t H5Location::getRefObjType(void *ref, H5R_type_t ref_type) + H5O_type_t H5Location::getRefObjType(void *ref, H5R_type_t ref_type) - Added wrappers for H5Aexist to check whether an attribute exists given a name. (BMR - 2013/09/27) - bool H5::H5Location::attrExists(const char* name) - bool H5::H5Location::attrExists(const H5std_string& name) + bool H5::H5Location::attrExists(const char* name) + bool H5::H5Location::attrExists(const H5std_string& name) - Added a number of overloaded functions for convenience. (BMR - 2013/09/27) @@ -4672,11 +6767,11 @@ Bug Fixes since HDF5-1.8.10 Tools ----- - h5redeploy is changed to do this by default: - Installation directories: - prefix architecture-independent files. - exec_prefix architecture-dependent files, default is <prefix>. - libdir libraries, default is <exec_prefix>/lib. - includedir header files, default is <prefix/include>. + Installation directories: + prefix architecture-independent files. + exec_prefix architecture-dependent files, default is <prefix>. + libdir libraries, default is <exec_prefix>/lib. + includedir header files, default is <prefix/include>. This allows users to just change the first line of prefix=<...> and the effect will change libdir and includedir too. (AKC 2013/04/05 HDFFV-8358) - h5repack: Fixed failure to convert the layout of a small chunked @@ -4822,7 +6917,7 @@ They are built with the configure process unless specified otherwise. (duck) Intel icc/icpc/ifort version 13.0 Mac OS X Mountain Lion 10.8.1 Apple clang/clang++ version 4.2 from Xcode 4.6.1 - 64-bit gfortran GNU Fortran (GCC) 4.6.2 + 64-bit gfortran GNU Fortran (GCC) 4.6.2 (wren) Intel icc/icpc/ifort version 13.0.1.119 @@ -5472,9 +7567,9 @@ Supported Platforms Mac OS X Mountain Lion 10.8.1 cc Apple clang version 4.0 from Xcode 4.5.1 (owl) c++ Apple clang version 4.0 from Xcode 4.5.1 - gcc i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 from Xcode 4.5.1 - g++ i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 from Xcode 4.5.1 - gfortran GNU Fortran (GCC) 4.6.2 + gcc i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 from Xcode 4.5.1 + g++ i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 from Xcode 4.5.1 + gfortran GNU Fortran (GCC) 4.6.2 Tested Configuration Features Summary @@ -6062,9 +8157,9 @@ Supported Platforms Mac OS X Mountain Lion 10.8.1 cc Apple clang version 4.0 from Xcode 4.5.1 (owl) c++ Apple clang version 4.0 from Xcode 4.5.1 - gcc i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 from Xcode 4.5.1 - g++ i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 from Xcode 4.5.1 - gfortran GNU Fortran (GCC) 4.6.2 + gcc i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 from Xcode 4.5.1 + g++ i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 from Xcode 4.5.1 + gfortran GNU Fortran (GCC) 4.6.2 Tested Configuration Features Summary @@ -8138,7 +10233,7 @@ The following platforms and compilers have been tested for this release. Mac OS X 10.7.0 (Intel 32-bit) i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3) Darwin Kernel Version 10.7.0 GNU Fortran (GCC) version 4.4.0 20090123 (experimental) - [trunk revision 143587] + [trunk revision 143587] Fedora 12 2.6.32.16-150.fc12.ppc64 #1 SMP ppc64 GNU/Linux gcc (GCC) 4.4.4 20100630 (Red Hat 4.4.4-10) @@ -10418,7 +12513,7 @@ The following platforms and compilers have been tested for this release. Linux 2.6.18-63chaos #1 SMP Intel(R) C, C++, Fortran Compilers for SMP x86_64 GNU/Linux applications running on Intel(R) 64, (LLNL Zeus) Versions 9.1. - gcc/gfortran/g++ (GCC) 4.1.2. + gcc/gfortran/g++ (GCC) 4.1.2. Windows XP Visual Studio .NET Visual Studio 2005 w/ Intel Fortran 9.1 @@ -10703,8 +12798,8 @@ New Features Library ------- - - Added two new public routines: H5Pget_elink_fapl() and - H5Pset_elink_fapl(). (see bug #1247) (VC - 2008/10/13) + - Added two new public routines: H5Pget_elink_fapl() and + H5Pset_elink_fapl(). (see bug #1247) (VC - 2008/10/13) - Improved free space tracking in file to be faster. (QAK - 2008/10/06) - Added 'mounted' field to H5G_info_t struct. (QAK - 2008/07/15) @@ -10735,9 +12830,9 @@ New Features F90 API ------ - - Added optional parameter 'mounted' to H5Gget_info_f, - H5Gget_info_by_idx_f, H5Gget_info_by_name_f (MSB - 2008/09/24) - - Added H5Tget_native_type_f (MSB - 2008/09/30) + - Added optional parameter 'mounted' to H5Gget_info_f, + H5Gget_info_by_idx_f, H5Gget_info_by_name_f (MSB - 2008/09/24) + - Added H5Tget_native_type_f (MSB - 2008/09/30) C++ API @@ -10789,8 +12884,8 @@ Bug Fixes since HDF5-1.8.1 - When using shared szip, it is no longer necessary to specify the path to the shared szip libraries in LD_LIBRARY_PATH. (MAM - 2008/10/15). - - The file libhdf5_fortran.settings is not installed since its content - is included in libhdf5.settings now. (AKC - 2008/10/21) + - The file libhdf5_fortran.settings is not installed since its content + is included in libhdf5.settings now. (AKC - 2008/10/21) - "make DESTDIR=xxx install" failed to install some tools and files (e.g., h5cc and fortran modules). Fixed. (AKC - 2008/10/8). @@ -10856,9 +12951,9 @@ Bug Fixes since HDF5-1.8.1 (NAF - 2008/10/15) - Fixed unnecessary indentation of committed datatypes in h5dump. (NAF - 2008/10/15) - - Fixed bugs in h5stat: segmemtation fault when printing groups and - print warning message when traversal of objects is unsuccessful. - (see bug #1253) (VC- 2008/10/13) + - Fixed bugs in h5stat: segmemtation fault when printing groups and + print warning message when traversal of objects is unsuccessful. + (see bug #1253) (VC- 2008/10/13) - Fixed bug in h5ls that prevented relative group listings (like "h5ls foo.h5/bar") from working correctly (QAK - 2008/06/03) - h5dump: when doing binary output (-b), the stdout printing of @@ -10870,24 +12965,24 @@ Bug Fixes since HDF5-1.8.1 ------ - h5sselect_elements_f: Added additional operators H5S_SELECT_APPEND and H5S_SELECT_PREPEND (MSB - 2008/09/30) - - h5sget_select_elem_pointlist: Fixed list of returned points by + - h5sget_select_elem_pointlist: Fixed list of returned points by rearranging the point list correctly by accounting for C conventions. (MSB - 2008/09/30) - h5sget_select_hyper_blocklist_f: Fixed error in transposed dimension of arrays.(MSB - 2008/9/30) - h5sget_select_bounds_f: Swapped array bounds to account for C and Fortran reversed array notation (MSB - 2008/9/30) - - Changed to initializing string to a blank character instead of a + - Changed to initializing string to a blank character instead of a null type in tH5P.f90 to fix compiling error using AIX 5.3.0 (MSB - 2008/7/29) - Fixed missing commas in H5test_kind.f90 detected by NAG compiler (MSB - 2008/7/29) - Fixed passing and array to a scalar in tH5A_1_8.f90 detected by NAG compiler (MSB - 2008/7/29) - - Added the ability of the test programs to use the status of + - Added the ability of the test programs to use the status of HDF5_NOCLEANUP to determine if the *.h5 files should be removed or not after the tests are completed (MSB - 2008/10/1) - - In nh5tget_offset_c: (MSB 9/12/2008) + - In nh5tget_offset_c: (MSB 9/12/2008) If offset was equal to 0 it returned the error code of -1, this was changed to return an error code of -1 when the offset value is < 0. @@ -10923,15 +13018,15 @@ Platforms Tested ================ The following platforms and compilers have been tested for this release. - AIX 5.3 xlc 7.0.0.8 - xlf 09.01.0000.0008 - xlC 7.0.0.8 - mpcc_r 7.0.0.8 - mpxlf_r 09.01.0000.0008 + AIX 5.3 xlc 7.0.0.8 + xlf 09.01.0000.0008 + xlC 7.0.0.8 + mpcc_r 7.0.0.8 + mpxlf_r 09.01.0000.0008 Cray XT3 (2.0.41) cc (pgcc) 7.1-4 (red storm) ftn (pgf90) 7.1-4 - CC (pgCC) 7.1-4 + CC (pgCC) 7.1-4 FreeBSD 6.3-STABLE i386 gcc 3.4.6 [FreeBSD] 20060305 (duty) g++ 3.4.6 [FreeBSD] 20060305 @@ -11326,11 +13421,11 @@ New Features F90 API ------ - New H5A, H5G, H5L, H5O, and H5P APIs to enable 1.8 features were - added. See "Release 1.8.1 (current release) versus Release 1.8.0" in - the document "HDF5 Software Changes from Release to Release" - (http://hdfgroup.org/HDF5/doc/ADGuide/Changes.html) for the - complete list of the new APIs. + - New H5A, H5G, H5L, H5O, and H5P APIs to enable 1.8 features were + added. See "Release 1.8.1 (current release) versus Release 1.8.0" in + the document "HDF5 Software Changes from Release to Release" + (http://hdfgroup.org/HDF5/doc/ADGuide/Changes.html) for the + complete list of the new APIs. C++ API ------ @@ -11405,12 +13500,12 @@ Bug Fixes since HDF5-1.8.0 In addition, data member IdComponent::id was moved into subclasses: Attribute, DataSet, DataSpace, DataType, H5File, Group, and PropList. (BMR - 2008/05/20) - - IdComponent::dereference was incorrect; it was changed from: - void IdComponent::dereference(IdComponent& obj, void* ref) - to: - void H5Object::dereference(H5File& h5file, void* ref) - void H5Object::dereference(H5Object& obj, void* ref) - (BMR - 2008/05/20) + - IdComponent::dereference was incorrect; it was changed from: + void IdComponent::dereference(IdComponent& obj, void* ref) + to: + void H5Object::dereference(H5File& h5file, void* ref) + void H5Object::dereference(H5Object& obj, void* ref) + (BMR - 2008/05/20) - Revised Attribute::write and Attribute::read wrappers to handle memory allocation/deallocation properly. (bugzilla 1045) (BMR - 2008/05/20) @@ -11422,7 +13517,7 @@ The following platforms and compilers have been tested for this release. Cray XT3 (2.0.41) cc (pgcc) 7.1-4 (red storm) ftn (pgf90) 7.1-4 - CC (pgCC) 7.1-4 + CC (pgCC) 7.1-4 mpicc 1.0.2 mpif90 1.0.2 @@ -12135,7 +14230,7 @@ compilers (12) AMD Opteron x86_64 (13) ifort (14) Yes with C and Fortran, but not with C++ - (15) Using Visual Studio 2005 or Cygwin + (15) Using Visual Studio 2005 or Cygwin (16) Not tested for this release. Compiler versions for each platform are listed in the preceding "Platforms Tested" table. diff --git a/release_docs/HISTORY-1_8_0-1_10_0.txt b/release_docs/HISTORY-1_8_0-1_10_0.txt index b0377b1..616aa24 100644 --- a/release_docs/HISTORY-1_8_0-1_10_0.txt +++ b/release_docs/HISTORY-1_8_0-1_10_0.txt @@ -5,7 +5,7 @@ HDF5 HISTORY INTRODUCTION This document describes the development history between the HDF5-1.8.0 and -HDF5 1.10.0 releases. For more iformation see the SVN log. +HDF5 1.10.0 releases. For more information see the SVN log. Information about supported and tested platforms is provided for historical reasons only and may not be accurate. @@ -240,7 +240,7 @@ New Features using --enable-fortran --enable-fortran2003 configure flags AND if fortran compiler is Fortran2003 compliant: - - Subroutines overloaded with the C_PTR derived type: + - Subroutines overloaded with the C_PTR derived type: h5pget_f h5pget_fill_value_f h5pinsert_f @@ -251,53 +251,52 @@ New Features h5rderefrence_f h5rget_name_f h5rget_obj_type_f - - Subroutines overloaded with the C_PTR derived type - and simplified signatures: + - Subroutines overloaded with the C_PTR derived type and simplified signatures: h5aread_f h5awrite_f h5dread_f h5dwrite_f - - New subroutines + - New subroutines h5dvlen_reclaim_f h5literate_by_name_f h5literate_f h5ovisit_f h5tconvert_f - - Subroutines with additional optional parameters: + - Subroutines with additional optional parameters: h5pcreate_class_f (EIP - 2011/10/14) - - Added for the C APIs the Fortran wrappers: - h5dget_access_plist_f - h5iis_valid_f - h5pset_chunk_cache_f - h5pget_chunk_cache_f - (MSB - 2009/04/17) + - Added for the C APIs the Fortran wrappers: + h5dget_access_plist_f + h5iis_valid_f + h5pset_chunk_cache_f + h5pget_chunk_cache_f + (MSB - 2009/04/17) C++ Library: ------------ - - New member function added + - New member function added - The assignment operator ArrayType::operator= is added because ArrayType - has pointer data members. + The assignment operator ArrayType::operator= is added because ArrayType + has pointer data members. - (BMR, 2016/03/07, HDFFV-9562) + (BMR, 2016/03/07, HDFFV-9562) - - New member functions - + Overloaded CommonFG::getObjnameByIdx to take char* for name - + Overloaded CommonFG::getObjTypeByIdx to return type name as a char*. - (BMR - 2010/05/02) - + DataSet::getInMemDataSize() to simplify getting the dataset's - data size in memory. (BMR - 2009/07/26) - - These member functions were added as wrapper for H5Rdereference to - replace the incorrect IdComponent::dereference(). + - New member functions + + Overloaded CommonFG::getObjnameByIdx to take char* for name + + Overloaded CommonFG::getObjTypeByIdx to return type name as a char*. + (BMR - 2010/05/02) + + DataSet::getInMemDataSize() to simplify getting the dataset's + data size in memory. (BMR - 2009/07/26) + - These member functions were added as wrapper for H5Rdereference to + replace the incorrect IdComponent::dereference(). void H5Object::dereference(H5File& h5file, void* ref) void H5Object::dereference(H5Object& obj, void* ref) - In addition, these constructors were added to create the associated - objects by way of dereference: + In addition, these constructors were added to create the associated + objects by way of dereference: Attribute(H5Object& obj, void* ref); Attribute(H5File& file, void* ref); DataSet(H5Object& obj, void* ref); @@ -306,140 +305,140 @@ New Features DataType(H5File& file, void* ref); Group(H5Object& obj, void* ref); Group(H5File& obj, void* ref); - (BMR - 2008/08/10) + (BMR - 2008/08/10) Tools: ------ - - h5repack: Added ability to use plugin filters. HDFFV-8345 (ADB - 2013/09/04). - - h5dump: Added option -N --any_path, which searches the file for paths that + - h5repack: Added ability to use plugin filters. HDFFV-8345 (ADB - 2013/09/04). + - h5dump: Added option -N --any_path, which searches the file for paths that match the search path. HDFFV-7989 (ADB - 2013/08/12). - - h5dump: Added optional arg 0 to -A, which excludes attributes from display. + - h5dump: Added optional arg 0 to -A, which excludes attributes from display. HDFFV-8134 (ADB - 2013/08/01). - - h5dump: Fixed displaying compression ratio for unknown or user-defined + - h5dump: Fixed displaying compression ratio for unknown or user-defined filters. HDFFV-8344 (XCAO 2013/03/19) - - h5dump: Changed UNKNOWN_FILTER to USER_DEFINED_FILTER for user defined filter. + - h5dump: Changed UNKNOWN_FILTER to USER_DEFINED_FILTER for user defined filter. HDFFV-8346 (XCAO 2013/03/19) - - h5dump: Added capability for "-a" option to show attributes containing "/" + - h5dump: Added capability for "-a" option to show attributes containing "/" by using an escape character. For example, for a dataset "/dset" containing attribute "speed(m/h)", use "h5dump -a "/dset/speed(\/h)" to show the content of the attribute. See details at HDFFV-7523 (PC -- 2012/03/12) - - h5dump: Added ability to apply command options across multiple files using a + - h5dump: Added ability to apply command options across multiple files using a wildcard in the filename. Example; "h5dump -H -d Dataset1 tarr*.h5". HDFFV-7876 (ADB - 2012/03/12). - - h5repack: Improved performance for big chunked datasets (size > 128MB) + - h5repack: Improved performance for big chunked datasets (size > 128MB) when used with layout (-l) or compression (-f) option. It would perform much better prior to the improvement, especially for cases that chunk dimentions looks like "1024x5x1" (compare to "1x5x1024"). When bigger numbers are toward front and smaller number is toward back in chunk dimentions. HDFFV-7862 (JKM - 2012/03/01) - - h5dump: Added new option --no-compact-subset. This option will not + - h5dump: Added new option --no-compact-subset. This option will not interpret the '[' character as starting the compact form of subsetting. This is useful when the "h5dump error: unable to open dataset "datset_name"" message is output because a dataset name contains a '[' character. HDFFV-7689 (ADB - 2012/01/31) - - h5dump: Corrected schema location: + - h5dump: Corrected schema location: <hdf5:HDF5-File xmlns:hdf5="http://hdfgroup.org/HDF5/XML/schema/HDF5-File" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hdfgroup.org/HDF5/XML/schema/HDF5-File http://www.hdfgroup.org/HDF5/XML/schema/HDF5-File.xsd"> (ADB - 2011/08/10) - - h5diff: Added new level for -v (verbose) option. The new levels are + - h5diff: Added new level for -v (verbose) option. The new levels are 1 and 2. So -v1 and -v2 can be specified to view more information about attributes differences. Bug#2121 (JKM 2011/3/23) - - h5dump: Added new option --enable-error-stack. This option will display + - h5dump: Added new option --enable-error-stack. This option will display error stack information in the output stream. This is useful when the "h5dump: Unable to print data" message is output. (ADB - 2011/02/24) - - h5diff: Add a new flag --exclude-path. Specified path to an object will + - h5diff: Add a new flag --exclude-path. Specified path to an object will be excluded from comparing the two files or two groups. If group is specified all the member objects will be excluded. (JKM - 2010/09/16). - - h5ls: Add new flag --no-dangling-links. (refer to --help for details) + - h5ls: Add new flag --no-dangling-links. (refer to --help for details) (JKM - 2010/06/15) - - h5ls: Add new flag --follow-symlinks. (refer to --help for details) + - h5ls: Add new flag --follow-symlinks. (refer to --help for details) (JKM - 2010/05/25) - - h5diff: Add new flag --no-dangling-links. (refer to --help for details) + - h5diff: Add new flag --no-dangling-links. (refer to --help for details) (JKM - 2010/02/10) - - h5diff: Add new flag --follow-symlinks. (refer to --help for details) + - h5diff: Add new flag --follow-symlinks. (refer to --help for details) (JKM - 2010/01/25) - - h5diff: fix for displaying garbage value on LE machine for BE data. + - h5diff: fix for displaying garbage value on LE machine for BE data. (JKM - 2009/11/20) - - h5dump: subsetting now allows default for count. Also trailing ; in short form + - h5dump: subsetting now allows default for count. Also trailing ; in short form can be omitted after last specified value. (ADB - 2009/09/04) - - h5dump/h5ls: now can display data in region references + - h5dump/h5ls: now can display data in region references using new -R, --region flag. (ADB - 2009/09/04) - - h5diff: new flag, -c, --compare, list objects that are not comparable. + - h5diff: new flag, -c, --compare, list objects that are not comparable. (PVN - 2009/4/10 - 1368) - - h5diff new flag, -N, --nan, avoids NaNs detection. (PVN - 2009/4/10) - - h5dump correctly specifies XML dtd / schema urls (ADB - 2009/4/3 - 1519) - - h5repack now handles group creation order. (PVN - 2009/4/2 - 1402) - - h5dump: added a printing of the compression ratio of uncompressed and compressed + - h5diff new flag, -N, --nan, avoids NaNs detection. (PVN - 2009/4/10) + - h5dump correctly specifies XML dtd / schema urls (ADB - 2009/4/3 - 1519) + - h5repack now handles group creation order. (PVN - 2009/4/2 - 1402) + - h5dump: added a printing of the compression ratio of uncompressed and compressed sizes for cases where compression filters are present. (PVN - 2008/05/01) - - h5dump: added an option to allow a user defined formatting string for printf + - h5dump: added an option to allow a user defined formatting string for printf regarding floating point numbers. (PVN - 2008/05/06) - - h5dump: support for external links, display the object that the external link + - h5dump: support for external links, display the object that the external link points to. (PVN - 2008/05/12) - - h5repack: add a userblock to an HDF5 file during the repack. (PVN - 2008/08/26) - - h5repack: add 2 options that call H5Pset_alignment in the repacked file. (PVN - 2008/08/29) - - h5ls: added capability to traverse through external links when the -r + - h5repack: add a userblock to an HDF5 file during the repack. (PVN - 2008/08/26) + - h5repack: add 2 options that call H5Pset_alignment in the repacked file. (PVN - 2008/08/29) + - h5ls: added capability to traverse through external links when the -r (recursive) flag is given. (NAF - 2008/09/16) - - h5ls: added -E option to enable traversal of external links. h5ls will + - h5ls: added -E option to enable traversal of external links. h5ls will not traverse external links without this flag being set. (NAF - 2008/10/06) - - h5diff: added support for long double (PVN - 2008/10/28) - - h5dump: binary output defaults to NATIVE with -b optionally accepting + - h5diff: added support for long double (PVN - 2008/10/28) + - h5dump: binary output defaults to NATIVE with -b optionally accepting the form of binary output (NATIVE, FILE, BE, LE). (PVN - 2008/10/30) - - h5diff: return 1 for file differences when both file graphs differ by any object. + - h5diff: return 1 for file differences when both file graphs differ by any object. Error return code was changed to 2 from -1. (PVN - 2008/10/30) - - h5import: TEXTFPE (scientific format) was deprecated. Use TEXTFP + - h5import: TEXTFPE (scientific format) was deprecated. Use TEXTFP instead (PVN - 2008/10/30) - - h5repack: When user doesn't specify a chunk size, h5repack now defines a default + - h5repack: When user doesn't specify a chunk size, h5repack now defines a default chunk size as the same size of the size of the hyperslab used to read the chunks. The size of the hyperslabs are defined as the size of each dimension or a predefined constant, whatever is smaller. This assures that the chunk read fits in the chunk cache. (PVN - 2008/11/21) - - h5diff: h5diff treats two INFINITY values different. Fixed by checking (value==expect) + - h5diff: h5diff treats two INFINITY values different. Fixed by checking (value==expect) before call ABS(...) at h5diff_array.c This will make that (INF==INF) is true (INF is treated as an number instead of NaN) (PC -- 2009/07/28) - - h5diff: add option "--use-system-epsilon" to print difference if (|a-b| > EPSILON) + - h5diff: add option "--use-system-epsilon" to print difference if (|a-b| > EPSILON) Change default to use strict equality (PC -- 2009/09/12) High-Level APIs: --------------- - C Packet Table API - ------------------ - - Replacement of a public function + C Packet Table API + ------------------ + - Replacement of a public function The existing function H5PTcreate_fl limits applications to deflate compression only. The public function H5PTcreate is added to replace H5PTcreate_fl. H5PTcreate takes a property list ID to provide flexibility on creation properties. - hid_t H5PTcreate(hid_t loc_id, const char *dset_name, + hid_t H5PTcreate(hid_t loc_id, const char *dset_name, hid_t dtype_id, hsize_t chunk_size, hid_t plist_id); (BMR, 2016/03/04, HDFFV-8623) - - New public functions + - New public functions Two accessor functions were added per HDFFV-8623/patch 003. - /* Returns the ID of the dataset associated with the packet table */ - hid_t H5PTget_dataset(hid_t table_id); + /* Returns the ID of the dataset associated with the packet table */ + hid_t H5PTget_dataset(hid_t table_id); - /* Returns the ID of the datatype the packet table uses */ - hid_t H5PTget_type(hid_t table_id); + /* Returns the ID of the datatype the packet table uses */ + hid_t H5PTget_type(hid_t table_id); (BMR, 2016/03/04, HDFFV-8623) - - Regarding #ifdef VLPT_REMOVED + - Regarding #ifdef VLPT_REMOVED The #ifdef VLPT_REMOVED blocks are removed from the PT library source except the following cases: @@ -447,54 +446,54 @@ New Features + H5PTfree_vlen_readbuff() now became H5PTfree_vlen_buff() (BMR, 2016/03/04, HDFFV-442) - C++ Packet Table API - -------------------- - - New constructor + C++ Packet Table API + -------------------- + - New constructor An overloaded constructor is added to FL_PacketTable and takes a property list ID to provide flexibility on creation properties. - FL_PacketTable(hid_t fileID, hid_t plist_id, const char* name, hid_t dtypeID, hsize_t chunkSize); + FL_PacketTable(hid_t fileID, hid_t plist_id, const char* name, hid_t dtypeID, hsize_t chunkSize); (BMR, 2016/03/08, HDFFV-8623) - - New public functions + - New public functions Two accessor wrappers to class PacketTable, per HDFFV-8623/patch 004. - /* Returns the ID of the dataset associated with the packet table */ - hid_t PacketTable::GetDataset() + /* Returns the ID of the dataset associated with the packet table */ + hid_t PacketTable::GetDataset() - /* Returns the ID of the datatype the packet table uses */ - hid_t PacketTable::GetDataset() + /* Returns the ID of the datatype the packet table uses */ + hid_t PacketTable::GetDataset() (BMR, 2016/03/04, HDFFV-8623) - - Member functions having "char*" as an argument + - Member functions having "char*" as an argument Overloaded functions were added to provide "const char*" argument, the existing version will be deprecated. (BMR, 2016/03/04) - - Regarding #ifdef VLPT_REMOVED + - Regarding #ifdef VLPT_REMOVED The #ifdef VLPT_REMOVED blocks are removed from the PT library source except the following cases: - + VL_PacketTable::IsVariableLength() is moved to PacketTable - + VL_PacketTable::FreeReadBuff() now became PacketTable::FreeBuff() + + VL_PacketTable::IsVariableLength() is moved to PacketTable + + VL_PacketTable::FreeReadBuff() now became PacketTable::FreeBuff() (BMR, 2016/03/04, HDFFV-442) - Internal header file + Internal header file -------------------- - - A new API function H5DOwrite_chunk. It writes a data chunk directly + - A new API function H5DOwrite_chunk. It writes a data chunk directly into a file bypassing hyperslab selection, data conversion, and filter pipeline. The user must be careful with the function and clearly understand the I/O process of the library. (SLU - 2013/2/11) - - New API: h5ltpath_valid (Fortran: h5ltpath_valid_f) which checks + - New API: h5ltpath_valid (Fortran: h5ltpath_valid_f) which checks if a path is correct and determines if a link resolves to a valid object and checks that the link does not dangle. (MSB- 2012/3/15) - - Added Fortran wrappers for Dimension Scale APIs. HDFFV-3797 + - Added Fortran wrappers for Dimension Scale APIs. HDFFV-3797 h5dsset_scale_f h5dsattach_scale_f h5dsdetach_scale_f @@ -506,7 +505,7 @@ New Features h5dsget_num_scales_f (EIP for SB - 2011/10/13) - - Table: In version 3.0 of Table, "NROWS" (used to store number of records) was + - Table: In version 3.0 of Table, "NROWS" (used to store number of records) was deprecated (PVN - 2008/11/24) Documentation @@ -525,68 +524,68 @@ Bug Fixes since HDF5-1.8.0 release Library ------- - - Incorrect usage of list in CMake COMPILE_DEFINITIONS set_property + - Incorrect usage of list in CMake COMPILE_DEFINITIONS set_property - The CMake command, set_property with COMPILE_DEFINITIONS property - needs a quoted semi-colon separated list of values. CMake will - transform the list to a series of -D{value} for the compile. + The CMake command, set_property with COMPILE_DEFINITIONS property + needs a quoted semi-colon separated list of values. CMake will + transform the list to a series of -D{value} for the compile. - (ADB - 2014/12/09, HDFV-9041) + (ADB - 2014/12/09, HDFV-9041) - - H5Z.c: H5Zfilter_avail(H5Z_filter_t id) + - H5Z.c: H5Zfilter_avail(H5Z_filter_t id) Added else block if the call to the internal H5Z_filter_avail(id) does not fail and returns FALSE. This block calls the H5PL_load(H5PL_TYPE_FILTER, (int)id) function to attempt to dynamically load the filter plugin. (ADB - 2014/03/03 HDFFV-8629) - - Added const qualifier to source buffer parameters in H5Dgather and + - Added const qualifier to source buffer parameters in H5Dgather and H5D_scatter_func_t (H5Dscatter callback). (NAF - 2013/7/02) - - Fixed an error involving failure to write fill values to the user's + - Fixed an error involving failure to write fill values to the user's buffer when reading unallocated chunks from datasets that have a fill value set to H5D_FILL_VALUE_DEFAULT. A consequence of this was the reporting of spurious data values in h5dump and h5diff output. (HDFFV-8247; JP - 2013/05/03) - - Fixed an error that could occur when calling H5Ocopy within an + - Fixed an error that could occur when calling H5Ocopy within an H5Literate callback (and possibly other situations). (NAF - 2012/7/25 - HDFFV-5853) - - Fixed an error that would occur when copying an object with attribute + - Fixed an error that would occur when copying an object with attribute creation order tracked and indexed. (NAF - 2012/3/28 - HDFFV-7762) - - Fixed a bug in H5Ocopy(): When copying an opened object, call the - object's flush class action to ensure that cached data is flushed + - Fixed a bug in H5Ocopy(): When copying an opened object, call the + object's flush class action to ensure that cached data is flushed so that H5Ocopy will get the correct data. - (VC - 2012/3/27 - HDFFV-7853) - - When an application tries to write or read many small data chunks and + (VC - 2012/3/27 - HDFFV-7853) + - When an application tries to write or read many small data chunks and runs out of memory, the library had a seg fault. The fix is to return the error stack with proper information. (SLU - 2012/3/23. Issue 7785) - - H5Pset_data_transform had seg fault in some cases like x*-100. It + - H5Pset_data_transform had seg fault in some cases like x*-100. It works correctly now and handles other cases like 100-x or 2/x. (SLU - 2012/3/15. Issue 7922) - - Fixed rare corruption bugs that could occur when using the new object + - Fixed rare corruption bugs that could occur when using the new object header format. (NAF - 2012/3/15 - HDFFV-7879) - - Creating a dataset in a read-only file caused seg fault when the file + - Creating a dataset in a read-only file caused seg fault when the file is closed. It's fixed. The attemp to create a dataset will fail with the error stack indicating the file is read-only. (SLU - 2012/1/25. Issue 7756) - - Fixed a seg fault that could occur when shrinking a dataset with chunks + - Fixed a seg fault that could occur when shrinking a dataset with chunks larger than 1 MB. (NAF - 2011/11/30 - HDFFV-7833) - - Fixed a bug that could cause file corruption when copying named + - Fixed a bug that could cause file corruption when copying named datatypes to a file using shared messages. (NAF - 2011/11/14) - - Fixed a bug that could cause H5Oget_info to return the wrong address + - Fixed a bug that could cause H5Oget_info to return the wrong address after copying a named datatype. (NAF - 2011/11/14) - - The library allowed the conversion of strings between ASCII and UTF8 + - The library allowed the conversion of strings between ASCII and UTF8 (Issue 7582). We have corrected it to report an error under this situation. (SLU - 2011/11/8) - - The library had seg fault when it tried to shrink the size of compound type + - The library had seg fault when it tried to shrink the size of compound type through H5Tset_size immediately after the type was created (Issue 7618). It's fixed now. (SLU - 2011/10/26) - - Fixed a bug that occurred when using H5Ocopy on a committed datatype + - Fixed a bug that occurred when using H5Ocopy on a committed datatype containing an attribute using that committed datatype. (NAF - 2011/10/13 - Issue 5854) - - #ifdef _WIN32 instances changed to #ifdef H5_HAVE_WIN32_API and added + - #ifdef _WIN32 instances changed to #ifdef H5_HAVE_WIN32_API and added H5_HAVE_VISUAL_STUDIO checks where necessary. CMake only as configure never set _WIN32. - - CLANG compiler with the options -fcatch-undefined-behavior and -ftrapv + - CLANG compiler with the options -fcatch-undefined-behavior and -ftrapv discovered 3 problems in tests and tools' library (Issue 7674): 1. In dsets.c, left shifting an unsigned int for 32 bits or more caused undefined behavior. @@ -595,193 +594,193 @@ Bug Fixes since HDF5-1.8.0 release 3. In tools/lib/h5tools_str.c, right shifting an int value for 32 bits or more caused undefined behavior. All the problems have been corrected. (SLU - 2011/9/2) - - In v1.6 library, there was EOA for the whole MULTI file saved in the + - In v1.6 library, there was EOA for the whole MULTI file saved in the super block. We took it out in v1.8 library because it's meaningless for the MULTI file. v1.8 library saves the EOA for the metadata file, instead. But this caused some backward compatibility problem. v1.8 library couldn't open the file created with v1.6 library. We fixed the problem by checking the EOA value to detect the file created with v1.6 library. (SLU - 2011/6/22) - - When a dataset had filters and reading data failed, the error message + - When a dataset had filters and reading data failed, the error message didn't say which filter isn't registered. It's fixed now. (SLU - 2011/6/3) - - The datatype handler created with H5Tencode/decode used to have the + - The datatype handler created with H5Tencode/decode used to have the reference count 0 (zero). I have fixed it. It is 1 (one) now. (SLU - 2011/2/18) - - Fixed a bug that caused big endian machines to generate corrupt files + - Fixed a bug that caused big endian machines to generate corrupt files when using the scale-offset filter with floating point data or fill values. Note that such datasets will no longer be readable by any machine after this patch. (NAF - 2010/02/02 - Bug 2131) - - Retrieving a link's name by index in the case where the link is + - Retrieving a link's name by index in the case where the link is external and the file that the link refers to doesn't exist will now fail gracefully rather than cause a segmentation fault. (MAM - 2010/11/17) - - Modified library to always cache symbol table information. Libraries + - Modified library to always cache symbol table information. Libraries version 1.6.3 have a bug which causes them to require this information for some operations. (NAF - 2010/09/21 - 1864) - - Fixed a bug that could occur when getting information for a new-style + - Fixed a bug that could occur when getting information for a new-style group that was previously opened through a file handle that was later closed. (NAF - 2010/09/15) - - Added define check in H5public.h if stdint.h is supported by the C++ + - Added define check in H5public.h if stdint.h is supported by the C++ compiler. This define is only available on Windows with VS2010 and using CMake to build the library. (ADB - 2010/09/13 - Bug 1938) - - H5Eset_current_stack now also closes the error stack to be set as the + - H5Eset_current_stack now also closes the error stack to be set as the default. This is to avoid a potential problem (Bug 1799). (SLU - 2010/9/7) - - Fixed the bug in the filter's public CAN_APPLY function. The return + - Fixed the bug in the filter's public CAN_APPLY function. The return value should be htri_t not herr_t (Bug #1239). (SLU - 2010/8/5) - - Fixed a bug in the direct I/O driver that could render files with + - Fixed a bug in the direct I/O driver that could render files with certain kinds of unaligned data unreadable or corrupt them. (NAF - 2010/07/28) - - valgrind reported an error of copying data to itself when a new attribute + - valgrind reported an error of copying data to itself when a new attribute is written (Bug #1956). I fixed it by taking out the memcpy step in the attribute code. (SLU - 2010/07/28) - - Fixed a bug that could cause file corruption when using non-default + - Fixed a bug that could cause file corruption when using non-default sizes of addresses and/or lengths. This bug could also cause uncorrupted files with this property to be unreadable. This bug was introduced in 1.8.5. (NAF - 2010/07/16 - 1951) - - Fixed a file corruption bug that could happen when shrinking a + - Fixed a file corruption bug that could happen when shrinking a compressed dataset. (NAF - 2010/05/20) - - Fixed some memory leaks in VL datatype conversion when strings are + - Fixed some memory leaks in VL datatype conversion when strings are used as fill values. (MAM - 2010/05/12 - BZ# 1826) - - Fixed a bug when copying objects with NULL references with the + - Fixed a bug when copying objects with NULL references with the H5O_COPY_EXPAND_REFERENCE_FLAG flag set. (NAF - 2010/04/08 - 1815) - - Files can now be concurrently opened more than once using the core file + - Files can now be concurrently opened more than once using the core file driver, as long as the backing store is used. (NAF - 2010/03/09) - - Added support for H5O_COPY_EXPAND_EXT_LINK_FLAG to H5Ocopy. External + - Added support for H5O_COPY_EXPAND_EXT_LINK_FLAG to H5Ocopy. External links will now be expanded if this flag is set. (NAF - 2010/03/05 - 1733) - - Fixed a bug where the library, when traversing an external link, would + - Fixed a bug where the library, when traversing an external link, would reopen the source file if nothing else worked. (NAF - 2010/03/05) - - Fixed an intermittent bug in the b-tree code which could be triggered + - Fixed an intermittent bug in the b-tree code which could be triggered by expanding and shrinking chunked datasets in certain ways. (NAF - 2010/02/16) - - H5Tdetect_class said a VL string is a string type. But when it's + - H5Tdetect_class said a VL string is a string type. But when it's in a compound type, it said it's a VL type (Bug #1584). I fixed it to be consistent. It always return string type. (SLU - 2009/12/10) - - Fixed a bug where writing and deleting many global heap objects (i.e. + - Fixed a bug where writing and deleting many global heap objects (i.e. variable length data) would render the file unreadable. Previously created files exhibiting this problem should now be readable. (NAF - 2009/10/27 - 1483) - - Fixed incorrect return value for H5Pget_preserve. (AKC - 2009/10/08 - 1628) - - Fixed an assertion failure that occurred when H5Ocopy was called on a + - Fixed incorrect return value for H5Pget_preserve. (AKC - 2009/10/08 - 1628) + - Fixed an assertion failure that occurred when H5Ocopy was called on a dataset using a vlen inside a compound. (NAF - 2009/10/02 - 1597) - - Fixed incorrect return value for H5Pget_filter_by_id1/2 in H5Ppublic.h. + - Fixed incorrect return value for H5Pget_filter_by_id1/2 in H5Ppublic.h. (NAF - 2009/09/25 - 1620) - - Fixed a bug where properties weren't being compared with the registered + - Fixed a bug where properties weren't being compared with the registered compare callback. (NAF - 2009/09/25 - 1555) - - Fixed a bug where H5Pget_fitler_by_id would succeed when called for a + - Fixed a bug where H5Pget_fitler_by_id would succeed when called for a filter that wasn't present. (NAF - 2009/06/25 - 1250) - - Fixed an issue with committed compound datatypes containing a vlen. + - Fixed an issue with committed compound datatypes containing a vlen. Also fixed memory leaks involving committed datatypes. (NAF - 2009/06/10 - 1593) - - Added versioning to H5Z_class_t struct to allow compatibility with 1.6 + - Added versioning to H5Z_class_t struct to allow compatibility with 1.6 API. (NAF - 2009/04/20 - 1533) - - Fixed a problem with using data transforms with non-native types in the + - Fixed a problem with using data transforms with non-native types in the file. (NAF - 2009/04/20 - 1548) - - Added direct.h include file to windows section of H5private.h + - Added direct.h include file to windows section of H5private.h to fix _getcwd() warning. (ADB - 2009/04/14 - 1536) - - Fixed a bug that prevented external links from working after calling + - Fixed a bug that prevented external links from working after calling H5close(). (NAF - 2009/04/10 - 1539) - - Modified library to write cached symbol table information to the + - Modified library to write cached symbol table information to the superblock, to allow library versions 1.3.0 to 1.6.3 to read files created by this version. (NAF - 2009/04/08 - 1423) - - Changed skip lists to use a deterministic algorithm. The library should + - Changed skip lists to use a deterministic algorithm. The library should now never call rand() or srand(). (NAF - 2009/04/08 - 503) - - Fixed a bug where H5Lcopy and H5Lmove wouldn't create intermediate + - Fixed a bug where H5Lcopy and H5Lmove wouldn't create intermediate groups when that property was set. (NAF - 2009/04/07 - 1526) - - Fixed a bug that caused files with a user block to grow by the size of + - Fixed a bug that caused files with a user block to grow by the size of the user block every time they were opened. (NAF - 2009/03/26 - 1499) - - Fixed a rare problem that could occur with files using the old (pre 1.4) + - Fixed a rare problem that could occur with files using the old (pre 1.4) array datatype. (NAF - 2009/03/23) - - Modified library to be able to open files with corrupt root group symbol + - Modified library to be able to open files with corrupt root group symbol table messages, and correct these errors if they are found. Such files can only be successfully opened with write access. (NAF - 2009/03/23 - 1189) - - Removed the long_long #define and replaced all instances with + - Removed the long_long #define and replaced all instances with "long long". This caused problems with third party products. All currently supported compliers support the type. (ADB - 2009/03/05) - - Fixed various bugs that could prevent the fill value from being written + - Fixed various bugs that could prevent the fill value from being written in certain rare cases. (NAF - 2009/02/26 - 1469) - - Fixed a bug that prevented more than one dataset chunk from being cached + - Fixed a bug that prevented more than one dataset chunk from being cached at a time. (NAF - 2009/02/12 - 1015) - - Fixed an assertion failure caused by opening an attribute multiple times + - Fixed an assertion failure caused by opening an attribute multiple times through multiple file handles. (NAF - 2009/02/12 - 1420) - - Fixed a problem that could prevent the user from adding attributes (or + - Fixed a problem that could prevent the user from adding attributes (or any object header message) in some circumstances. (NAF - 2009/02/12 - 1427) - - Fixed a bug that could cause problems when an attribute was added to a + - Fixed a bug that could cause problems when an attribute was added to a committed datatype using the committed datatype's datatype. (NAF - 2009/02/12) - - Fixed a bug that could cause problems when copying an object with a + - Fixed a bug that could cause problems when copying an object with a shared message in its own object header. (NAF - 2009/01/29) - - Changed H5Tset_order to properly reject H5T_ORDER_NONE for most + - Changed H5Tset_order to properly reject H5T_ORDER_NONE for most datatypes. (NAF - 2009/01/27 - 1443) - - Fixed a bug where H5Tpack wouldn't remove trailing space from an + - Fixed a bug where H5Tpack wouldn't remove trailing space from an otherwise packed compound type. (NAF - 2009/01/14) - - Fixed up some old v2 btree assertions that get run in debug mode that + - Fixed up some old v2 btree assertions that get run in debug mode that were previously failing on compilation, and removed some of the more heavily outdated and non-rewritable ones. (MAM - 2008/12/15) - - Fixed a bug that could cause problems when "automatically" unmounting + - Fixed a bug that could cause problems when "automatically" unmounting multiple files. (NAF - 2008/11/17) - - H5Ovisit and H5Ovisit_by_name will now properly terminate when the + - H5Ovisit and H5Ovisit_by_name will now properly terminate when the callback function returns a positive value on the starting object. (NAF - 2008/11/03) - - Fixed an error where a null message could be created that was larger + - Fixed an error where a null message could be created that was larger than could be written to the file. (NAF - 2008/10/23) - - Corrected error with family/split/multi VFD not updating driver info + - Corrected error with family/split/multi VFD not updating driver info when "latest" version of the file format used. (QAK - 2008/10/14) - - Corrected alignment+threshold errors to work correctly when metadata + - Corrected alignment+threshold errors to work correctly when metadata aggregation is enabled. (QAK - 2008/10/06) - - Changed H5Fget_obj_count and H5Fget_obj_ids to ignore objects registered + - Changed H5Fget_obj_count and H5Fget_obj_ids to ignore objects registered by the library for internal library use. (NAF - 2008/10/06) - - Fixed potential memory leak during compound conversion. + - Fixed potential memory leak during compound conversion. (NAF - 2008/10/06) - - Changed the return value of H5Fget_obj_count from INT to SSIZE_T. Also + - Changed the return value of H5Fget_obj_count from INT to SSIZE_T. Also changed the return value of H5Fget_obj_ids from HERR_T to SSIZE_T and the type of the parameter MAX_OBJS from INT to SIZE_T. (SLU - 2008/09/26) - - Fixed an issue that could cause data to be improperly overwritten + - Fixed an issue that could cause data to be improperly overwritten during compound type conversion. (NAF - 2008/09/19) - - Fixed pointer alignment violations that could occur during vlen + - Fixed pointer alignment violations that could occur during vlen conversion. (NAF - 2008/09/16) - - Fixed problem where library could cause a segmentation fault when + - Fixed problem where library could cause a segmentation fault when an invalid location ID was given to H5Giterate(). (QAK - 2008/08/19) - - Fixed improper shutdown when objects have reference count > 1. The + - Fixed improper shutdown when objects have reference count > 1. The library now tracks reference count due to the application separately from that due to internal library routines. (NAF - 2008/08/19) - - Fixed assertion failure caused by incorrect array datatype version. + - Fixed assertion failure caused by incorrect array datatype version. (NAF - 2008/08/08) - - Fixed an issue where mount point traversal would fail when using + - Fixed an issue where mount point traversal would fail when using multiple handles for the child. (NAF - 2008/08/07) - - Fixed an issue where mount points were inaccessible when using multiple + - Fixed an issue where mount points were inaccessible when using multiple file handles for the parent. The mount table is now in the shared file structure (the parent pointer is still in the top structure). (NAF - 2008/08/07) - - when an attribute was opened twice and data was written with one of the handles, + - when an attribute was opened twice and data was written with one of the handles, the file didn't have the data. It happened because each handle had its own object structure, and the empty one overwrote the data with fill value. This is fixed by making some attribute information like the data be shared in the attribute structure. SLU - 2008/07/22 - - Fixed issue where a group could have a file mounted on it twice. + - Fixed issue where a group could have a file mounted on it twice. (QAK - 2008/07/15) - - Fixed a Windows-specific issue in the ohdr test which was causing users - in some timezones to get false errors. This a deficiency in the Windows - mktime() function, and has been handled properly. SJW - 2008/06/19 - - Fixed the problem with the searching of target file for H5Lcreate_external(). - The searching pattern will depend on whether the target file's - pathname is an absolute or a relative path. Please see the description - in the RM for H5Lcreate_external(). (VC - 2008/04/08) - - Fixed possible file corruption bug when encoding datatype + - Fixed a Windows-specific issue in the ohdr test which was causing users + in some timezones to get false errors. This a deficiency in the Windows + mktime() function, and has been handled properly. SJW - 2008/06/19 + - Fixed the problem with the searching of target file for H5Lcreate_external(). + The searching pattern will depend on whether the target file's + pathname is an absolute or a relative path. Please see the description + in the RM for H5Lcreate_external(). (VC - 2008/04/08) + - Fixed possible file corruption bug when encoding datatype descriptions for compound datatypes whose size was between 256 & 511 bytes and the file was opened with the "use the latest format" property enabled (with H5Pset_libver_bounds). (QAK - 2008/03/13) - - Fixed bug in H5Aget_num_attrs() routine to handle invalid location + - Fixed bug in H5Aget_num_attrs() routine to handle invalid location ID correctly. (QAK - 2008/03/11) - - H5Dset_extent: when shrinking dimensions, some chunks were not deleted. + - H5Dset_extent: when shrinking dimensions, some chunks were not deleted. (PVN - 2009/01/8) - - Added code to maintain a min_clean_fraction in the metadata cache when + - Added code to maintain a min_clean_fraction in the metadata cache when in serial mode. (MAM - 2009/01/9) @@ -880,62 +879,63 @@ Bug Fixes since HDF5-1.8.0 release Performance ------------- - - Removed program perform/benchpar from the enable-build-all list. The - program will be retired or moved to another location. HDFFV-8156 - (AKC 2012/10/01) - - Retired program perform/mpi-perf. Its purpose has been incorporated - into h5perf before. (AKC 2012/09/20) - - ifdefs added to tests around include unistd.h and function to simulate + - Removed program perform/benchpar from the enable-build-all list. The + program will be retired or moved to another location. HDFFV-8156 + (AKC 2012/10/01) + - Retired program perform/mpi-perf. Its purpose has been incorporated + into h5perf before. (AKC 2012/09/20) + - ifdefs added to tests around include unistd.h and function to simulate getlogin() on Windows. (ADB - 2011/08/15) - - perf_serial test added to Windows projects and check batch file. + - perf_serial test added to Windows projects and check batch file. (ADB - 2009/06/11) + Fortran -------- - - Fixed a typo in return value of the nh5dread_f_c function ( was 1 + - Fixed a typo in return value of the nh5dread_f_c function ( was 1 instead of 0 on success); fixed the return value to make it consistent with other Fortran functions; cleaned the code from debug statements. (EIP - 2012/06/23) - - Fixed problem writing/reading control characters to a dataset; writing + - Fixed problem writing/reading control characters to a dataset; writing a string containing: alerts, backspace, carriage_return, form_feed, horizontal_tab, vertical_tab, new_line is now tested and working. (MSB - 2012/09/01) - - Corrected the integer type of H5S_UNLIMITED_F to HSIZE_T (MSB - 2012/09/01) + - Corrected the integer type of H5S_UNLIMITED_F to HSIZE_T (MSB - 2012/09/01) - - Corrected the number of continuation lines in the src files + - Corrected the number of continuation lines in the src files to be less then 32 lines for F95 compliance. (MSB - 2012/10/01) Tools ----- - - h5dump subsetting fixed for dims greater then two + - h5dump subsetting fixed for dims greater then two When a dataset has more then two dimensions, subsetting would incorrectly calculate the data that needed to be displayed. Added in block and stride calculation that account for dimensions greater then two. NOTE: lines that have line breaks inserted because of display length calculations, may have index info that is incorrect until the next dimension break. (ADB, 2016/03/04, HDFFV-9698) - - h5repack: h5repack would not attempt to remove UD filters. Added a + - h5repack: h5repack would not attempt to remove UD filters. Added a check to h5repack for UD filters that checks if the filter can be dynamically loaded. This will require a change in the library to add the H5PL_load() to the H5Zfilter_avail(). (ADB - 2014/03/03 HDFFV-8629) - - h5repack: Fixed failure for converting a layout of small chunked dataset + - h5repack: Fixed failure for converting a layout of small chunked dataset (size < 1K) to contiguous layout. HDFFV-8214 (JKM 2013/03/18) - - h5diff: Fixed to return correct exit code 1 when detect unique extra + - h5diff: Fixed to return correct exit code 1 when detect unique extra attribute. Prior to this fix, h5diff returned exit code 0 indicating two files are identical. HDFFV-7643 (JKM 2013/02/15) - - h5diff: Improved speed when comparing HDF5 files with lots of + - h5diff: Improved speed when comparing HDF5 files with lots of attributes. Much slower performance was identified with release version from 1.8.7 to 1.8.10 compared to 1.8.6. (JKM 2012/10/19) - - h5repack: "h5repack -f NONE file1.h5 out.h5" command failed if + - h5repack: "h5repack -f NONE file1.h5 out.h5" command failed if source file contains chunked dataset and a chunk dim is bigger than the dataset dim. Another issue is that the command changed max dims if chunk dim is smaller than the dataset dim. These issue occurred when dataset size is smaller than 64k (compact size limit) Fixed both. HDFFV-8012 (JKM 2012/09/24) - - h5diff: Fixed not to accumulate attribute difference to dataset + - h5diff: Fixed not to accumulate attribute difference to dataset difference in verbose mode (-v, -r), which caused incorrect difference between dataset and group/datatype object if attribute exist with any differences. This also lead to fix inconsistent @@ -948,214 +948,214 @@ Bug Fixes since HDF5-1.8.0 release parallel mode. It was detected by daily test for comparing non-comparable objects, but it could have occurred in other operations depend on machine condition. HDFFV-8003 (JKM 2012/08/01) - - h5diff: Fixed test failure for "make check" due to failure of + - h5diff: Fixed test failure for "make check" due to failure of copying test files when performed in HDF5 source tree. Also applied to other tools. HDFFV-8107 (JKM 2012/08/01) - - h5diff: Fixed the Function COPY_TESTFILES_TO_TESTDIR() of - testh5diff.sh to better report when there is an error in the file - copying. HDFFV-8105 (AKC -2012/07/22) - - h5diff: Fixed not to check and display dangling link status without + - h5diff: Fixed the Function COPY_TESTFILES_TO_TESTDIR() of + testh5diff.sh to better report when there is an error in the file + copying. HDFFV-8105 (AKC -2012/07/22) + - h5diff: Fixed not to check and display dangling link status without --follow-symlinks option. This also improved performance when comparing lots of external links without the --follow-symlinks option. HDFFV-7998 (JKM 2012/04/26) - - h5unjam: Fixed sefgault when used -V (show version) option. + - h5unjam: Fixed sefgault when used -V (show version) option. HDFFV-8001 (JKM 2012/04/19) - - h5repack: Fixed a failure when change the chunk size of a specified + - h5repack: Fixed a failure when change the chunk size of a specified chunked dataset with unlimited max dims. HDFFV-7993 (JKM 2012/04/11) - - h5diff: Fixed failure for comparing same named object with different + - h5diff: Fixed failure for comparing same named object with different object types in comparing groups. Prior to the fix, h5diff resulted in error. After the fix, h5diff detects such case as non-comparable and display messages accordingly. HDFFV-7664 (JKM 2012/03/28) - - h5diff: If unique objects exists only in one file and try to exclude + - h5diff: If unique objects exists only in one file and try to exclude the unique objects with --exclude-path option, h5diff missed excluding some objects. Fixed to exclude objects correctly in such case. HDFFV-7837 (JKM 2012/03/20) - - h5dump: Added tools library error stack to properly catch error + - h5dump: Added tools library error stack to properly catch error information generated within the library. HDFFV-7958 (ADB 2012/03/12) - - h5dump: Dangling links no longer throw error message, change process + - h5dump: Dangling links no longer throw error message, change process when open link fails. HDFFV-7839 (ADB 2012/03/12) - - h5diff: When two symbolic dangling links are compared with + - h5diff: When two symbolic dangling links are compared with --follow-symlinks option, the result should be same. It worked for comparing two files, but didn't work for comparing two objects. HDFFV-7835 (JKM 2012/03/09) - - h5dump: Refactored code to remove duplicated functions. Split XML + - h5dump: Refactored code to remove duplicated functions. Split XML functions from DDL functions. Corrected indentation and formatting errors. Also fixed subsetting counting overflow (HDFFV-5874). Verified all tools call tools_init() in main. HDFFV-7560 (ADB 2012/02/17) - - h5diff: fixed to prevent from displaying error stack message when + - h5diff: fixed to prevent from displaying error stack message when comparing the two dangling symlinks with follow-symlinks option. HDFFV-7836 (JKM 2012/01/13) - - h5repack: fixed memory leak for handling variable length string in + - h5repack: fixed memory leak for handling variable length string in attribute. HDFFV-7840 (JKM 2012/01/06) - - h5ls: fixed segfault when access region reference data in an + - h5ls: fixed segfault when access region reference data in an attribute. HDFFV-7838 (JKM 2011/12/29) - - h5diff: fixed segfault over non-comparable attribute with different + - h5diff: fixed segfault over non-comparable attribute with different dimention or rank, along with '-c' option to display details. HDFFV-7770 (JKM 2011/10/24) - - Fixed h5diff to display all the comparable object and attribute + - Fixed h5diff to display all the comparable object and attribute regardless of non-comparables. HDFFV-7693 (JKM 2011/09/16) - - Fixed h5repack to update values of references(object and region) of + - Fixed h5repack to update values of references(object and region) of attributes in h5repack for 1) references, 2) ARRAY of references, 3) VLEN of references, and 4) COMPOUND of references. (JIRA HDF5 5932) PC -2011/09/14 - - h5diff: fixed segfault over dataset with container types + - h5diff: fixed segfault over dataset with container types (array,lven) with multiple nested compound types. (ex: compound->array->compound, compound->vlen->compound) HDFFV-7712 JKM (2011/09/01) - - h5repack: added macro to handle failure in H5Dread/write when memory + - h5repack: added macro to handle failure in H5Dread/write when memory allocation failed inside the library. (PC -- 2011/08/19) - - Fixed h5jam not to allow specifying an HDF5 formatted file as input + - Fixed h5jam not to allow specifying an HDF5 formatted file as input file for -u (user block file) option, because the original HDF5 file will not be accessible if allows. HDFFV-5941 (JKM 2011/08/15) - - Revised command help pages of h5jam and h5unjam. The descriptions + - Revised command help pages of h5jam and h5unjam. The descriptions were not up to date and some were missing. HDFFV-7515 (JKM 2011/08/15) - - h5repack: h5repack failed to copy dataset if the layout is changed + - h5repack: h5repack failed to copy dataset if the layout is changed from chunked with unlimited dims to contiguous. HDFFV-7649 (PC -- 2011/07/15) - - h5diff: "--delta" option considers two NaN of the same type are + - h5diff: "--delta" option considers two NaN of the same type are different, which is wrong based on h5diff description in Reference Manual. HDFFV-7656 (PC -- 2011/07/15) - - Fixed h5diff to display instructive error message and exit with 1 + - Fixed h5diff to display instructive error message and exit with 1 when mutually exclusive options (-d, -p and --use-system-epsilon) are used together. HDFFV-7600 (JKM 2011/07/07) - - Fixed h5dump to display the first line of each element into correct + - Fixed h5dump to display the first line of each element into correct position for multiple dimention array type. Before this fix, the first line of each element in array were displayed after the last line of previous element without moving to the next line (+indentation). Bug #HDFFV-5878 (JKM 2011/06/15) - - Fixed h5dump to display correct value for H5T_STD_I8LE dataset + - Fixed h5dump to display correct value for H5T_STD_I8LE dataset on a system (ppc64, linux, Big-Endian, clustering). Bug #HDFFV-7594 (ABERT & JKM 2011/05/12) - - Fixed h5diff to compare file itself correctly. Previously h5diff + - Fixed h5diff to compare file itself correctly. Previously h5diff reported either different or not compatible in certain cases even comparing file itself. This fix also improve performance when comparing same target objects through verifying the obj&file addresses before comparing the details in the objects (ex: datasets or attributes) Bug #HDFFV-5928 (XCAO & JKM 2011/05/06) - - Updated h5dump test case script to prevent entire test failure upon + - Updated h5dump test case script to prevent entire test failure upon source directory is read-only. Bug# HDFFV-4342 (JKM 2011/4/12) - - Fixed h5dump displaying incorrect values for H5T_STD_I8BE type data in + - Fixed h5dump displaying incorrect values for H5T_STD_I8BE type data in attribute on Big-Endian machine. H5T_STD_I8BE is unsigned 8bit type, so h5dump is supposed to display -2 instead of 254. It worked correctly on Little-Endian system , but not on Big-Endian system. Bug #HDFFV-4358 (JKM 2011/04/08) - - Updated to unify option name to '--enable-error-stack' for printing + - Updated to unify option name to '--enable-error-stack' for printing HDF5 error stack messages for HDF5 tools. h5ls and h5dump for now. For h5ls, this replaces "-e/--errors" option, which is deprecated. Bug#2182 (JKM 2011/3/30) - - Fix h5diff for --use-system-epsilon option: the calculation changed + - Fix h5diff for --use-system-epsilon option: the calculation changed from ( |a - b| / b ) to ( |a - b| ). This was decided for better performance. Bug#2184 (JKM 2011/3/24) - - Fixed output for H5T_REFERENCE in h5dump. According to the BNF document + - Fixed output for H5T_REFERENCE in h5dump. According to the BNF document the output of a H5T_REFERENCE should be followed by the type; <reference> ::= H5T_REFERENCE { <ref_type> } <ref_type> ::= H5T_STD_REF_OBJECT | H5T_STD_REF_DSETREG Previously this was only displayed if the -R option was used. Bug#1725 (ADB 2011/3/28) - - Fix h5diff issues for #1: h5diff compared attributes correctly only + - Fix h5diff issues for #1: h5diff compared attributes correctly only when two objects have the same number of attributes and attribute names are identical, #2: didn't display useful information about attribute difference. Bug#2121 (JKM 2011/3/17) - - Fixed memory leak for h5diff when accessing symbolic links with + - Fixed memory leak for h5diff when accessing symbolic links with --follow-symlink option. Bug#2214 (JKM 2011/3/18) - - Fixed memory leak for h5diff when access variable length string + - Fixed memory leak for h5diff when access variable length string data. Bug#2216 (JKM 2011/3/18) - - Fixed and improved help page for -a option of h5ls. + - Fixed and improved help page for -a option of h5ls. Bug#1904 (JKM 2011/3/11) - - Fixed h5dump not to include attribute values in the output file when + - Fixed h5dump not to include attribute values in the output file when h5dump "-y -o output_file" options were used. The problem was introduced in HDF5 1.8.6 by showing data pointed by region references. (XCAO 2011/3/9) - - Fixed h5copy to be able to copy any object into the same HDF5 file. + - Fixed h5copy to be able to copy any object into the same HDF5 file. Previously h5copy displayed error message when target file is same as source file. (XCAO 2011/3/8) - - Fixed h5dump for skipping some values for long array type dataset on + - Fixed h5dump for skipping some values for long array type dataset on Windows. This issue only occurred on Windows due to the different return behavior from _vsnprintf() funtion. Bug#2161 (JKM 2011/3/3) - - Fixed h5dump for skipping array indices every certain number + - Fixed h5dump for skipping array indices every certain number when the array type dataset is relatively big. The certain number varies according to the size of array. Bug#2092 (JKM 2011/2/15). - - Fixed h5diff for the segfault when compares compound datasets + - Fixed h5diff for the segfault when compares compound datasets with combination of fixed length string types and vlen string types in certain orders. bug#2089 (JKM 2010/12/28) - - Improve h5diff performance. 1) use HDmemcmp() before comparing each + - Improve h5diff performance. 1) use HDmemcmp() before comparing each elements. 2) replace expensive H5Tequals() calls 3) retrieve datatype information at dataset level not each element level for compound datasets - - Fixed h5ls to display nested compound type with curly bracket + - Fixed h5ls to display nested compound type with curly bracket when -S (--simple) option is used with -l (--label), so it shows which member (in curly bracket) belong to which nested compound type and make the output make sense. bug#1979 (JKM 2010/11/09) - - Fixed h5diff to handle variable-length strings in a compound dataset + - Fixed h5diff to handle variable-length strings in a compound dataset correctly. (also variable-length string array in a compound dataset) Garbage values were displayed when h5diff compared multiple variable-length strings in a compound type dataset. Bug#1989 (JKM 2010/10/28) - - Fixed h5copy to fail gracefully when copying object to non-exist + - Fixed h5copy to fail gracefully when copying object to non-exist group without -p option. Bug#2040 (JKM 2010/10/18) - - Fixed to compare member objects and groups recursively when two + - Fixed to compare member objects and groups recursively when two files or groups are specified to be compared. Bug#1975 (JKM 2010/9/16) - - Make h5repack be able to convert a layout to COMPACT for small size + - Make h5repack be able to convert a layout to COMPACT for small size dataset as default. bug#1896 (JKM 2010/09/15) - - Change h5ls not to manipulate special characters in object name or + - Change h5ls not to manipulate special characters in object name or attribute name for smart display. bug#1784 (JKM 2010/06/28) - - Fixed h5ls to return exit code 1 (error) when non-existent file is + - Fixed h5ls to return exit code 1 (error) when non-existent file is specified. bug#1793. (JKM 2010/04/27) - - h5copy failed to copy dangling link when the link is specified + - h5copy failed to copy dangling link when the link is specified directly. bug#1817. (JKM 2010/04/22) - - h5repack lost attributes from a dataset of reference type. bug#1726. + - h5repack lost attributes from a dataset of reference type. bug#1726. (JKM 2010/3/25) - - h5repack sets NULL for object reference value for group or + - h5repack sets NULL for object reference value for group or named datatype. bug#1814. (JKM 2010/03/19) - - h5diff: fixed incorrect behavior (hang) in parallel mode when - specify invalid options (ex: -v and -q) (JKM 2010/02/17) - - h5dump/h5ls display buffer resize fixed in tools library. - (ADB - 2009/07/21 - 1520) - - Fixed many problems that could occur when using h5repack with named - datatypes. (NAF - 2009/4/20 - 1516/1466) - - h5dump, h5diff, h5repack were not reading (by hyperslabs) datasets - that have a datatype datum size greater than H5TOOLS_BUFSIZE, a - constant defined as 1024Kb, such as array types with large - dimensions (PVN - 2009/4/1 - 1501) - - h5import: By selecting a compression type, a big endian byte order was being - selected (PVN - 2009/3/11 - 1462) - - zip_perf.c had missing argument on one of the open() calls. Fixed. - (AKC - 2008/12/9) - - h5dump now checks for uniqueness of committed datatypes. - (NAF - 2008/10/15) - - Fixed unnecessary indentation of committed datatypes in h5dump. - (NAF - 2008/10/15) - - Fixed bugs in h5stat:segmemtation fault when printing groups and + - h5diff: fixed incorrect behavior (hang) in parallel mode when + specify invalid options (ex: -v and -q) (JKM 2010/02/17) + - h5dump/h5ls display buffer resize fixed in tools library. + (ADB - 2009/07/21 - 1520) + - Fixed many problems that could occur when using h5repack with named + datatypes. (NAF - 2009/4/20 - 1516/1466) + - h5dump, h5diff, h5repack were not reading (by hyperslabs) datasets + that have a datatype datum size greater than H5TOOLS_BUFSIZE, a + constant defined as 1024Kb, such as array types with large + dimensions (PVN - 2009/4/1 - 1501) + - h5import: By selecting a compression type, a big endian byte order was being + selected (PVN - 2009/3/11 - 1462) + - zip_perf.c had missing argument on one of the open() calls. Fixed. + (AKC - 2008/12/9) + - h5dump now checks for uniqueness of committed datatypes. + (NAF - 2008/10/15) + - Fixed unnecessary indentation of committed datatypes in h5dump. + (NAF - 2008/10/15) + - Fixed bugs in h5stat:segmemtation fault when printing groups and print warning message when traversal of objects is unsuccessful. (see bug #1253) (VC- 2008/10/13) - - Fixed bug in h5ls that prevented relative group listings (like - "h5ls foo.h5/bar") from working correctly (QAK - 2008/06/03) - - Fixed bug in h5diff that prevented datasets & attributes with - variable-length string elements from comparing correctly. - (QAK - 2008/02/28) - - h5import bug on Windows w/binary datasets. fread in windows needs a - binary file to be open with 'rb' instead of 'r' otherwise it - terminates execution if an end of file character is found on the - input file. Besides that the binary file generated needs to be open - with 'wb' , otherwise an end of line character is read twice. - (PVN - 2008/02/19) - - Fixed bug in h5dump that caused binary output to be made only for the first - dataset, when several datasets were requested. (PVN - 2008/04/07) - - h5dump: when doing binary output (-b), the stdout printing of attributes - was done incorrectly. Removed printing of attributes when doing binary - output. PVN - 2008/06/05 + - Fixed bug in h5ls that prevented relative group listings (like + "h5ls foo.h5/bar") from working correctly (QAK - 2008/06/03) + - Fixed bug in h5diff that prevented datasets & attributes with + variable-length string elements from comparing correctly. + (QAK - 2008/02/28) + - h5import bug on Windows w/binary datasets. fread in windows needs a + binary file to be open with 'rb' instead of 'r' otherwise it + terminates execution if an end of file character is found on the + input file. Besides that the binary file generated needs to be open + with 'wb' , otherwise an end of line character is read twice. + (PVN - 2008/02/19) + - Fixed bug in h5dump that caused binary output to be made only for the first + dataset, when several datasets were requested. (PVN - 2008/04/07) + - h5dump: when doing binary output (-b), the stdout printing of attributes + was done incorrectly. Removed printing of attributes when doing binary + output. PVN - 2008/06/05 High-Level APIs: - ------ - - Packet Table is updated. + ------ + - Packet Table is updated. In the Packet Table C API, there are changes with the following functions, which had been ifdef'ed out with VLPT_REMOVED since 2006 @@ -1166,60 +1166,57 @@ Bug Fixes since HDF5-1.8.0 release Various cleanup: replacing 0/-1 with SUCCEED/FAIL and H5I_BADID with H5I_INVALID_HID. (BMR, 2016/03/04, HDFFV-442) - - Fixed problem with H5DSget_scale_name including the NULL terminator in + - Fixed problem with H5DSget_scale_name including the NULL terminator in the size calculation returned by the function. The API does not include the NULL terminator in the size returned (MSB- 2013/2/10) - - Fixed problem with H5TBdelete_record destroying all data following the deletion + - Fixed problem with H5TBdelete_record destroying all data following the deletion of a row. (MSB- 2012/7/26) - - Fixed H5LTget_attribute_string not closing an object identifier when an + - Fixed H5LTget_attribute_string not closing an object identifier when an error occurs. (MSB- 2012/7/21) - - Fixed the H5LTdtype_to_text function. It had some memory problems when + - Fixed the H5LTdtype_to_text function. It had some memory problems when dealing with some complicated data types. HDFFVI-7701 (SLU - 2011/10/19) - - Fixed a bug in H5DSattach_scale, H5DSis_attached and H5DSdetach_scale + - Fixed a bug in H5DSattach_scale, H5DSis_attached and H5DSdetach_scale caused by using H5Tget_native_type function to determine the native type for reading REFERENCE_LIST attribute. The bug was exposed on Mac PPC. (EIP - 2010/05/22 -1851) - - Fixed a bug in the H5DSdetach_scale function when 0 bytes + - Fixed a bug in the H5DSdetach_scale function when 0 bytes were allocated after the last reference to a dim. scale was removed from the list of references in a VL element of the DIMENSION_LIST attribute; modified the function to comply with the Spec: DIMENSION_LIST attribute is deleted now when no dimension scales left attached. (EIP - 2010/05/14 -1822) - - Fixed a bug where the H5TB API would forget the order of fields when + - Fixed a bug where the H5TB API would forget the order of fields when added out of offset order. (NAF - 2009/10/27 - 1582) - - H5DSis_attached failed to account for different platform types. Added a + - H5DSis_attached failed to account for different platform types. Added a get native type call. (ADB - 2009/9/29 - 1562) - - Dimension scales: The scale index return value in H5DSiterate_scales was not always + - Dimension scales: The scale index return value in H5DSiterate_scales was not always incremented. (PVN - 2009/4/8 - 1538) Fortran High-Level APIs: - ------ + ------ - - Lite: The h5ltget_attribute_string_f used to return the C NULL character in the + - Lite: The h5ltget_attribute_string_f used to return the C NULL character in the returned character buffer. The returned Fortran charactor buffer now does not return the C NULL character. (MSB - 2012/3/23) - - Lite: The h5ltget_dataset_info_f function (gets information about a dataset) + - Lite: The h5ltget_dataset_info_f function (gets information about a dataset) was not correctly returning the dimension array. (PVN - 2009/3/23) - - Lite: the h5ltread_dataset_string_f and h5ltget_attribute_string_f functions + - Lite: the h5ltread_dataset_string_f and h5ltget_attribute_string_f functions had memory problems with the g95 fortran compiler. (PVN � 5/13/2009) 1522 - - - Documentation ------------- F90 APIs -------- - - Modified the h5open_f and h5close_f subroutines to not to call H5open + - Modified the h5open_f and h5close_f subroutines to not to call H5open and H5close correspodningly. While the H5open call just adds overhead, the H5close call called by an Fortran application shuts down the HDF5 library making it unaccessible to the application. diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 639dbe7..1b6a097 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -34,8 +34,7 @@ CONTENTS - New Features - Support for new platforms and languages -- Bug Fixes since HDF5-1.10.3 -- Bug Fixes since HDF5-1.10.2 +- Bug Fixes since HDF5-1.12.0 - Supported Platforms - Tested Configuration Features Summary - More Tested Platforms @@ -50,150 +49,199 @@ New Features ------------- - Autotools and CMake target added to produce doxygen generated documentation - The default is OFF or disabled. - Autoconf option is '--enable-doxygen' + The default is OFF or disabled. + Autoconf option is '--enable-doxygen' autotools make target is 'doxygen' and will build all doxygen targets - CMake configure option is 'HDF5_BUILD_DOC'. + CMake configure option is 'HDF5_BUILD_DOC'. CMake target is 'doxygen' for all available doxygen targets CMake target is 'hdf5lib_doc' for the src subdirectory - (ADB - 2020/11/03) + (ADB - 2020/11/03) - CMake option to use MSVC naming conventions with MinGW - HDF5_MSVC_NAMING_CONVENTION option enable to use MSVC naming conventions - when using a MinGW toolchain + HDF5_MSVC_NAMING_CONVENTION option enable to use MSVC naming conventions + when using a MinGW toolchain - (xan - 2020/10/30) + (xan - 2020/10/30) - CMake option to statically link gcc libs with MinGW - HDF5_MINGW_STATIC_GCC_LIBS allows to statically link libg/libstdc++ - with the MinGW toolchain + HDF5_MINGW_STATIC_GCC_LIBS allows to statically link libg/libstdc++ + with the MinGW toolchain - (xan - 2020/10/30) + (xan - 2020/10/30) - CMake option to build the HDF filter plugins project as an external project - The HDF filter plugins project is a collection of registered compression - filters that can be dynamically loaded when needed to access data stored - in a hdf5 file. This CMake-only option allows the plugins to be built and - distributed with the hdf5 library and tools. Like the options for szip and - zlib, either a tgz file or a git repository can be specified for the source. + The HDF filter plugins project is a collection of registered compression + filters that can be dynamically loaded when needed to access data stored + in a hdf5 file. This CMake-only option allows the plugins to be built and + distributed with the hdf5 library and tools. Like the options for szip and + zlib, either a tgz file or a git repository can be specified for the source. - The necessary options are (see the INSTALL_CMake.txt file): + The necessary options are (see the INSTALL_CMake.txt file): HDF5_ENABLE_PLUGIN_SUPPORT PLUGIN_TGZ_NAME or PLUGIN_GIT_URL - There are more options necessary for various filters and the plugin project - documents should be referenced. + There are more options necessary for various filters and the plugin project + documents should be referenced. - (ADB - 2020/09/27, OESS-98) + (ADB - 2020/09/27, OESS-98) - Added CMake option to format source files - HDF5_ENABLE_FORMATTERS option will enable creation of targets using the - pattern - HDF5_*_SRC_FORMAT - where * corresponds to the source folder - or tool folder. All sources can be formatted by executing the format target; - make format + HDF5_ENABLE_FORMATTERS option will enable creation of targets using the + pattern - HDF5_*_SRC_FORMAT - where * corresponds to the source folder + or tool folder. All sources can be formatted by executing the format target; + make format - (ADB - 2020/08/24) + (ADB - 2020/08/24) + + - Add file locking configure and CMake options + + HDF5 1.10.0 introduced a file locking scheme, primarily to help + enforce SWMR setup. Formerly, the only user-level control of the scheme + was via the HDF5_USE_FILE_LOCKING environment variable. + + This change introduces configure-time options that control whether + or not file locking will be used and whether or not the library + ignores errors when locking has been disabled on the file system + (useful on some HPC Lustre installations). + + In both the Autotools and CMake, the settings have the effect of changing + the default property list settings (see the H5Pset/get_file_locking() + entry, below). + + The yes/no/best-effort file locking configure setting has also been + added to the libhdf5.settings file. + + Autotools: + + An --enable-file-locking=(yes|no|best-effort) option has been added. + + yes: Use file locking. + no: Do not use file locking. + best-effort: Use file locking and ignore "disabled" errors. + + CMake: + + Two self-explanatory options have been added: + + HDF5_USE_FILE_LOCKING + HDF5_IGNORE_DISABLED_FILE_LOCKS + + Setting both of these to ON is the equivalent to the Autotools' + best-effort setting. + + NOTE: + The precedence order of the various file locking control mechanisms is: + + 1) HDF5_USE_FILE_LOCKING environment variable (highest) + + 2) H5Pset_file_locking() + + 3) configure/CMake options (which set the property list defaults) + + 4) library defaults (currently best-effort) + + (DER - 2020/07/30, HDFFV-11092) - CMake option to link the generated Fortran MOD files into the include directory. - The Fortran generation of MOD files by a Fortran compile can produce - different binary files between SHARED and STATIC compiles with different - compilers and/or different platforms. Note that it has been found that - different versions of Fortran compilers will produce incompatible MOD - files. Currently, CMake will locate these MOD files in subfolders of - the include directory and add that path to the Fortran library target - in the CMake config file, which can be used by the CMake find library - process. For other build systems using the binary from a CMake install, - a new CMake configuration can be used to copy the pre-chosen version - of the Fortran MOD files into the install include directory. - - The default will depend on the configuration of - BUILD_STATIC_LIBS and BUILD_SHARED_LIBS: + The Fortran generation of MOD files by a Fortran compile can produce + different binary files between SHARED and STATIC compiles with different + compilers and/or different platforms. Note that it has been found that + different versions of Fortran compilers will produce incompatible MOD + files. Currently, CMake will locate these MOD files in subfolders of + the include directory and add that path to the Fortran library target + in the CMake config file, which can be used by the CMake find library + process. For other build systems using the binary from a CMake install, + a new CMake configuration can be used to copy the pre-chosen version + of the Fortran MOD files into the install include directory. + + The default will depend on the configuration of + BUILD_STATIC_LIBS and BUILD_SHARED_LIBS: YES YES Default to SHARED YES NO Default to STATIC NO YES Default to SHARED NO NO Default to SHARED - The defaults can be overriden by setting the config option - HDF5_INSTALL_MOD_FORTRAN to one of NO, SHARED, or STATIC + The defaults can be overriden by setting the config option + HDF5_INSTALL_MOD_FORTRAN to one of NO, SHARED, or STATIC - (ADB - 2020/07/9, HDFFV-11116) + (ADB - 2020/07/09, HDFFV-11116) - CMake option to use AEC (open source SZip) library instead of SZip - The open source AEC library is a replacement library for SZip. In - order to use it for hdf5 the libaec CMake source was changed to add - "-fPIC" and exclude test files. Autotools does not build the - compression libraries within hdf5 builds. New option USE_LIBAEC is - required to compensate for the different files produced by AEC build. + The open source AEC library is a replacement library for SZip. In + order to use it for hdf5 the libaec CMake source was changed to add + "-fPIC" and exclude test files. Autotools does not build the + compression libraries within hdf5 builds. New option USE_LIBAEC is + required to compensate for the different files produced by AEC build. - (ADB - 2020/04/22, OESS-65) + (ADB - 2020/04/22, OESS-65) - CMake ConfigureChecks.cmake file now uses CHECK_STRUCT_HAS_MEMBER - Some handcrafted tests in HDFTests.c has been removed and the CMake - CHECK_STRUCT_HAS_MEMBER module has been used. + Some handcrafted tests in HDFTests.c has been removed and the CMake + CHECK_STRUCT_HAS_MEMBER module has been used. - (ADB - 2020/03/24, TRILAB-24) + (ADB - 2020/03/24, TRILAB-24) - Both build systems use same set of warnings flags - GNU C, C++ and gfortran warnings flags were moved to files in a config - sub-folder named gnu-warnings. Flags that only are available for a specific - version of the compiler are in files named with that version. - Clang C warnings flags were moved to files in a config sub-folder - named clang-warnings. - Intel C, Fortran warnings flags were moved to files in a config sub-folder - named intel-warnings. + GNU C, C++ and gfortran warnings flags were moved to files in a config + sub-folder named gnu-warnings. Flags that only are available for a specific + version of the compiler are in files named with that version. + Clang C warnings flags were moved to files in a config sub-folder + named clang-warnings. + Intel C, Fortran warnings flags were moved to files in a config sub-folder + named intel-warnings. - There are flags in named "error-xxx" files with warnings that may - be promoted to errors. Some source files may still need fixes. + There are flags in named "error-xxx" files with warnings that may + be promoted to errors. Some source files may still need fixes. - There are also pairs of files named "developer-xxx" and "no-developer-xxx" - that are chosen by the CMake option:HDF5_ENABLE_DEV_WARNINGS or the - configure option:--enable-developer-warnings. + There are also pairs of files named "developer-xxx" and "no-developer-xxx" + that are chosen by the CMake option:HDF5_ENABLE_DEV_WARNINGS or the + configure option:--enable-developer-warnings. - In addition, CMake no longer applies these warnings for examples. + In addition, CMake no longer applies these warnings for examples. - (ADB - 2020/03/24, TRILAB-192) + (ADB - 2020/03/24, TRILAB-192) - Added test script for file size compare - if CMake minimum version is at least 3.14, the fileCompareTest.cmake - script will compare file sizes. + If CMake minimum version is at least 3.14, the fileCompareTest.cmake + script will compare file sizes. - (ADB - 2020/02/24, HDFFV-11036) + (ADB - 2020/02/24, HDFFV-11036) - Update CMake minimum version to 3.12 - Updated CMake minimum version to 3.12 and added version checks - for Windows features. + Updated CMake minimum version to 3.12 and added version checks + for Windows features. - (ADB - 2020/02/05, TRILABS-142) + (ADB - 2020/02/05, TRILABS-142) - Fixed CMake include properties for Fortran libraries - Corrected the library properties for Fortran to use the - correct path for the Fortran module files. + Corrected the library properties for Fortran to use the + correct path for the Fortran module files. - (ADB - 2020/02/04, HDFFV-11012) + (ADB - 2020/02/04, HDFFV-11012) - Added common warnings files for gnu and intel - Added warnings files to use one common set of flags - during configure for both autotools and CMake build - systems. The initial implementation only affects a - general set of flags for gnu and intel compilers. + Added warnings files to use one common set of flags + during configure for both autotools and CMake build + systems. The initial implementation only affects a + general set of flags for gnu and intel compilers. - (ADB - 2020/01/17) + (ADB - 2020/01/17) - Added new options to CMake for control of testing - Added CMake options (default ON); + Added CMake options (default ON); HDF5_TEST_SERIAL AND/OR HDF5_TEST_PARALLEL combined with: HDF5_TEST_TOOLS @@ -203,13 +251,13 @@ New Features HDF5_TEST_CPP HDF5_TEST_JAVA - (ADB - 2020/01/15, HDFFV-11001) + (ADB - 2020/01/15, HDFFV-11001) - Added Clang sanitizers to CMake for analyzer support if compiler is clang. - Added CMake code and files to execute the Clang sanitizers if - HDF5_ENABLE_SANITIZERS is enabled and the USE_SANITIZER option - is set to one of the following: + Added CMake code and files to execute the Clang sanitizers if + HDF5_ENABLE_SANITIZERS is enabled and the USE_SANITIZER option + is set to one of the following: Address Memory MemoryWithOrigins @@ -218,640 +266,267 @@ New Features Leak 'Address;Undefined' - (ADB - 2019/12/12, TRILAB-135) + (ADB - 2019/12/12, TRILAB-135) - Update CMake for VS2019 support - CMake added support for VS2019 in version 3.15. Changes to the CMake - generator setting required changes to scripts. Also updated version - references in CMake files as necessary. + CMake added support for VS2019 in version 3.15. Changes to the CMake + generator setting required changes to scripts. Also updated version + references in CMake files as necessary. - (ADB - 2019/11/18, HDFFV-10962) + (ADB - 2019/11/18, HDFFV-10962) - Update CMake options to match new autotools options - Add configure options (autotools - CMake): + Add configure options (autotools - CMake): enable-asserts HDF5_ENABLE_ASSERTS enable-symbols HDF5_ENABLE_SYMBOLS enable-profiling HDF5_ENABLE_PROFILING enable-optimization HDF5_ENABLE_OPTIMIZATION - In addition NDEBUG is no longer forced defined and relies on the CMake - process. - - (ADB - 2019/10/07, HDFFV-100901, HDFFV-10637, TRILAB-97) - - - Update CMake tests to use FIXTURES - - CMake test fixtures allow setup/cleanup tests and other dependency - requirements as properties for tests. This is more flexible for - modern CMake code. - - (ADB - 2019/07/23, HDFFV-10529) - - - Windows PDB files are always installed - - There are build configuration or flag settings for Windows that may not - generate PDB files. If those files are not generated then the install - utility will fail because those PDB files are not found. An optional - variable, DISABLE_PDB_FILES, was added to not install PDB files. - - (ADB - 2019/07/17, HDFFV-10424) - - - Add mingw CMake support with a toolchain file - - There has been a number of mingw issues that has been linked under - HDFFV-10845. It has been decided to implement the CMake cross-compiling - technique of toolchain files. We will use a linux platform with the mingw - compiler stack for testing. Only the C language is fully supported, and - the error tests are skipped. The C++ language works for static but shared - builds has a shared library issue with the mingw Standard Exception Handling - library, which is not available on Windows. Fortran has a common cross-compile - problem with the fortran configure tests. - - (ADB - 2019/07/12, HDFFV-10845, HDFFV-10595) - - - Windows PDB files are installed incorrectly - - For static builds, the PDB files for windows should be installed next - to the static libraries in the lib folder. Also the debug versions of - libraries and PDB files are now correctly built using the default - CMAKE_DEBUG_POSTFIX setting. - - (ADB - 2019/07/09, HDFFV-10581) - - - Add option to build only shared libs - - A request was made to prevent building static libraries and only build - shared. A new option was added to CMake, ONLY_SHARED_LIBS, which will - skip building static libraries. Certain utility functions will build with - static libs but are not published. Tests are adjusted to use the correct - libraries depending on SHARED/STATIC settings. - - (ADB - 2019/06/12, HDFFV-10805) - - - Add options to enable or disable building tools and tests - - Configure options --enable-tests and --enable-tools were added for - autotools configure. These options are enabled by default, and can be - disabled with either --disable-tests (or tools) or --enable-tests=no - (or --enable-tools=no). Build time is reduced ~20% when tools are - disabled, 35% when tests are disabled, 45% when both are disabled. - Reenabling them after the initial build requires running configure - again with the option(s) enabled. - - (LRK - 2019/06/12, HDFFV-9976) - - - Change tools test that test the error stack - - There are some use cases which can cause the error stack of tools to be - different then the expected output. These tests now use grepTest.cmake, - this was changed to allow the error file to be searched for an expected string. - - (ADB - 2019/04/15, HDFFV-10741) - - - Keep stderr and stdout separate in tests - - Changed test handling of output capture. Tests now keep the stderr - output separate from the stdout output. It is up to the test to decide - which output to check against a reference. Also added the option - to grep for a string in either output. - - (ADB - 2018/12/12, HDFFV-10632) - - - Add toolchain and cross-compile support - - Added info on using a toolchain file to INSTALL_CMAKE.txt. A - toolchain file is also used in cross-compiling, which requires - CMAKE_CROSSCOMPILING_EMULATOR to be set. To help with cross-compiling - the fortran configure process, the HDF5UseFortran.cmake file macros - were improved. Fixed a Fortran configure file issue that incorrectly - used #cmakedefine instead of #define. - - (ADB - 2018/10/04, HDFFV-10594) + In addition NDEBUG is no longer forced defined and relies on the CMake + process. - - Add warning flags for Intel compilers - - Identified Intel compiler specific warnings flags that should be used - instead of GNU flags. - - (ADB - 2018/10/04, TRILABS-21) - - - Add default rpath to targets - - Default rpaths should be set in shared executables and - libraries to allow the use of loading dependent libraries - without requiring LD_LIBRARY_PATH to be set. The default - path should be relative using @rpath on osx and $ORIGIN - on linux. Windows is not affected. - - (ADB - 2018/09/26, HDFFV-10594) - - - Add missing USE_110_API_DEFAULT option. - - Option USE_110_API_DEFAULT sets the default version of - versioned APIs. The bin/makevers perl script did not set - the maxidx variable correctly when the 1.10 branch was - created. This caused the versioning process to always use - the latest version of any API. - - (ADB - 2018/08/17, HDFFV-10552) - - - Added configuration checks for the following MPI functions: - - MPI_Mprobe - Used for the Parallel Compression feature - MPI_Imrecv - Used for the Parallel Compression feature - - MPI_Get_elements_x - Used for the "big Parallel I/O" feature - MPI_Type_size_x - Used for the "big Parallel I/O" feature - - (JTH - 2018/08/02, HDFFV-10512) - - - Added section to the libhdf5.settings file to indicate - the status of the Parallel Compression and "big Parallel I/O" - features. - - (JTH - 2018/08/02, HDFFV-10512) - - - Add option to execute swmr shell scripts from CMake. - - Option TEST_SHELL_SCRIPTS redirects processing into a - separate ShellTests.cmake file for UNIX types. The tests - execute the shell scripts if a SH program is found. - - (ADB - 2018/07/16) - - - Add file locking configure and CMake options - - HDF5 1.10.0 introduced a file locking scheme, primarily to help - enforce SWMR setup. Formerly, the only user-level control of the scheme - was via the HDF5_USE_FILE_LOCKING environment variable. - - This change introduces configure-time options that control whether - or not file locking will be used and whether or not the library - ignores errors when locking has been disabled on the file system - (useful on some HPC Lustre installations). - - In both the Autotools and CMake, the settings have the effect of changing - the default property list settings (see the H5Pset/get_file_locking() - entry, below). - - The yes/no/best-effort file locking configure setting has also been - added to the libhdf5.settings file. - - Autotools: - - An --enable-file-locking=(yes|no|best-effort) option has been added. - - yes: Use file locking. - no: Do not use file locking. - best-effort: Use file locking and ignore "disabled" errors. - - CMake: - - Two self-explanatory options have been added: - - HDF5_USE_FILE_LOCKING - HDF5_IGNORE_DISABLED_FILE_LOCKS - - Setting both of these to ON is the equivalent to the Autotools' - best-effort setting. - - NOTE: - The precedence order of the various file locking control mechanisms is: - - 1) HDF5_USE_FILE_LOCKING environment variable (highest) - - 2) H5Pset_file_locking() - - 3) configure/CMake options (which set the property list defaults) - - 4) library defaults (currently best-effort) - - (DER - 2020/07/30, HDFFV-11092) + (ADB - 2019/10/07, HDFFV-100901, HDFFV-10637, TRILAB-97) Library: -------- - Add new public function H5Ssel_iter_reset - This function resets a dataspace selection iterator back to an - initial state so that it may be used for iteration once more. - This can be useful when needing to iterate over a selection - multiple times without having to repeatedly create/destroy - a selection iterator for that dataspace selection. + This function resets a dataspace selection iterator back to an + initial state so that it may be used for iteration once more. + This can be useful when needing to iterate over a selection + multiple times without having to repeatedly create/destroy + a selection iterator for that dataspace selection. - (JTH - 2020/09/18) + (JTH - 2020/09/18) - Remove HDFS VFD stubs - The original implementation of the HDFS VFD included non-functional - versions of the following public API calls when the HDFS VFD is - not built as a part of the HDF5 library: + The original implementation of the HDFS VFD included non-functional + versions of the following public API calls when the HDFS VFD is + not built as a part of the HDF5 library: - * H5FD_hdfs_init() - * H5Pget_fapl_hdfs() - * H5Pset_fapl_hdfs() + * H5FD_hdfs_init() + * H5Pget_fapl_hdfs() + * H5Pset_fapl_hdfs() - They will remain present in HDF5 1.10 and HDF5 1.12 releases - for binary compatibility purposes but have been removed as of 1.14.0. + They will remain present in HDF5 1.10 and HDF5 1.12 releases + for binary compatibility purposes but have been removed as of 1.14.0. - Note that this has nothing to do with the real HDFS VFD API calls - that are fully functional when the HDFS VFD is configured and built. + Note that this has nothing to do with the real HDFS VFD API calls + that are fully functional when the HDFS VFD is configured and built. - We simply changed: + We simply changed: - #ifdef LIBHDFS - <real API call> - #else - <useless stub> - #endif + #ifdef LIBHDFS + <real API call> + #else + <useless stub> + #endif - to: + to: - #ifdef LIBHDFS - <real API call> - #endif + #ifdef LIBHDFS + <real API call> + #endif - Which is how the other optional VFDs are handled. + Which is how the other optional VFDs are handled. - (DER - 2020/08/27) + (DER - 2020/08/27) - Add Mirror VFD - Use TCP/IP sockets to perform write-only (W/O) file I/O on a remote - machine. Must be used in conjunction with the Splitter VFD. + Use TCP/IP sockets to perform write-only (W/O) file I/O on a remote + machine. Must be used in conjunction with the Splitter VFD. - (JOS - 2020/03/13, TBD) + (JOS - 2020/03/13, TBD) - Add Splitter VFD - Maintain separate R/W and W/O channels for "concurrent" file writes - to two files using a single HDF5 file handle. + Maintain separate R/W and W/O channels for "concurrent" file writes + to two files using a single HDF5 file handle. - (JOS - 2020/03/13, TBD) + (JOS - 2020/03/13, TBD) - Refactored public exposure of haddr_t type in favor of "object tokens" - To better accommodate HDF5 VOL connectors where "object addresses in a file" - may not make much sense, the following changes were made to the library: - - * Introduced new H5O_token_t "object token" type, which represents a - unique and permanent identifier for referencing an HDF5 object within - a container; these "object tokens" are meant to replace object addresses. - Along with the new type, a new H5Oopen_by_token API call was introduced - to open an object by a token, similar to how object addresses were - previously used with H5Oopen_by_addr. - - * Introduced new H5Lget_info2, H5Lget_info_by_idx2, H5Literate2, H5Literate_by_name2, - H5Lvisit2 and H5Lvisit_by_name2 API calls, along with their associated H5L_info2_t - struct and H5L_iterate2_t callback function, which work with the newly-introduced - object tokens, instead of object addresses. The original functions have been - renamed to version 1 functions and are deprecated in favor of the new version 2 - functions. The H5L_info_t and H5L_iterate_t types have been renamed to version 1 - types and are now deprecated in favor of their version 2 counterparts. For each of - the functions and types, compatibility macros take place of the original symbols. - - * Introduced new H5Oget_info3, H5Oget_info_by_name3, H5Oget_info_by_idx3, - H5Ovisit3 and H5Ovisit_by_name3 API calls, along with their associated H5O_info2_t - struct and H5O_iterate2_t callback function, which work with the newly-introduced - object tokens, instead of object addresses. The version 2 functions are now - deprecated in favor of the version 3 functions. The H5O_info_t and H5O_iterate_t - types have been renamed to version 1 types and are now deprecated in favor of their - version 2 counterparts. For each, compatibility macros take place of the original - symbols. - - * Introduced new H5Oget_native_info, H5Oget_native_info_by_name and - H5Oget_native_info_by_idx API calls, along with their associated H5O_native_info_t - struct, which are used to retrieve the native HDF5 file format-specific information - about an object. This information (such as object header info and B-tree/heap info) - has been removed from the new H5O_info2_t struct so that the more generic - H5Oget_info(_by_name/_by_idx)3 routines will not try to retrieve it for non-native - VOL connectors. - - * Added new H5Otoken_cmp, H5Otoken_to_str and H5Otoken_from_str routines to compare - two object tokens, convert an object token into a nicely-readable string format and - to convert an object token string back into a real object token, respectively. - - (DER, QAK, JTH - 2020/01/16) + To better accommodate HDF5 VOL connectors where "object addresses in a file" + may not make much sense, the following changes were made to the library: + + * Introduced new H5O_token_t "object token" type, which represents a + unique and permanent identifier for referencing an HDF5 object within + a container; these "object tokens" are meant to replace object addresses. + Along with the new type, a new H5Oopen_by_token API call was introduced + to open an object by a token, similar to how object addresses were + previously used with H5Oopen_by_addr. + + * Introduced new H5Lget_info2, H5Lget_info_by_idx2, H5Literate2, H5Literate_by_name2, + H5Lvisit2 and H5Lvisit_by_name2 API calls, along with their associated H5L_info2_t + struct and H5L_iterate2_t callback function, which work with the newly-introduced + object tokens, instead of object addresses. The original functions have been + renamed to version 1 functions and are deprecated in favor of the new version 2 + functions. The H5L_info_t and H5L_iterate_t types have been renamed to version 1 + types and are now deprecated in favor of their version 2 counterparts. For each of + the functions and types, compatibility macros take place of the original symbols. + + * Introduced new H5Oget_info3, H5Oget_info_by_name3, H5Oget_info_by_idx3, + H5Ovisit3 and H5Ovisit_by_name3 API calls, along with their associated H5O_info2_t + struct and H5O_iterate2_t callback function, which work with the newly-introduced + object tokens, instead of object addresses. The version 2 functions are now + deprecated in favor of the version 3 functions. The H5O_info_t and H5O_iterate_t + types have been renamed to version 1 types and are now deprecated in favor of their + version 2 counterparts. For each, compatibility macros take place of the original + symbols. + + * Introduced new H5Oget_native_info, H5Oget_native_info_by_name and + H5Oget_native_info_by_idx API calls, along with their associated H5O_native_info_t + struct, which are used to retrieve the native HDF5 file format-specific information + about an object. This information (such as object header info and B-tree/heap info) + has been removed from the new H5O_info2_t struct so that the more generic + H5Oget_info(_by_name/_by_idx)3 routines will not try to retrieve it for non-native + VOL connectors. + + * Added new H5Otoken_cmp, H5Otoken_to_str and H5Otoken_from_str routines to compare + two object tokens, convert an object token into a nicely-readable string format and + to convert an object token string back into a real object token, respectively. + + (DER, QAK, JTH - 2020/01/16) - Add new public function H5Sselect_adjust. - This function shifts a dataspace selection by a specified logical offset - within the dataspace extent. This can be useful for VOL developers to - implement chunked datasets. + This function shifts a dataspace selection by a specified logical offset + within the dataspace extent. This can be useful for VOL developers to + implement chunked datasets. - (NAF - 2019/11/18) + (NAF - 2019/11/18) - Add new public function H5Sselect_project_intersection. - This function computes the intersection between two dataspace selections - and projects that intersection into a third selection. This can be useful - for VOL developers to implement chunked or virtual datasets. + This function computes the intersection between two dataspace selections + and projects that intersection into a third selection. This can be useful + for VOL developers to implement chunked or virtual datasets. - (NAF - 2019/11/13, ID-148) + (NAF - 2019/11/13, ID-148) - Add new public function H5VLget_file_type. - This function returns a datatype equivalent to the supplied datatype but - with the location set to be in the file. This datatype can then be used - with H5Tconvert to convert data between file and in-memory representation. - This funcition is intended for use only by VOL connector developers. - - (NAF - 2019/11/08, ID-127) - - - Add S3 and HDFS VFDs to HDF5 maintenance - - Fix windows requirements and java tests. Windows requires CMake 3.13. - Install openssl library (with dev files); - from "Shining Light Productions". msi package preferred. - - PATH should have been updated with the installation dir. - set ENV variable OPENSSL_ROOT_DIR to the installation dir. - set ENV variable OPENSSL_CONF to the cfg file, likely %OPENSSL_ROOT_DIR%\bin\openssl.cfg - Install libcurl library (with dev files); - download the latest released version using git: https://github.com/curl/curl.git - - Open a Visual Studio Command prompt - change to the libcurl root folder - run the "buildconf.bat" batch file - change to the winbuild directory - nmake /f Makefile.vc mode=dll MACHINE=x64 - copy libcurl-vc-x64-release-dll-ipv6-sspi-winssl dir to C:\curl (installation dir) - set ENV variable CURL_ROOT to C:\curl (installation dir) - update PATH ENV variable to %CURL_ROOT%\bin (installation bin dir). - the aws credentials file should be in %USERPROFILE%\.aws folder - set the ENV variable "HDF5_ROS3_TEST_BUCKET_URL=https://s3.us-east-2.amazonaws.com/hdf5ros3" - - (ADB - 2019/09/12, HDFFV-10854) - - - Added new chunk query functions - - The following public functions were added to discover information about - the chunks in an HDF5 file. - herr_t H5Dget_num_chunks(dset_id, fspace_id, *nchunks) - herr_t H5Dget_chunk_info_by_coord(dset_id, *coord, *filter_mask, *addr, *size) - herr_t H5Dget_chunk_info(dset_id, fspace_id, index, *coord, *filter_mask, *addr, *size) - - (BMR - 2019/06/11, HDFFV-10677) - - - Improved the performance of virtual dataset I/O + This function returns a datatype equivalent to the supplied datatype but + with the location set to be in the file. This datatype can then be used + with H5Tconvert to convert data between file and in-memory representation. + This funcition is intended for use only by VOL connector developers. - Refactored the internal dataspace routines used by the virtual dataset - code to improve performance, especially when one of the selections - involved is very long and non-contiguous. + (NAF - 2019/11/08, ID-127) - (NAF - 2019/05/31, HDFFV-10693) - - - Added the ability to open files with UTF-8 file names on Windows. - - The POSIX open(2) API call on Windows is limited to ASCII - file names. The library has been updated to convert incoming file - names to UTF-16 (via MultiByteToWideChar(CP_UTF8, ...) and use - _wopen() instead. - - (DER - 2019/03/15, HDFFV-2714, HDFFV-3914, HDFFV-3895, HDFFV-8237, HDFFV-10413, HDFFV-10691) - - - Add new API H5M for map objects. Currently not supported by native - library, can be supported by VOL connectors. - - (NAF - 2019/03/01) - - - Add new H5R_ref_t type for object, dataset region and _attribute_ - references. This new type will deprecate the current hobj_ref_t - and hdset_reg_ref_t types for references. Added H5T_REF datatype - to read and write new reference types. As opposed to previous - reference types, reference creation no longer modifies existing - files. New reference types also now support references to external - files. - - (JS - 2019/10/08) - - - Remove H5I_REFERENCE from the library - - This ID class was never used by the library and has been removed. - - (DER - 2018/12/08, HDFFV-10252) - - - Allow pre-generated H5Tinit.c and H5make_libsettings.c to be used. - - Rather than always running H5detect and generating H5Tinit.c and - H5make_libsettings.c, supply a location for those files. - - (ADB - 2018/09/18, HDFFV-10332) - - - Fix shutdown failure when using H5VLregister_connector_by_name/value - - When using H5VLregister_connector_by_name/value to dynamically load a - VOL connector plugin, the library can experience segmentation faults - when the library is closed. This is due to the library unloading - the plugin interface before the virtual object layer. Then, when the - VOL shutdown occurs, it will attempt to close the VOL connector, - however this will fail since the plugin will already have been unloaded. - - (DER - 2020/03/18, HDFFV-11057) - - - Add BEST_EFFORT value to HDF5_USE_FILE_LOCKING environment variable - - This change adds a BEST_EFFORT to the TRUE/FALSE, 1/0 settings that - were previously accepted. This option turns on file locking but - ignores locking errors when the library detects that file locking - has been disabled on a file system (useful on some HPC Lustre - installations). - - The capitalization of BEST_EFFORT is mandatory. - - See the configure option discussion for HDFFV-11092 (above) for more - information on the file locking feature and how it's controlled. - - (DER - 2020/07/30, HDFFV-11092) - - - - Add H5Pset/get_file_locking() API calls - - This change adds new API calls which can be used to set or get the - file locking parameters. The single API call sets both the "use file - locking" flag and the "ignore disabled file locking" flag. - - See the configure option discussion for HDFFV-11092 (above) for more - information on the file locking feature and how it's controlled. - - (DER - 2020/07/30, HDFFV-11092) Parallel Library: ----------------- - - Changed the default behavior in parallel when reading the same dataset in its entirely - (i.e. H5S_ALL dataset selection) which is being read by all the processes collectively. - The dataset mush be contiguous, less than 2GB, and of an atomic datatype. - The new behavior is the HDF5 library will use an MPI_Bcast to pass the data read from - the disk by the root process to the remain processes in the MPI communicator associated - with the HDF5 file. + - - (MSB - 2019/01/02, HDFFV-10652) Fortran Library: ---------------- - - Added new Fortran derived type, c_h5o_info_t, which is interoperable with - C's h5o_info_t. This is needed for callback functions which - pass C's h5o_info_t data type definition. - - (MSB, 2019/01/08, HDFFV-10443) - - - Added new Fortran API, H5gmtime, which converts (C) 'time_t' structure - to Fortran DATE AND TIME storage format. - - (MSB, 2019/01/08, HDFFV-10443) - - - Added new Fortran 'fields' optional parameter to: h5ovisit_f, h5oget_info_by_name_f, - h5oget_info, h5oget_info_by_idx and h5ovisit_by_name_f. - - (MSB, 2019/01/08, HDFFV-10443) - - Add wrappers for H5Pset/get_file_locking() API calls - h5pget_file_locking_f() - h5pset_file_locking_f() + h5pget_file_locking_f() + h5pset_file_locking_f() - See the configure option discussion for HDFFV-11092 (above) for more - information on the file locking feature and how it's controlled. + See the configure option discussion for HDFFV-11092 (above) for more + information on the file locking feature and how it's controlled. - (DER - 2020/07/30, HDFFV-11092) + (DER - 2020/07/30, HDFFV-11092) C++ Library: ------------ - - Added new wrappers for H5Pset/get_create_intermediate_group() - LinkCreatPropList::getCreateIntermediateGroup() - LinkCreatPropList::setCreateIntermediateGroup() - - (BMR - 2019/04/22, HDFFV-10622) - - - Added new wrapper for H5Ovisit2() - H5Object::visit() - - (BMR - 2019/02/14, HDFFV-10532) - - Add wrappers for H5Pset/get_file_locking() API calls - FileAccPropList::setFileLocking() - FileAccPropList::getFileLocking() + FileAccPropList::setFileLocking() + FileAccPropList::getFileLocking() - See the configure option discussion for HDFFV-11092 (above) for more - information on the file locking feature and how it's controlled. + See the configure option discussion for HDFFV-11092 (above) for more + information on the file locking feature and how it's controlled. - (DER - 2020/07/30, HDFFV-11092) + (DER - 2020/07/30, HDFFV-11092) Java Library: ---------------- - Added new H5S functions. - H5Sselect_copy, H5Sselect_shape_same, H5Sselect_adjust, - H5Sselect_intersect_block, H5Sselect_project_intersection, - H5Scombine_hyperslab, H5Smodify_select, H5Scombine_select - wrapper functions added. - - (ADB - 2020/10/27, HDFFV-10868) - - - Added ability to test java library with VOLs. - - Created new CMake script that combines the java and vol test scripts. - - (ADB - 2020/02/03, HDFFV-10996) - - - Tests fail for non-English locale. - - In the JUnit tests with a non-English locale, only the part before - the decimal comma is replaced by XXXX and this leads to a comparison - error. Changed the regex for the Time substitution. - - (ADB - 2020/01/09, HDFFV-10995) - - - Fix a failure in JUnit-TestH5P on 32-bit architectures + H5Sselect_copy, H5Sselect_shape_same, H5Sselect_adjust, + H5Sselect_intersect_block, H5Sselect_project_intersection, + H5Scombine_hyperslab, H5Smodify_select, H5Scombine_select + wrapper functions added. - (JTH - 2019/04/30) + (ADB - 2020/10/27, HDFFV-10868) - - Duplicate the data read/write functions of Datasets for Attributes. + - Add wrappers for H5Pset/get_file_locking() API calls - Region references could not be displayed for attributes as they could - for datasets. Datasets had overloaded read and write functions for different - datatypes that were not available for attributes. After adding similar - functions, attribute region references work normally. + H5Pset_file_locking() + H5Pget_use_file_locking() + H5Pget_ignore_disabled_file_locking() - (ADB - 2018/12/12, HDFVIEW-4) + Unlike the C++ and Fortran wrappers, there are separate getters for the + two file locking settings, each of which returns a boolean value. - - Removed H5I_REFERENCE from the Java wrappers + See the configure option discussion for HDFFV-11092 (above) for more + information on the file locking feature and how it's controlled. - This ID class was never used by the library and has been removed - from the Java wrappers. + (DER - 2020/07/30, HDFFV-11092) - (DER - 2018/12/08, HDFFV-10252) + - Added ability to test java library with VOLs. - - Add wrappers for H5Pset/get_file_locking() API calls + Created new CMake script that combines the java and vol test scripts. - H5Pset_file_locking() - H5Pget_use_file_locking() - H5Pget_ignore_disabled_file_locking() + (ADB - 2020/02/03, HDFFV-10996) - Unlike the C++ and Fortran wrappers, there are separate getters for the - two file locking settings, each of which returns a boolean value. + - Tests fail for non-English locale. - See the configure option discussion for HDFFV-11092 (above) for more - information on the file locking feature and how it's controlled. + In the JUnit tests with a non-English locale, only the part before + the decimal comma is replaced by XXXX and this leads to a comparison + error. Changed the regex for the Time substitution. - (DER - 2020/07/30, HDFFV-11092) + (ADB - 2020/01/09, HDFFV-10995) Tools: ------ - h5repack added options to control how external links are handled. - Currently h5repack preserves external links and cannot copy and merge - data from the external files. Two options, merge and prune, were added to - control how to merge data from an external link into the resulting file. - --merge Follow external soft link recursively and merge data. - --prune Do not follow external soft links and remove link. - --merge --prune Follow external link, merge data and remove dangling link. + Currently h5repack preserves external links and cannot copy and merge + data from the external files. Two options, merge and prune, were added to + control how to merge data from an external link into the resulting file. + --merge Follow external soft link recursively and merge data. + --prune Do not follow external soft links and remove link. + --merge --prune Follow external link, merge data and remove dangling link. - (ADB - 2020/08/05, HDFFV-9984) + (ADB - 2020/08/05, HDFFV-9984) - h5repack was fixed to repack the reference attributes properly. - The code line that checks if the update of reference inside a compound - datatype is misplaced outside the code block loop that carries out the - check. In consequence, the next attribute that is not the reference - type was repacked again as the reference type and caused the failure of - repacking. The fix is to move the corresponding code line to the correct - code block. + The code line that checks if the update of reference inside a compound + datatype is misplaced outside the code block loop that carries out the + check. In consequence, the next attribute that is not the reference + type was repacked again as the reference type and caused the failure of + repacking. The fix is to move the corresponding code line to the correct + code block. - (KY -2020/02/07, HDFFV-11014) + (KY -2020/02/07, HDFFV-11014) - h5diff was updated to use the new reference APIs. - h5diff uses the new reference APIs to compare references. - Attribute references can also be compared. + h5diff uses the new reference APIs to compare references. + Attribute references can also be compared. - (ADB - 2019/12/19, HDFFV-10980) + (ADB - 2019/12/19, HDFFV-10980) - h5dump and h5ls were updated to use the new reference APIs. - The tools library now use the new reference APIs to inspect a - file. Also the DDL spec was updated to reflect the format - changes produced with the new APIs. The export API and support - functions in the JNI were updated to match. - - (ADB - 2019/12/06, HDFFV-10876 and HDFFV-10877) - - - h5repack was fixed to repack datasets with external storage - to other types of storage. + The tools library now use the new reference APIs to inspect a + file. Also the DDL spec was updated to reflect the format + changes produced with the new APIs. The export API and support + functions in the JNI were updated to match. - New test added to repack files and verify the correct data using h5diff. - - (JS - 2019/09/25, HDFFV-10408) - (ADB - 2019/10/02, HDFFV-10918) - - - h5dump was fixed for 128-bit floats, but was missing a test. - - New test greps for the first 15 numbers of the 128-bit value. - - (ADB - 2019/06/23, HDFFV-9407) + (ADB - 2019/12/06, HDFFV-10876 and HDFFV-10877) High-Level APIs: @@ -874,431 +549,130 @@ Support for new platforms, languages and compilers. ======================================= - -Bug Fixes since HDF5-1.10.3 release +Bug Fixes since HDF5-1.12.0 release ================================== Library ------- - Creation of dataset with optional filter - When the combination of type, space, etc doesn't work for filter - and the filter is optional, it was supposed to be skipped but it was - not skipped and the creation failed. + When the combination of type, space, etc doesn't work for filter + and the filter is optional, it was supposed to be skipped but it was + not skipped and the creation failed. - Allowed the creation of the dataset in such situation. + Allowed the creation of the dataset in such situation. - (BMR - 2020/8/13, HDFFV-10933) + (BMR - 2020/08/13, HDFFV-10933) - Explicitly declared dlopen to use RTLD_LOCAL - dlopen documentation states that if neither RTLD_GLOBAL nor - RTLD_LOCAL are specified, then the default behavior is unspecified. - The default on linux is usually RTLD_LOCAL while macos will default - to RTLD_GLOBAL. - - (ADB - 2020/08/12, HDFFV-11127) - - - Fixed issues CVE-2018-13870 and CVE-2018-13869 - - When a buffer overflow occurred because a name length was corrupted - and became very large, h5dump crashed on memory access violation. - - A check for reading pass the end of the buffer was added to multiple - locations to prevent the crashes and h5dump now simply fails with an - error message when this error condition occurs. - - (BMR - 2020/07/22, HDFFV-11120 and HDFFV-11121) - - - Fixed the segmentation fault when reading attributes with multiple threads - - It was reported that the reading of attributes with variable length string - datatype will crash with segmentation fault particularly when the number of - threads is high (>16 threads). The problem was due to the file pointer that - was set in the variable length string datatype for the attribute. That file - pointer was already closed when the attribute was accessed. - - The problem was fixed by setting the file pointer to the current opened file pointer - when the attribute was accessed. Similar patch up was done before when reading - dataset with variable length string datatype. - - (VC - 2020/07/13, HDFFV-11080) - - - Fixed CVE-2020-10810 - - The tool h5clear produced a segfault during an error recovery in - the superblock decoding. An internal pointer was reset to prevent - further accessing when it is not assigned with a value. - - (BMR - 2020/6/29, HDFFV-11053) - - - Fixed CVE-2018-17435 - - The tool h52gif produced a segfault when the size of an attribute - message was corrupted and caused a buffer overflow. - - The problem was fixed by verifying the attribute message's size - against the buffer size before accessing the buffer. h52gif was - also fixed to display the failure instead of silently exiting - after the segfault was eliminated. - - (BMR - 2020/6/19, HDFFV-10591) - - - Improved peformance when creating a large number of small datasets by - retrieving default property values from the API context instead of doing - skip list searches. - - (CJH - 2019/12/10, HDFFV-10658) - - - Fixed user-created data access properties not existing in the property list - returned by H5Dget_access_plist. Thanks to Steven Varga for submitting a - reproducer and a patch. - - (CJH - 2019/12/9, HDFFV-10934) - - - Fixed an assertion failure in the parallel library when collectively - filling chunks. As it is required that chunks be written in - monotonically non-decreasing order of offset in the file, this assertion - was being triggered when the list of chunk file space allocations being - passed to the collective chunk filling routine was not sorted according - to this particular requirement. - - The addition of a sort of the out of order chunks trades a bit of - performance for the elimination of this assertion and of any complaints - from MPI implementations about the file offsets used being out of order. - - (JTH - 2019/10/07, HDFFV-10792) - - - Fixed the iteration error in test_versionbounds() in test/dtypes.c - - The test was supposed to loop through all valid combinations of - low and high bounds in the array versions[], but they were set to - H5F_LIBVER_EARLIEST always without changing. - - The problem was fixed by indexing low and high into the array versions[]. - - (VC - 2019/09/30) - - - Fixed the slowness of regular hyperslab selection in a chunked dataset - - It was reported that the selection of every 10th element from a 20G - chunked dataset was extremely slow and sometimes could hang the system. - The problem was due to the iteration and the building of the span tree - for all the selected elements in file space. - - As the selected elements are going to a 1-d contiguous single block - memory space, the problem was fixed by building regular hyperslab selections - in memory space for the selected elements in file space. - - (VC - 2019/09/26, HDFFV-10585) - - - Fixed a bug caused by bad tag value when condensing object header - messages + dlopen documentation states that if neither RTLD_GLOBAL nor + RTLD_LOCAL are specified, then the default behavior is unspecified. + The default on linux is usually RTLD_LOCAL while macos will default + to RTLD_GLOBAL. - There was an assertion failure when moving meessages from running a - user test program with library release hdf5.1.10.4. It was because - the tag value (object header's address) was not set up when entering - the library routine H5O__chunk_update_idx(), which will eventually - verifies the metadata tag value when protecting the object header. + (ADB - 2020/08/12, HDFFV-11127) - The problem was fixed by replacing FUNC_ENTER_PACKAGE in H5O__chunk_update_idx() - with FUNC_ENTER_PACKAGE_TAG(oh->cache_info.addr) to set up the metadata tag. - - (VC - 2019/08/23, HDFFV-10873) - - - Fixed the test failure from test_metadata_read_retry_info() in - test/swmr.c - - The test failure is due to the incorrect number of bins returned for - retry info (info.nbins). The # of bins expected for 101 read attempts - is 3 instead of 2. The routine H5F_set_retries() in src/H5Fint.c - calculates the # of bins by first obtaining the log10 value for - (read attempts - 1). For PGI/19, the log10 value for 100 read attempts - is 1.9999999999999998 instead of 2.00000. When casting the log10 value - to unsigned later on, the decimal part is chopped off causing the test - failure. - - This was fixed by obtaining the rounded integer value (HDceil) for the - log10 value of read attempts first before casting the result to unsigned. - - (VC - 2019/8/14, HDFFV-10813) - - - Fixed an issue where creating a file with non-default file space info - together with library high bound setting to H5F_LIBVER_V18. - - When setting non-default file space info in fcpl via - H5Pset_file_space_strategy() and then creating a file with - both high and low library bounds set to - H5F_LIBVER_V18 in fapl, the library succeeds in creating the file. - File creation should fail because the feature of setting non-default - file space info does not exist in library release 1.8 or earlier. - - This was fixed by setting and checking the proper version in the - file space info message based on the library low and high bounds - when creating and opening the HDF5 file. - - (VC - 2019/6/25, HDFFV-10808) - - - When iterating over an old-style group (i.e., when not using the latest - file format) of size 0, a NULL pointer representing the empty links - table would be sent to qsort(3) for sorting, which is undefined behavior. - - Iterating over an empty group is explicitly tested in the links test. - This has not caused any failures to date and was flagged by gcc's - -fsanitize=undefined. - - The library no longer attempts to sort an empty array. - - (DER - 2019/06/18, HDFFV-10829) - - - Fixed an issue where copying a version 1.8 dataset between files using - H5Ocopy fails due to an incompatible fill version - - When using the HDF5 1.10.x H5Ocopy() API call to copy a version 1.8 - dataset to a file created with both high and low library bounds set to - H5F_LIBVER_V18, the H5Ocopy() call will fail with the error stack indicating - that the fill value version is out of bounds. - - This was fixed by changing the fill value message version to H5O_FILL_VERSION_3 - (from H5O_FILL_VERSION_2) for H5F_LIBVER_V18. - - (VC - 2019/6/14, HDFFV-10800) - - - Some oversights in the index iterating area of the library caused - a callback function to continue iterating even though it's supposed - to stop. - - Added the returned value check to the for loop's conditions in - H5EA_iterate(), H5FA_iterate(), and H5D__none_idx_iterate(). The - iteration now stops when it should. - - (BMR - 2019/06/11, HDFFV-10661) - - - Fixed a bug that would cause an error or cause fill values to be - incorrectly read from a chunked dataset using the "single chunk" index if - the data was held in cache and there was no data on disk. - - (NAF - 2019/03/06) - - - Fixed a bug that could cause an error or cause fill values to be - incorrectly read from a dataset that was written to using H5Dwrite_chunk - if the dataset was not closed after writing. - - (NAF - 2019/03/06, HDFFV-10716) - - - Fixed memory leak in scale offset filter - - In a special case where the MinBits is the same as the number of bits in - the datatype's precision, the filter's data buffer was not freed, causing - the memory usage to grow. In general the buffer was freed correctly. The - Minbits are the minimal number of bits to store the data values. Please - see the reference manual for H5Pset_scaleoffset for the detail. - - (RL - 2019/3/4, HDFFV-10705) - - - Fix hangs with collective metadata reads during chunked dataset I/O - - In the parallel library, it was discovered that when a particular - sequence of operations following a pattern of: - - "write to chunked dataset" -> "flush file" -> "read from dataset" - - occurred with collective metadata reads enabled, hangs could be - observed due to certain MPI ranks not participating in the collective - metadata reads. - - To fix the issue, collective metadata reads are now disabled during - chunked dataset raw data I/O. - - (JTH - 2019/02/11, HDFFV-10563, HDFFV-10688) - - - Performance issue when closing an object - - The slow down is due to the search of the "tag_list" to find - out the "corked" status of an object and "uncork" it if so. - - Improve porformance by skipping the search of the "tag_list" - if there are no "corked" objects when closing an object. - - (VC - 2019/2/6) - - - Fixed a potential invalid memory access and failure that could occur when - decoding an unknown object header message (from a future version of the - library). - - (NAF - 2019/01/07) - - - Deleting attributes in dense storage - - The library aborts with "infinite loop closing library" after - attributes in dense storage are created and then deleted. - - When deleting the attribute nodes from the name index v2 B-tree, - if an attribute is found in the intermediate B-tree nodes, - which may be merged/redistributed in the process, we need to - free the dynamically allocated spaces for the intermediate - decoded attribute. - - (VC - 2018/12/26, HDFFV-10659) - - - Allow H5detect and H5make_libsettings to take a file as an argument. - - Rather than only writing to stdout, add a command argument to name - the file that H5detect and H5make_libsettings will use for output. - Without an argument, stdout is still used, so backwards compatibility - is maintained. + - H5Sset_extent_none() sets the dataspace class to H5S_NO_CLASS which + causes asserts/errors when passed to other dataspace API calls. - (ADB - 2018/09/05, HDFFV-9059) + H5S_NO_CLASS is an internal class value that should not have been + exposed via a public API call. - - A bug was discovered in the parallel library where an application - would hang if a collective read/write of a chunked dataset occurred - when collective metadata reads were enabled and some of the ranks - had no selection in the dataset's dataspace. The ranks which had no - selection in the dataset's dataspace called H5D__chunk_addrmap() to - retrieve the lowest chunk address in the dataset. This is because we - require reads/writes to be performed in strictly non-decreasing order - of chunk address in the file. + In debug builds of the library, this can cause asserts to trip. In + non-debug builds, it will produce normal library errors. - When the chunk index used was a version 1 or 2 B-tree, these - non-participating ranks would issue a collective MPI_Bcast() call - that the participating ranks would not issue, causing the hang. Since - the non-participating ranks are not actually reading/writing anything, - the H5D__chunk_addrmap() call can be safely removed and the address used - for the read/write can be set to an arbitrary number (0 was chosen). + The new library behavior is for H5Sset_extent_none() to convert + the dataspace into one of type H5S_NULL, which is better handled + by the library and easier for developers to reason about. - (JTH - 2018/08/25, HDFFV-10501) + (DER - 2020/07/27, HDFFV-11027) - - fcntl(2)-based file locking incorrectly passed the lock argument struct - instead of a pointer to the struct, causing errors on systems where - flock(2) is not available. + - Fixed issues CVE-2018-13870 and CVE-2018-13869 - File locking is used when files are opened to enforce SWMR semantics. A - lock operation takes place on all file opens unless the - HDF5_USE_FILE_LOCKING environment variable is set to the string "FALSE". - flock(2) is preferentially used, with fcntl(2) locks as a backup if - flock(2) is unavailable on a system (if neither is available, the lock - operation fails). On these systems, the file lock will often fail, which - causes HDF5 to not open the file and report an error. + When a buffer overflow occurred because a name length was corrupted + and became very large, h5dump crashed on memory access violation. - This bug only affects POSIX systems. Win32 builds on Windows use a no-op - locking call which always succeeds. Systems which exhibit this bug will - have H5_HAVE_FCNTL defined but not H5_HAVE_FLOCK in the configure output. + A check for reading pass the end of the buffer was added to multiple + locations to prevent the crashes and h5dump now simply fails with an + error message when this error condition occurs. - This bug affects HDF5 1.10.0 through 1.10.5. + (BMR - 2020/07/22, HDFFV-11120 and HDFFV-11121) - fcntl(2)-based file locking now correctly passes the struct pointer. + - Fixed the segmentation fault when reading attributes with multiple threads - (DER - 2019/08/27, HDFFV-10892) + It was reported that the reading of attributes with variable length string + datatype will crash with segmentation fault particularly when the number of + threads is high (>16 threads). The problem was due to the file pointer that + was set in the variable length string datatype for the attribute. That file + pointer was already closed when the attribute was accessed. - - Torn pread/pwrite I/O would result in read and write corruption. + The problem was fixed by setting the file pointer to the current opened file pointer + when the attribute was accessed. Similar patch up was done before when reading + dataset with variable length string datatype. - In the sec2, log, and core (with backing store) virtual file drivers - (VFDs), the read and write calls incorrectly reset the offset parameter - on torn pread and pwrite operations (i.e., I/O operations which fail to - be written atomically by the OS). For this bug to occur, pread/pwrite - have to be configured (this is the default if they are present on the - system) and the pread/pwrite operation has to fail to transfer all - the bytes, resulting in a multiple pread/pwrite calls. + (VC - 2020/07/13, HDFFV-11080) - This feature was initially enabled in HDF5 1.10.5 so the bug is - limited to that version. + - Fixed CVE-2020-10810 - (DER - 2019/12/09, HDFFV-10945) + The tool h5clear produced a segfault during an error recovery in + the superblock decoding. An internal pointer was reset to prevent + further accessing when it is not assigned with a value. - - H5Sset_extent_none() sets the dataspace class to H5S_NO_CLASS which - causes asserts/errors when passed to other dataspace API calls. + (BMR - 2020/06/29, HDFFV-11053) - H5S_NO_CLASS is an internal class value that should not have been - exposed via a public API call. + - Fixed CVE-2018-17435 - In debug builds of the library, this can cause asserts to trip. In - non-debug builds, it will produce normal library errors. + The tool h52gif produced a segfault when the size of an attribute + message was corrupted and caused a buffer overflow. - The new library behavior is for H5Sset_extent_none() to convert - the dataspace into one of type H5S_NULL, which is better handled - by the library and easier for developers to reason about. + The problem was fixed by verifying the attribute message's size + against the buffer size before accessing the buffer. h52gif was + also fixed to display the failure instead of silently exiting + after the segfault was eliminated. - (DER - 2020/07/27, HDFFV-11027) + (BMR - 2020/06/19, HDFFV-10591) Java Library: ---------------- - - JNI native library dependencies - - The build for the hdf5_java native library used the wrong - hdf5 target library for CMake builds. Correcting the hdf5_java - library to build with the shared hdf5 library required testing - paths to change also. - - (ADB - 2018/08/31, HDFFV-10568) - - Java iterator callbacks - - Change global callback object to a small stack structure in order - to fix a runtime crash. This crash was discovered when iterating - through a file with nested group members. The global variable - visit_callback is overwritten when recursion starts. When recursion - completes, visit_callback will be pointing to the wrong callback method. - - (ADB - 2018/08/15, HDFFV-10536) + - Added ability to test java library with VOLs. - - Java HDFLibraryException class + Created new CMake script that combines the java and vol test scripts. - Change parent class from Exception to RuntimeException. + (ADB - 2020/02/03, HDFFV-10996) - (ADB - 2018/07/30, HDFFV-10534) + - Tests fail for non-English locale. - - JNI Read and Write + In the JUnit tests with a non-English locale, only the part before + the decimal comma is replaced by XXXX and this leads to a comparison + error. Changed the regex for the Time substitution. - Refactored variable-length functions, H5DreadVL and H5AreadVL, - to correct dataset and attribute reads. New write functions, - H5DwriteVL and H5AwriteVL, are under construction. + (ADB - 2020/01/09, HDFFV-10995) - (ADB - 2018/06/02, HDFFV-10519) Configuration ------------- - - Correct option for default API version - - CMake options for default API version are not mutually exclusive. - Change the multiple BOOL options to a single STRING option with the - strings; v16, v18, v110, v112. + - - (ADB - 2019/08/12, HDFFV-10879) Performance ------------- - + Fortran -------- - - Added symbolic links libhdf5_hl_fortran.so to libhdf5hl_fortran.so and - libhdf5_hl_fortran.a to libhdf5hl_fortran.a in hdf5/lib directory for - autotools installs. These were added to match the name of the files - installed by cmake and the general pattern of hl lib files. We will - change the names of the installed lib files to the matching name in - the next major release. - - (LRK - 2019/01/04, HDFFV-10596) - - - Made Fortran specific subroutines PRIVATE in generic procedures. - - Effected generic procedures were functions in H5A, H5D, H5P, H5R and H5T. - - (MSB, 2018/12/04, HDFFV-10511) - - - Fixed issue with Fortran not returning h5o_info_t field values - meta_size%attr%index_size and meta_size%attr%heap_size. - - (MSB, 2018/1/8, HDFFV-10443) - - Corrected INTERFACE INTENT(IN) to INTENT(OUT) for buf_size in h5fget_file_image_f. - (MSB - 2020/2/18, HDFFV-11029) + (MSB - 2020/02/18, HDFFV-11029) + Tools ----- - The tools library was updated by standardizing the error stack process. - General sequence is: + General sequence is: h5tools_setprogname(PROGRAMNAME); h5tools_setstatus(EXIT_SUCCESS); h5tools_init(); @@ -1307,292 +681,66 @@ Bug Fixes since HDF5-1.10.3 release ... (do work) ... h5diff_exit(ret); - (ADB - 2020/07/20, HDFFV-11066) + (ADB - 2020/07/20, HDFFV-11066) - h5diff fixed a command line parsing error. - h5diff would ignore the argument to -d (delta) if it is smaller than DBL_EPSILON. - The macro H5_DBL_ABS_EQUAL was removed and a direct value comparision was used. + h5diff would ignore the argument to -d (delta) if it is smaller than DBL_EPSILON. + The macro H5_DBL_ABS_EQUAL was removed and a direct value comparision was used. - (ADB - 2020/07/20, HDFFV-10897) + (ADB - 2020/07/20, HDFFV-10897) - h5diff added a command line option to ignore attributes. - h5diff would ignore all objects with a supplied path if the exclude-path argument is used. - Adding the exclude-attribute argument will only eclude attributes, with the supplied path, - from comparision. + h5diff would ignore all objects with a supplied path if the exclude-path argument is used. + Adding the exclude-attribute argument will only eclude attributes, with the supplied path, + from comparision. - (ADB - 2020/07/20, HDFFV-5935) + (ADB - 2020/07/20, HDFFV-5935) - h5diff added another level to the verbose argument to print filenames. - Added verbose level 3 that is level 2 plus the filenames. The levels are: + Added verbose level 3 that is level 2 plus the filenames. The levels are: 0 : Identical to '-v' or '--verbose' 1 : All level 0 information plus one-line attribute status summary 2 : All level 1 information plus extended attribute status report 3 : All level 2 information plus file names - (ADB - 2020/07/20, HDFFV-10005) - - High-Level APIs: - ------ - - The H5DSis_scale function was updated to return "not a dimension scale" (0) - instead of failing (-1), when CLASS or DIMENSION_SCALE attributes are - not written according to Dimension Scales Specification. - - (EIP - 2020/08/12, HDFFV-10436) - - Fortran High-Level APIs: - ------ - - - - Documentation - ------------- - - - - F90 APIs - -------- - - - - C++ APIs - -------- - - - - Testing - ------- - - Stopped java/test/junit.sh.in installing libs for testing under ${prefix} - - Lib files needed are now copied to a subdirectory in the java/test - directory, and on Macs the loader path for libhdf5.xxxs.so is changed - in the temporary copy of libhdf5_java.dylib. - - (LRK, 2020/7/2, HDFFV-11063) - - - Fixed a test failure in testpar/t_dset.c caused by - the test trying to use the parallel filters feature - on MPI-2 implementations. - - (JTH, 2019/2/7) - -Bug Fixes since HDF5-1.10.2 release -================================== - - Library - ------- - - Java HDF5LibraryException class - - The error minor and major values would be lost after the - constructor executed. - - Created two local class variables to hold the values obtained during - execution of the constructor. Refactored the class functions to retrieve - the class values rather then calling the native functions. - The native functions were renamed and called only during execution - of the constructor. - Added error checking to calling class constructors in JNI classes. - - (ADB - 2018/08/06, HDFFV-10544) - - - Added checks of the defined MPI_VERSION to guard against usage of - MPI-3 functions in the Parallel Compression and "big Parallel I/O" - features when HDF5 is built with MPI-2. Previously, the configure - step would pass but the build itself would fail when it could not - locate the MPI-3 functions used. - - As a result of these new checks, HDF5 can again be built with MPI-2, - but the Parallel Compression feature will be disabled as it relies - on the MPI-3 functions used. - - (JTH - 2018/08/02, HDFFV-10512) - - - User's patches: CVEs - - The following patches have been applied: - - CVE-2018-11202 - NULL pointer dereference was discovered in - H5S_hyper_make_spans in H5Shyper.c (HDFFV-10476) - https://security-tracker.debian.org/tracker/CVE-2018-11202 - https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11202 - - CVE-2018-11203 - A division by zero was discovered in - H5D__btree_decode_key in H5Dbtree.c (HDFFV-10477) - https://security-tracker.debian.org/tracker/CVE-2018-11203 - https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11203 - - CVE-2018-11204 - A NULL pointer dereference was discovered in - H5O__chunk_deserialize in H5Ocache.c (HDFFV-10478) - https://security-tracker.debian.org/tracker/CVE-2018-11204 - https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11204 - - CVE-2018-11206 - An out of bound read was discovered in - H5O_fill_new_decode and H5O_fill_old_decode in H5Ofill.c - (HDFFV-10480) - https://security-tracker.debian.org/tracker/CVE-2018-11206 - https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11206 - - CVE-2018-11207 - A division by zero was discovered in - H5D__chunk_init in H5Dchunk.c (HDFFV-10481) - https://security-tracker.debian.org/tracker/CVE-2018-11207 - https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11207 - - (BMR - 2018/7/22, PR#s: 1134 and 1139, - HDFFV-10476, HDFFV-10477, HDFFV-10478, HDFFV-10480, HDFFV-10481) - - - H5Adelete - - H5Adelete failed when deleting the last "large" attribute that - is stored densely via fractal heap/v2 b-tree. - - After removing the attribute, update the ainfo message. If the - number of attributes goes to zero, remove the message. - - (VC - 2018/07/20, HDFFV-9277) - - - A bug was discovered in the parallel library which caused partial - parallel reads of filtered datasets to return incorrect data. The - library used the incorrect dataspace for each chunk read, causing - the selection used in each chunk to be wrong. - - The bug was not caught during testing because all of the current - tests which do parallel reads of filtered data read all of the data - using an H5S_ALL selection. Several tests were added which exercise - partial parallel reads. - - (JTH - 2018/07/16, HDFFV-10467) - - - A bug was discovered in the parallel library which caused parallel - writes of filtered datasets to trigger an assertion failure in the - file free space manager. - - This occurred when the filter used caused chunks to repeatedly shrink - and grow over the course of several dataset writes. The previous chunk - information, such as the size of the chunk and the offset in the file, - was being cached and not updated after each write, causing the next write - to the chunk to retrieve the incorrect cached information and run into - issues when reallocating space in the file for the chunk. - - (JTH - 2018/07/16, HDFFV-10509) - - - A bug was discovered in the parallel library which caused the - H5D__mpio_array_gatherv() function to allocate too much memory. - - When the function is called with the 'allgather' parameter set - to a non-true value, the function will receive data from all MPI - ranks and gather it to the single rank specied by the 'root' - parameter. However, the bug in the function caused memory for - the received data to be allocated on all MPI ranks, not just the - singular rank specified as the receiver. In some circumstances, - this would cause an application to fail due to the large amounts - of memory being allocated. - - (JTH - 2018/07/16, HDFFV-10467) - - - Error checks in h5stat and when decoding messages - - h5stat exited with seg fault/core dumped when - errors are encountered in the internal library. - - Add error checks and --enable-error-stack option to h5stat. - Add range checks when decoding messages: old fill value, old - layout and refcount. - - (VC - 2018/07/11, HDFFV-10333) - - - If an HDF5 file contains a malformed compound datatype with a - suitably large offset, the type conversion code can run off - the end of the type conversion buffer, causing a segmentation - fault. - - This issue was reported to The HDF Group as issue #CVE-2017-17507. - - NOTE: The HDF5 C library cannot produce such a file. This condition - should only occur in a corrupt (or deliberately altered) file - or a file created by third-party software. + (ADB - 2020/07/20, HDFFV-10005) - THE HDF GROUP WILL NOT FIX THIS BUG AT THIS TIME - - Fixing this problem would involve updating the publicly visible - H5T_conv_t function pointer typedef and versioning the API calls - which use it. We normally only modify the public API during - major releases, so this bug will not be fixed at this time. - - (DER - 2018/02/26, HDFFV-10356) - - - Inappropriate linking with deprecated MPI C++ libraries - - HDF5 does not define *_SKIP_MPICXX in the public headers, so applications - can inadvertently wind up linking to the deprecated MPI C++ wrappers. - - MPICH_SKIP_MPICXX and OMPI_SKIP_MPICXX have both been defined in H5public.h - so this should no longer be an issue. HDF5 makes no use of the deprecated - MPI C++ wrappers. - - (DER - 2019/09/17, HDFFV-10893) - - - - Configuration - ------------- - - Applied patches to address Cywin build issues - - There were three issues for Cygwin builds: - - Shared libs were not built. - - The -std=c99 flag caused a SIG_SETMASK undeclared error. - - Undefined errors when buildbing test shared libraries. - - Patches to address these issues were received and incorporated in this version. - - (LRK - 2018/07/18, HDFFV-10475) - - - Moved the location of gcc attribute. - - The gcc attribute(no_sanitize), named as the macro HDF_NO_UBSAN, - was located after the function name. Builds with GCC 7 did not - indicate any problem, but GCC 8 issued errors. Moved the - attribute before the function name, as required. - - (ADB - 2018/05/22, HDFFV-10473) - - - Reworked java test suite into individual JUnit tests. + - h5repack was fixed to repack the reference attributes properly. - Testing the whole suite of java unit tests in a single JUnit run - made it difficult to determine actual failures when tests would fail. - Running each file set of tests individually, allows individual failures - to be diagnosed easier. A side benefit is that tests for optional components - of the library can be disabled if not configured. + The code line that checks if the update of reference inside a compound + datatype is misplaced outside the code block loop that carries out the + check. In consequence, the next attribute that is not the reference + type was repacked again as the reference type and caused the failure of + repacking. The fix is to move the corresponding code line to the correct + code block. - (ADB - 2018/05/16, HDFFV-9739) + (KY -2020/02/10, HDFFV-11014) - - Converted CMake global commands ADD_DEFINITIONS and INCLUDE_DIRECTORIES - to use target_* type commands. This change modernizes the CMake usage - in the HDF5 library. + - h5diff was updated to use the new reference APIs. - In addition, there is the intention to convert to generator expressions, - where possible. The exception is Fortran FLAGS on Windows Visual Studio. - The HDF macros TARGET_C_PROPERTIES and TARGET_FORTRAN_PROPERTIES have - been removed with this change in usage. + h5diff uses the new reference APIs to compare references. + Attribute references can also be compared. - The additional language (C++ and Fortran) checks have also been localized - to only be checked when that language is enabled. + (ADB - 2019/12/19, HDFFV-10980) - (ADB - 2018/05/08) + - h5dump and h5ls were updated to use the new reference APIs. - Performance - ------------- - - + The tools library now use the new reference APIs to inspect a + file. Also the DDL spec was updated to reflect the format + changes produced with the new APIs. The export API and support + functions in the JNI were updated to match. - Fortran - -------- - - + (ADB - 2019/12/06, HDFFV-10876 and HDFFV-10877) - Tools - ----- - - High-Level APIs: ------ - + Fortran High-Level APIs: ------ - @@ -1607,36 +755,18 @@ Bug Fixes since HDF5-1.10.2 release C++ APIs -------- - - Adding default arguments to existing functions - - Added the following items: - + Two more property list arguments are added to H5Location::createDataSet: - const DSetAccPropList& dapl = DSetAccPropList::DEFAULT - const LinkCreatPropList& lcpl = LinkCreatPropList::DEFAULT - - + One more property list argument is added to H5Location::openDataSet: - const DSetAccPropList& dapl = DSetAccPropList::DEFAULT - - (BMR - 2018/07/21, PR# 1146) - - - Improvement C++ documentation - - Replaced the table in main page of the C++ documentation from mht to htm format - for portability. - - (BMR - 2018/07/17, PR# 1141) + - Testing ------- - - The dt_arith test failed on IBM Power8 and Power9 machines when testing - conversions from or to long double types, especially when special values - such as infinity or NAN were involved. In some cases the results differed - by extremely small amounts from those on other machines, while some other - tests resulted in segmentation faults. These conversion tests with long - double types have been disabled for ppc64 machines until the problems are - better understood and can be properly addressed. + - Stopped java/test/junit.sh.in installing libs for testing under ${prefix} + + Lib files needed are now copied to a subdirectory in the java/test + directory, and on Macs the loader path for libhdf5.xxxs.so is changed + in the temporary copy of libhdf5_java.dylib. + + (LRK, 2020/07/02, HDFFV-11063) - (SRL - 2019/01/07, TRILAB-98) Supported Platforms =================== @@ -1773,9 +903,15 @@ The following platforms are not supported but have been tested for this release. #1 SMP ppc64 GNU/Linux IBM XL C/C++ for Linux, V13.1 (ostrich) and IBM XL Fortran for Linux, V15.1 - Fedora30 5.3.11-200.fc30.x86_64 - #1 SMP x86_64 GNU/Linux GNU gcc (GCC) 9.2.1 20190827 (Red Hat 9.2.1 20190827) - GNU Fortran (GCC) 9.2.1 20190827 (Red Hat 9.2.1 20190827) + Fedora32 5.8.18-200.fc32.x86_64 + #1 SMP x86_64 GNU/Linux GNU gcc (GCC) 10.2.1 20201016 (Red Hat 10.2.1-6) + GNU Fortran (GCC) 10.2.1 20201016 (Red Hat 10.2.1-6) + clang version 10.0.1 (Fedora 10.0.1-3.fc32) + (cmake and autotools) + + Ubuntu20.10 -5.8.0-29-generic-x86_64 + #31-Ubuntu SMP x86_64 GNU/Linux GNU gcc (GCC) 10.2.0-13ubuntu1 + GNU Fortran (GCC) 10.2.0-13ubuntu1 (cmake and autotools) |