mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-12-15 07:40:23 +08:00
559 lines
20 KiB
Plaintext
559 lines
20 KiB
Plaintext
HDF5 version 1.10.2-snap2 currently under development
|
|
================================================================================
|
|
|
|
|
|
INTRODUCTION
|
|
|
|
This document describes the differences between HDF5-1.10.1 and HDF5 1.10.2, and
|
|
contains information on the platforms tested and known problems in HDF5-1.10.1.
|
|
For more details check the HISTORY*.txt files in the HDF5 source.
|
|
|
|
|
|
Links to HDF5 1.10.1 source code, documentation, and additional materials can be found on The HDF5 web page at:
|
|
|
|
https://support.hdfgroup.org/HDF5/
|
|
|
|
The HDF5 1.10.1 release can be obtained from:
|
|
|
|
https://support.hdfgroup.org/HDF5/release/obtain5.html
|
|
|
|
User documentation for the snapshot can be accessed directly at this location:
|
|
|
|
https://support.hdfgroup.org/HDF5/doc/
|
|
|
|
New features in the HDF5-1.10.x release series, including brief general
|
|
descriptions of some new and modified APIs, are described in the "New Features
|
|
in HDF5 1.10" document:
|
|
|
|
https://support.hdfgroup.org/HDF5/docNewFeatures/index.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.10.1 (current
|
|
release) versus Release 1.10.0
|
|
|
|
https://support.hdfgroup.org/HDF5/doc/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 and languages
|
|
- Bug Fixes since HDF5-1.10.1
|
|
- Supported Platforms
|
|
- Tested Configuration Features Summary
|
|
- More Tested Platforms
|
|
- Known Problems
|
|
|
|
|
|
New Features
|
|
============
|
|
|
|
Configuration:
|
|
-------------
|
|
- Removed version-specific gcc/gfortran flags for version 4.0 (inclusive)
|
|
and earlier.
|
|
|
|
The config/gnu-flags file, which is sourced as a part of the configure
|
|
process, adds version-specific flags for use when building HDF5. Most of
|
|
these flags control warnings and do not affect the final product.
|
|
|
|
Flags for older versions of the compiler were consolidated into the
|
|
common flags section. Moving these flags simplifies maintenance of
|
|
the file.
|
|
|
|
The upshot of this is that building with ancient versions of gcc
|
|
(<= 4.0) will possibly no longer work without hand-hacking the file
|
|
to remove the flags not understood by that version of the compiler.
|
|
Nothing should change when building with gcc >= 4.1.
|
|
|
|
(HDFFV-9937, DER, 2017/05/31)
|
|
|
|
- -fno-omit-frame-pointer was added when building with debugging symbols
|
|
enabled.
|
|
|
|
Debugging symbols can be enabled independently of the overall build
|
|
mode in both the autotools and CMake. This allows (limited) debugging
|
|
of optimized code. Since many debuggers rely on the frame pointer,
|
|
we've disabled this optimization when debugging symbols are requested
|
|
(e.g.: via building with --enable-symbols).
|
|
|
|
(HDFFV-10226, DER, 2017/05/31)
|
|
|
|
Library:
|
|
--------
|
|
- H5FDdriver_query() API call added to the C library.
|
|
|
|
This new library call allows the user to query a virtual file driver
|
|
(VFD) for the feature flags it supports (listed in H5FDpublic.h).
|
|
This can be useful to determine if a VFD supports SWMR, for example.
|
|
|
|
Note that some VFDs have feature flags that may only be present
|
|
after a file has been created or opened (e.g.: the core VFD will
|
|
have the H5FD_FEAT_POSIX_COMPAT_HANDLE flag set if the backing
|
|
store is switched on). Since the new API call queries a generic VFD
|
|
unassociated with a file, these flags will never be returned.
|
|
|
|
(HDFFV-10215, DER, 2017/05/31)
|
|
|
|
|
|
- H5FD_FEAT_DEFAULT_VFD_COMPATIBLE VFD feature flag added to the C library.
|
|
|
|
This new feature flag indicates that the VFD is compatible with the
|
|
default VFD. VFDs that set this flag create single files that follow
|
|
the canonical HDF5 file format.
|
|
|
|
(HDFFV-10214, DER, 2017/05/31)
|
|
|
|
- The H5I_REFERENCE value in the H5I_type_t enum (defined in H5Ipublic.h)
|
|
has been marked as deprectated.
|
|
|
|
This ID type value is not used in the C library. i.e.: There are no
|
|
hid_t values that are of ID type H5I_REFERENCE.
|
|
|
|
This enum value will be removed in a future major version of the library.
|
|
The code will remain unchanged in the HDF5 1.10.x branches.
|
|
|
|
(HDFFV-10252, DER, 2017/04/05)
|
|
|
|
Parallel Library:
|
|
-----------------
|
|
-
|
|
|
|
Fortran Library:
|
|
----------------
|
|
-
|
|
|
|
C++ Library:
|
|
------------
|
|
-
|
|
|
|
Java Library:
|
|
-------------
|
|
|
|
- The H5I_REFERENCE value in the H5I_type_t enum (defined in H5Ipublic.h)
|
|
has been marked as deprectated.
|
|
|
|
JNI code which refers to this value will be removed in a future
|
|
major version of the library. The code will remain unchanged in the
|
|
1.10.x branches.
|
|
|
|
See the C library section, above, for further information.
|
|
|
|
(HDFFV-10252, DER, 2017/04/05)
|
|
|
|
|
|
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)
|
|
|
|
High-Level APIs:
|
|
---------------
|
|
-
|
|
|
|
C Packet Table API
|
|
------------------
|
|
-
|
|
|
|
Internal header file
|
|
--------------------
|
|
-
|
|
|
|
Documentation
|
|
-------------
|
|
-
|
|
|
|
Support for new platforms, languages and compilers.
|
|
=======================================
|
|
-
|
|
|
|
Bug Fixes since HDF5-1.10.0-patch1 release
|
|
==================================
|
|
|
|
Library
|
|
-------
|
|
- 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/08/30)
|
|
|
|
- Fixes for paged aggregation
|
|
|
|
Skip test in test/fheap.c when:
|
|
(1) multi/split drivers and
|
|
(2) persisting free-space or using paged aggregation strategy
|
|
|
|
(VC, 2017/07/10)
|
|
|
|
- Fixes for paged aggregation
|
|
|
|
Changes made based on RFC review comments:
|
|
(1) Add maximum value for file space page size
|
|
(2) Drop check for page end metadata threshold
|
|
(3) Remove "can_shrink" and "shrink" callbacks for small section class
|
|
|
|
(VC, 2017/06/09)
|
|
|
|
- Fix for infinite loop in H5VM_power2up().
|
|
|
|
The function H5VM_power2up() returns the next power of 2
|
|
for n. When n exceeds 2^63, it overflows and becomes 0 causing
|
|
the infinite looping.
|
|
|
|
The fix ensures that the function checks for n >= 2^63
|
|
and returns 0.
|
|
|
|
(HDFFV-10217, VC, 2017/07/10)
|
|
|
|
- Fix for H5Ocopy doesn't work with open identifiers
|
|
|
|
Changes made so that raw data for dataset objects are copied from
|
|
cached info when possible instead of flushing objects to file and
|
|
read them back in again.
|
|
|
|
(HDFFV-7853, VC, 2017/07/05)
|
|
|
|
Configuration
|
|
-------------
|
|
- Corrected FORTRAN_HAVE_C_LONG_DOUBLE processing in the autotools.
|
|
|
|
A bug in the autotools Fortran processing code always set the
|
|
FORTRAN_HAVE_C_LONG_DOUBLE variable to be true regardless of
|
|
whether or not a C long double type was present.
|
|
|
|
This would cause compilation failures on platforms where a C
|
|
long double type was not available and the Fortran wrappers
|
|
were being built.
|
|
|
|
(HDFFV-10247, DER, 2017/07/05)
|
|
|
|
- The deprecated --enable-production and --enable-debug configure options
|
|
failed to emit errors when passed an empty string
|
|
(e.g.: --enable-debug="").
|
|
|
|
Due to the way we checked for these options being set, it was possible
|
|
to avoid the error message and continue configuration if an empty string
|
|
was passed to the option.
|
|
|
|
Any use of --enable-production or --enable-debug will now halt the
|
|
configuration step and emit a helpful error message
|
|
(use --enable-build-mode=debug|production instead).
|
|
|
|
(HDFFV-10248, DER, 2017/07/05)
|
|
|
|
- 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)
|
|
|
|
Performance
|
|
-------------
|
|
-
|
|
|
|
Fortran
|
|
--------
|
|
-
|
|
|
|
Tools
|
|
-----
|
|
- 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-10276)
|
|
|
|
- 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)
|
|
|
|
- h5repack
|
|
|
|
Add tests to h5repack.sh.in to verify options added for paged
|
|
aggregation work as expected.
|
|
|
|
(VC, 2017/08/03)
|
|
|
|
- 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)
|
|
|
|
- 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)
|
|
|
|
High-Level APIs:
|
|
------
|
|
- Fixed a bug in the H5DOwrite_chunk() API call where overwriting a chunk
|
|
with no filters caused an assert to trip (with assertions enabled /
|
|
debug builds) or additional chunks to be inserted instead of overwriting
|
|
the data (without assertions enabled / production builds).
|
|
|
|
(HDFFV-10187, DER, 2017/05/11)
|
|
|
|
Fortran High-Level APIs:
|
|
------
|
|
-
|
|
|
|
Documentation
|
|
-------------
|
|
-
|
|
|
|
F90 APIs
|
|
--------
|
|
-
|
|
|
|
C++ APIs
|
|
--------
|
|
-
|
|
|
|
Testing
|
|
-------
|
|
-
|
|
|
|
Supported Platforms
|
|
===================
|
|
|
|
Linux 2.6.32-573.18.1.el6.ppc64 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
|
|
#1 SMP ppc64 GNU/Linux g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
|
|
(ostrich) GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)
|
|
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 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)
|
|
Visual Studio 2015 w/ Intel Parallel Studio 2017 (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 clang/clang++ version 5.1 from Xcode 5.1
|
|
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 clang/clang++ version 6.0 from Xcode 6.2
|
|
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 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
|
|
(osx1010dev/osx1010test) 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
|
|
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 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
|
|
CentOS 7.2 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/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 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 7.2 Linux 2.6.32 x86_64 PGI y y y n
|
|
CentOS 7.2 Linux 2.6.32 x86_64 GNU y y y y
|
|
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.8.4
|
|
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 15.0.3.187 (Build 20150407)
|
|
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)
|
|
Intel(R) C (icc) and C++ (icpc) compilers
|
|
Version 15.0.3.187 (Build 20150407)
|
|
with NAG Fortran Compiler Release 6.1(Tozai)
|
|
|
|
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
|
|
==============
|
|
|
|
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.
|
|
|