HDF5 version 1.4.2 currently under development ============================================================================== INTRODUCTION This document describes the differences between HDF5-1.4.1 and HDF5-1.4.2, and contains information on the platforms tested and known problems in HDF5-1.4.2. For more details check the HISTORY.txt file in the HDF5 source. The HDF5 documentation can be found on the NCSA ftp server (ftp.ncsa.uiuc.edu) in the directory: /HDF/HDF5/docs/ For more information look at the HDF5 home page at: http://hdf.ncsa.uiuc.edu/HDF5/ If you have any questions or comments, please send them to: hdfhelp@ncsa.uiuc.edu CONTENTS - New Features - Bug Fixes since HDF5-1.4.1 - Documentation - Platforms Tested - Supported Configuration Features - Known Problems New Features ============ * File sizes greater than 2GB are now supported on Linux systems with version 2.4.x or higher kernels. * Added a global string variable H5_lib_vers_info_g which holds the HDF5 library version information. This can be used to identify an hdf5 library or hdf5 application binary. Also added a verification of the consistency between H5_lib_vers_info_g and other version information in the source code. * Parallel HDF5 now runs on the HP V2500 and HP N4000 machines. * F90 API: - Added aditional parameter "dims" to the h5dread_f/h5dwrite_f and h5aread_f/h5awrite_f subroutines. This parameter is a 1-D array of size 7 and contains the sizes of the data buffer dimensions. This change enables portability between Windows and UNIX platforms. In previous versions of the F90 APIs, the data buffer parameters of the above functions were declared as assumed-shape arrays, which were passed to the C functions by a descriptor. There is no portable means, however, of passing descriptors from F90 to C, causing portability problems between Windows and UNIX and among UNIX platforms. With this change, the data buffers are assumed- size arrays, which can be portably passed to the C functions. * F90 static library is available on Windows platforms. See INSTALL_Windows_withF90.txt for details. * F90 APIs are available on HPUX 11.00 and 10.20 and IBM SP platforms. * H5 <-> GIF convertor has been added. This is available under tools/gifconv. The convertor supports the ability to create animated gifs as well. * Verified correct operation of library on Solaris 2.8 in both 64-bit and 32-bit compilation modes. See INSTALL document for instructions on compiling the distribution with 64-bit support. * Added support for the Metrowerks Code Warrior compiler for Windows. * For H4->H5 converter utility, added a new option to choose not to convert HDF4 specified attributes(reference number, class) into HDF5 attributes. * Added support chunking and compression in SDS and image in H4->H5 converter. Currently HDF5 only supports gzip compression, so by default an HDF4 file with any other compression method will be converted into an HDF5 file in gzip compression. * correct the order or reading HDF4 image array in H4->H5 conversion. * Added new parallel hdf5 tests in t_mpi. The new test checks if the filesystem or the MPI-IO can really handle greater than 2GB files. If it fails, it prints information message only without failing the test. * Added a parallel HDF5 example examples/ph5example.c to illustrate the basic way of using parallel HDF5. * Added a new public macro, H5_VERS_INFO, which is a string holding the HDF5 library version information. This string is also compiled into all HDF5 binary code which helps to identify the version information of the binary code. One may use the Unix strings command on the binary file and looks for the pattern "HDF5 library version". * Added new checking in H5check_version() to verify the five HDF5 version information macros (H5_VERS_MAJOR, H5_VERS_MINOR, H5_VERS_RELEASE, H5_VERS_SUBRELEASE and H5_VERS_INFO) are consistent. Bug Fixes since HDF5-1.4.1 Release ================================== * Fixed bug with non-zero userblock sizes causing raw data to not write correctly. * Fixed problems with Pablo build and linking with non-standard MPI I/O. * Fixed build on Linux systems with --enable-static-exec flag. It now works correctly. * IMPORTANT: Fixed file metadata corruption bug which could cause metadata data loss in certain situations. * The allocation by alignment (H5Pset_alignment) feature code somehow got dropped in some 1.3.x version. Re-implemented it with "new and improved" algorithm. It keeps track of "wasted" file-fragment in the free-list too. * Removed limitation that the data transfer buffer size needed to be set for datasets whose dimensions were too large for the 'all' selection code to handle. Any size dimensioned datasets should be handled correctly now. * Changed behavior of H5Tget_member_type to correctly emulate HDF5 v1.2.x when --enable-hdf5v1_2 configure flag is enabled. * Added --enable-linux-lfs flag to allow more control over whether to enable or disable large file support on Linux. * Fixed various bugs releated to SDS dimensional scale conversions in H4->H5 converter. * Fixed a bug to correctly convert HDF4 objects with fill value into HDF5. * Fixed a bug of H5pubconf.h causing repeated definitions if it is included more than once. hdf5.h now includes H5public.h which includes H5pubconf.h. Applications should #include hdf5.h which handles multiple inclusion correctly. * Fixed H5FDmpio.h to be C++ friendly by making Parallel HDF5 API's to be external to C++. * Fixed a bug in H5FD_mpio_flush() that might result in negative file seek if both MPIO and Split-file drivers are used together. Documentation ============= * The H5T_conv_t and H5T_cdata_t structures are now properly defined in the H5Tregister entry in the "H5T" section of the "HDF5 Reference Manual" and described in detail in section 12, "Data Conversions," in the "Datatypes" chapter of the "HDF5 User's Guide." * The new tools h52gif and gif2h5 have been added to the "Tools" section of the Reference Manual. * A "Freespace Management" section has been added to the "Performance" chapter of the User's Guide. * Several user-reported bugs have been fixed since Release 1.4.1. * The "HDF5 Image and Palette Specification" (in the "HDF5 Application Developer's Guide") has been heavily revised. Based on extensive user feedback and input from visualization software developers, Version 1.2 of the image specification is substantially different from prior versions. Platforms Tested ================ AIX 4.3.3.0 (IBM SP powerpc) xlc 3.6.6.0 mpcc_r 3.6.6.0 xlf 07.01.0000.0002 mpxlf 07.01.0000.0002 AIX 4.3 (IBM SP RS6000) C for AIX Compiler, Version 5.0.2.0 xlf 7.1.0.2 poe 2.4.0.14 (includes mpi) Cray T3E sn6711 2.0.5.49a Cray Standard C Version 6.5.0.1 Cray SV1 10.0.0.2 Cray Standard C Version 6.5.0.1 Cray Fortran Version 3.5.0.1 FreeBSD 4.3 gcc 2.95.3 g++ 2.95.3 HP-UX B.10.20 HP C HP92453-01 A.10.32.30 HP F90 v2.3 HP-UX B.11.00 HP C HP92453-01 A.11.01.20 HP F90 v2.4 HP-UX B.11.00 SysV HP C HP92453-01 A.11.01.20 HP F90 v2.4 IRIX 6.5 MIPSpro cc 7.30 IRIX64 6.5 (64 & n32) MIPSpro cc 7.3.1.2m Linux 2.4.4 gcc 2.95.3 g++ 2.95.3 Linux 2.2.18smp gcc 2.95.2 gcc 2.95.2 with mpich 1.2.1 g++ 2.95.2 pgf90 3.2-4 OSF1 V4.0 DEC-V5.2-040 on Digital UNIX V4.0 (Rev 564) Digital Fortran 90 V4.1-270 SunOS 5.6 WorkShop Compilers 5.0 98/12/15 C 5.0 (Solaris 2.6) WorkShop Compilers 5.0 98/10/25 FORTRAN 90 2.0 Patch 107356-04 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 Workshop Compilers 5.0 98/10/25 FORTRAN 90 2.0 Patch 107356-04 SunOS 5.8/32 Sun WorkShop 6 update 1 C 5.2 2000/09/11 (Solaris 2.8) Sun WorkShop 6 update 1 Fortran 95 6.1 2000/09/11 Sun WorkShop 6 update 1 C++ 5.2 2000/09/11 SunOS 5.8/64 Sun WorkShop 6 update 1 C 5.2 2000/09/11 (Solaris 2.8) Sun WorkShop 6 update 1 Fortran 95 6.1 2000/09/11 Sun WorkShop 6 update 1 C++ 5.2 2000/09/11 TFLOPS r1.0.4 v4.0.7 i386 pgcc Rel 3.1-4i with mpich-1.2.1 with local modifications Windows 2000 (NT5.0) MSVC++ 6.0 Windows NT4.0 MSVC++ 6.0 DEC Visual Fortran 6.0 Windows NT4.0 Code Warrior 6.0 Windows 98 MSVC++ 6.0 DEC Visual Fortran 6.0 Supported Configuration Features Summary ======================================== In the tables below y = tested and supported n = not supported or not tested in this release x = not working in this release ( ) = footnote appears below second table Platform C C F90 F90 C++ Shared zlib Tools parallel parallel libraries (5) Solaris2.6 y n y n y y y y Solaris2.7 y y (1) y n y y y y Solaris2.8 64 y n n n y y y y Solaris2.8 32 y n y n y y y y IRIX6.5 y y (1) n n n y y y IRIX64_6.5 64 y y (2) y y n y y y IRIX64_6.5 32 y y (2) n n n y y y HPUX10.20 y n y n n y y y HPUX11.00 y n y n n y y y HPUX11 SysV y n y n n y y y DECOSF y n y n n y y y T3E y y y y n n y y SV1 y n y n n n y y TFLOPS y y (1) n n n n y y (4) AIX-4.3 SP2 y y y y n n y n AIX-4.3 SP3 y y y y n n y n Win2000 y n n n n y y y Win98 y n y n n y y y WinNT y n y n n y y y WinNT CW y n n n n n y y FreeBSD y n n n y y y y Linux 2.2 y y (1) y n y y y y Linux 2.4 y y (1) n n y y y y 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 Solaris2.8 64 y y n n n y Solaris2.8 32 y x n n n y IRIX6.5 y x y n n y IRIX64_6.5 64 y x n n n y IRIX64_6.5 32 y x n n n y HPUX10.20 y y n n n y HPUX11.00 y x n n n y HPUX11 SysV y x n n n y DECOSF y y n n n y T3E y y n n n y SV1 y y n n n y TFLOPS y y n n n n AIX-4.3 SP2 y y (3) n n n y AIX-4.3 SP3 y y n n n y Win2000 y y n n n n Win98 n y n n n n WinNT y y n n n n WinNT CW n n n n n n FreeBSD y y n n n y Linux 2.2 y y y n n y Linux 2.4 y y y n n y Footnotes: (1) Using mpich. (2) Using mpt and mpich. (3) When configured with static-exec enabled, tests fail in serial mode. (4) No HDF4-related tools. (5) Shared libraries are provided only for the C library. Known Problems ============== * When a dataset with the variable-legth datatype is overwritten, the library can develop memory leaks that cause the file to become unnecessarily large. This is planned to be fixed in the next release. * On the SV1, the h5ls test fails due to a difference between the SV1 printf precision and the printf precision on other platforms. * The h5dump tests may fail to match the expected output in some platforms (e.g. SP2 parallel, Windows) where the error messages directed to "stderr" do not appear in the "right order" with output from stdout. This is not an error. * The --enable-static-exec configure flag fails to compile for HP-UX 11.00 platforms. * The executables are always dynamic on IRIX64 6.5(64 and n32) and IRIX 6.5 even if they are configured with --enable-static-exec. * IRIX 6.5 fails to compile if configured with --enable-static-exec. * For 24-bit image conversion from H4->H5, the current conversion is not consistent with HDF5 image specification. * In some cases, and SDS with an UNLIMITED dimension that has not been written (current size = 0) is not converted correctly. * After "make install" or "make install-doc" one may need to reload the source from the tar file before doing another build. * The HDF5_MPI_OPT_TYPES optimization code in the parallel HDF5 will cause a hang in some cases when chunked storage is used. This is now set to be off by default. One may turn it on by setting environment variable HDF5_MPI_OPT_TYPES to a non-zero value such as 1.