mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
54188b4abb
Bug fix Description: Fix several NULL pointer dereferences when tracking the name of open objects during some unusual sequences of mount & unmount operations. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
861 lines
45 KiB
Plaintext
861 lines
45 KiB
Plaintext
HDF5 version 1.7.48 currently under development
|
|
================================================================================
|
|
|
|
|
|
INTRODUCTION
|
|
|
|
This document describes the differences between HDF5-1.6.* and
|
|
HDF5-1.7.*, and contains information on the platforms tested and
|
|
known problems in HDF5-1.7.*. 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
|
|
- Support for new platforms and languages
|
|
- Bug Fixes since HDF5-1.6.0
|
|
- Platforms Tested
|
|
- Known Problems
|
|
|
|
|
|
New Features
|
|
============
|
|
|
|
Configuration:
|
|
--------------
|
|
- 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
|
|
2. Decrease size of CVS tree by adding all.zip
|
|
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.
|
|
- Added some initial support for making purify (or similar memory
|
|
checking products) happier by initializing buffers to zero and
|
|
disabling the internal free list code. To take advantage of this,
|
|
define 'H5_USING_PURIFY' in your CFLAGS 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
|
|
- Prefix default is changed from /usr/local to `pwd`/hdf5.
|
|
AKC - 2003/07/09
|
|
|
|
Library:
|
|
--------
|
|
- 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.
|
|
DEC 5.x is not supporting complicated derived datatype.
|
|
For AIX 5.1,
|
|
if your poe version number is 3.2.0.19 or lower,
|
|
please edit powerpc-ibm-aix5.x under 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
|
|
with IRIX 6.5,
|
|
if your C compiler version is 7.4 or higher,
|
|
please edit irix6.x under hdf5/config,
|
|
Find the line with
|
|
<< hdf5_mpi_complex_derived_datatype_works>>
|
|
and COMMENT out this line before the configure.
|
|
check cc version with the following command:
|
|
cc -version
|
|
KY - 2005/04/15
|
|
- 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 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
|
|
- 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
|
|
- 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
|
|
- 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.
|
|
No API change is involved. SLU - 2004/10/1
|
|
- Put back 6 old error API functions to be backward compatible with
|
|
version 1.6. They are H5Epush, H5Eprint, H5Ewalk, H5Eclear,
|
|
H5Eset_auto, H5Eget_auto. Their new equivalent functions are
|
|
called H5Epush_stack, H5Eprint_stack, H5Ewalk_stack,
|
|
H5Eclear_stack, H5Eset_auto_stack, H5Eget_auto_stack. SLU -
|
|
2004/9/2
|
|
- 4 new API functions, H5Tencode, H5Tdecode, H5Sencode, H5Sdecode were
|
|
added to the library. Given object ID, these functions encode and
|
|
decode HDF5 objects(data type and space) information into and from
|
|
binary buffer. SLU - 2004/07/21
|
|
- 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.
|
|
EIP - 2004/07/21
|
|
- Added support for SZIP without encoder. Added H5Zget_filter_info
|
|
and changed H5Pget_filter and H5Pget_filter_by_id to support this
|
|
change. JL/NF - 2004/06/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
|
|
- 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
|
|
- 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 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
|
|
element) was added. SLU - 2004/3/24
|
|
- Data type conversion(software) from integer to float was added.
|
|
SLU - 2004/3/13
|
|
- Data type conversion(software) from float to integer was added.
|
|
Conversion from integer to float will be added later.
|
|
SLU -2004/2/4
|
|
- Added new H5Premove_filter routine to remove I/O pipeline filters
|
|
from dataset creation property lists. PVN - 2004/01/26
|
|
- Added new 'compare' callback parameter to H5Pregister & H5Pinsert
|
|
routines. QAK - 2004/01/07
|
|
- Data type conversion(hardware) between integers and floats was added.
|
|
SLU 2003/11/21
|
|
- New function H5Iget_file_id() was added. It returns file ID given
|
|
an object(dataset, group, or attribute) ID. SLU 2003/10/29
|
|
- Added new fields to the H5G_stat_t for more information about an
|
|
object's object header. QAK 2003/10/06
|
|
- Added new H5Fget_freespace() routine to query the free space in a
|
|
given file. QAK 2003/10/06
|
|
- Added backward compatability with v1.6 for new Error API. SLU -
|
|
2003/09/24
|
|
- Changed 'objno' field in H5G_stat_t structure from 'unsigned long[2]'
|
|
to 'haddr_t'. QAK - 2003/08/08
|
|
- Changed 'fileno' field in H5G_stat_t structure from 'unsigned long[2]'
|
|
to 'unsigned long'. QAK - 2003/08/08
|
|
- Changed 'hobj_ref_t' type from structure with array field to 'haddr_t'.
|
|
QAK - 2003/08/08
|
|
- Object references (hobj_ref_t) can now be compared with the 'objno'
|
|
field in the H5G_stat_t struct for testing if two objects are the
|
|
same within a file. QAK - 2003/08/08
|
|
- Switched over to new error API. SLU - 2003/07/25
|
|
|
|
Parallel Library:
|
|
-----------------
|
|
- 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.
|
|
AKC - 2003/11/13
|
|
- Added parallel test, test_mpio_1wMr, which tests if the
|
|
underlaying parallel I/O system is conforming to the POSIX
|
|
write/read requirement. AKC - 2003/11/12
|
|
|
|
Fortran Library:
|
|
----------------
|
|
- added missing h5tget_member_class_f function
|
|
EIP 2005/04/06
|
|
- 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).
|
|
|
|
Tools:
|
|
------
|
|
- new tool, h5jam. See reference manual. 2004/10/08
|
|
- h5repack.sh did not report errors encountered during tests. It does
|
|
now. AKC - 2004/04/02
|
|
- Added the MPI-I/O and MPI-POSIX drivers to the list of VFL drivers
|
|
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
|
|
- Install the "h5cc" and "h5fc" tools as "h5pcc" and "h5pfc"
|
|
respectively if library is built in parallel mode.
|
|
WCW - 2003/11/04
|
|
- Added metadata benchmark (perform/perf_meta). SLU - 2003/10/03
|
|
- Changed output of "OID"s from h5dump from "<number>-<number>" to
|
|
"<number". This affects both the "regular" and XML output.
|
|
QAK - 2003/08/08
|
|
- Changed output of file IDs and "OID"s from h5ls from
|
|
"<number>:<number>:<number>:<number>" to "<number>:<number>"
|
|
QAK - 2003/08/08
|
|
|
|
High-Level APIs:
|
|
------
|
|
- Added Packet Table API for creating tables with less overhead than
|
|
H5TB API. Added C++ wrapper for Packet Tables. See documentation.
|
|
JML - 2004/03/28
|
|
|
|
|
|
Support for new platforms, languages and compilers.
|
|
=======================================
|
|
- PGI Fortran compiler is supported on Linux64 systems (x86_64)
|
|
EIP - 2004/08/19
|
|
- Absoft compiler f95 v9.0 supported on Linux 2.4
|
|
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.
|
|
- HDF5 Fortran APIs are supported on MAC OSX with Absoft F95 compiler
|
|
version 8.2; set F9X environment varibale to f95, for example
|
|
setenv F9X f95
|
|
Use --disable-shared --enable-static configure flags when Absoft
|
|
compiler is used.
|
|
EIP - 2004/07/27
|
|
- HDF5 Fortran APIs are supported on MAC OSX with IBM XL Fortran
|
|
Compiler version 8.1 Use "--disable-shared --enable-static"
|
|
configure flags along with the "--enable-fortran" flag to build
|
|
Fortran library. EIP - 2004/01/07
|
|
|
|
Bug Fixes since HDF5-1.6.0 release
|
|
==================================
|
|
|
|
Library
|
|
-------
|
|
- Fixed various errors in maintaining names for open objects in the
|
|
face of unusual mount & unmount operations. QAK - 2005/06/08
|
|
- "SEMI" and "STRONG" file close degree settings now apply only to the
|
|
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
|
|
- Fixed error in opening object in group that was opened in mounted
|
|
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
|
|
- 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
|
|
- The byte order of 1-byte integer types was fixed as little endian
|
|
even on a big-endian machine. This has been corrected. SLU -
|
|
2005/02/07
|
|
- Fix segmentation fault when calling H5Fflush with an attribute that
|
|
hasn't had a value written to it open. QAK - 2004/10/18
|
|
- Back up supporting 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
|
|
- 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
|
|
- 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
|
|
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
|
|
- 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 equivalment 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
|
|
- 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
|
|
- 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
|
|
- 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
|
|
- 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
|
|
- Fixed bug in H5Sset_extent_simple where setting maximum size to
|
|
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
|
|
- Calling H5Gcreate() on "/" or "." throws an error instead of
|
|
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
|
|
- Fixed bug where "resurrecting" a dataset was failing.
|
|
QAK - 2004/07/14
|
|
- Fixed bug where incorrect data could be read from a chunked dataset
|
|
after it was extended. QAK - 2004/07/12
|
|
- Fixed failure to read data back from file of compound type with
|
|
variable-length string as field. SLU - 2004/06/10
|
|
- 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
|
|
- Opaque datatype with no tag failed for some operations. Fixed.
|
|
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
|
|
- Fixed problem with fletcher32 filter when converting data of different
|
|
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
|
|
B-tree (used with groups and chunked datasets) to become corrupt
|
|
with the right sequence of deleted objects. QAK - 2004/01/19
|
|
- Fixed small internal memory leaks of fill-value information.
|
|
QAK - 2004/01/13
|
|
- Fixed bug that caused variable-length datatypes (strings or sequences)
|
|
used for datasets in files with objects that were unlinked to
|
|
fail to be read/written to a file. QAK - 2004/01/13
|
|
- Detect situation where szip 'pixels per block' is larger than the
|
|
fastest changing dimension of a dataset's chunk size and disallow
|
|
this (due to limits in szip library). QAK - 2003/12/31
|
|
- Fixed bug with flattened hyperslab selections that would generate
|
|
incorrect hyperslab information with certain high-dimensionality
|
|
combinations of start/stride/count/block information.
|
|
QAK - 2003/12/31
|
|
- Fixed bug with variable-length datatypes used in compound datatypes.
|
|
SLU - 2003/12/29
|
|
- Fixed bug in parallel I/O routines that would cause reads from
|
|
"short datasets" (datasets which were only partially written out)
|
|
to return invalid data. QAK & AKC - 2003/12/19
|
|
- Fixed bug where scalar dataspaces for attributes were reporting as
|
|
simple dataspaces. QAK - 2003/12/13
|
|
- Fixed problem with selection offsets of hyperslab selections in
|
|
chunked datasets causing the library to go into an infinite loop.
|
|
QAK - 2003/12/13
|
|
- Fixed H5Giterate to avoid re-using index parameter after iteration
|
|
callback has been called (allows iteration callback to modify the
|
|
index parameter itself). QAK - 2003/12/06
|
|
- Fixed various floating-point conversion problems, including a
|
|
change which could corrupt data when converting from double->float.
|
|
QAK - 2003/11/24
|
|
- Changed "single process" metadata writing in library to collective
|
|
I/O by all processes, in order to guarantee correct data being
|
|
written with MPI-I/O. QAK - 2003/11/20
|
|
- Fixed problems with fill values and variable-length types and also
|
|
I/O on VL values that were set to NULL. QAK - 2003/11/08
|
|
- Fixed problems with MPI datatypes that caused ASCI Q machine to
|
|
hang. QAK - 2003/10/28
|
|
- Removed HDF5_MPI_PREFER_DERIVED_TYPES environment variable support,
|
|
since it had no benefit. QAK - 2003/10/28
|
|
- Single hyperslab selections (which were set with only one call to
|
|
H5Sselect_hyperslab) that had dimensions that could be "flattened"
|
|
but were interspersed with dimensions that could not be flattened
|
|
were not correctly handled, causing core dumps. QAK - 2003/10/25
|
|
- Fixed incorrect datatype of the third parameter to the Fortran90
|
|
h5pset(get)_cache_f subroutine (INTEGER to INTEGER(SIZE_T))
|
|
EIP - 2003/10/13
|
|
- Fixed problems with accessing variable-length data datatypes on
|
|
Crays. QAK - 2003/10/10
|
|
- Fixed potential file corruption bug when too many object header
|
|
messages (probably attributes, from a user perspective) were
|
|
inserted into an object header and certain other conditions were
|
|
met. QAK - 2003/10/08
|
|
- Changed implementation of internal ID searching algorithm to avoid
|
|
O(n) behavior for many common cases. QAK - 2003/10/06
|
|
- Allow partial parallel writing to compact datasets. QAK - 2003/10/06
|
|
- Correctly create reference to shared datatype in attribute, instead
|
|
of making a copy of the shared datatype in the attribute.
|
|
QAK - 2003/10/01
|
|
- Revert changes which caused files >2GB to fail when created with
|
|
MPI-I/O file driver on certain platforms. QAK - 2003/09/16
|
|
- Allow compound datatypes to grow in size. SLU - 2003/09/10
|
|
- Detect if a type is already packed before attempting to pack it
|
|
again or check if it is locked. SLU - 2003/09/10
|
|
- Corrected bug when opening a file twice with read-only permission
|
|
for one open and then closing the read-only access file ID would
|
|
generate an error. QAK - 2003/09/10
|
|
- Corrected bug in repeated calls to H5Pget_access_plist() which would
|
|
incorrectly manage reference counts of internal information and
|
|
eventually blow up. QAK - 2003/09/02
|
|
- Return rank of the array datatype on successful call to
|
|
H5Tget_array_dims(). QAK - 2003/08/30
|
|
- Corrected bug in H5Tdetect_class which was not correctly detecting
|
|
datatype classes of fields in nested compound datatypes in some
|
|
circumstances. QAK - 2003/08/30
|
|
- Corrected bug in sieve buffer code which could cause loss of data
|
|
when a small dataset was created and deleted in quick succession.
|
|
QAK - 2003/08/27
|
|
- Corrected bug in H5Gget_objname_by_idx which was not allowing NULL
|
|
for the name when just querying for the object name's length.
|
|
QAK - 2003/08/25
|
|
- Corrected bug in variable-length string handling which could
|
|
generate a core dump on writing variable-length strings as part
|
|
of a compound datatype on certain architectures. QAK - 2003/08/25
|
|
- Corrected bug in H5Tget_native_type which would incorrectly compute
|
|
the size of certain compound datatypes and also incorrectly
|
|
compute the offset of the last field for those compound datatypes.
|
|
QAK - 2003/08/25
|
|
- Corrected bug in H5Tget_native_type which would drop string datatype
|
|
metadata (padding, etc.) QAK - 2003/08/25
|
|
- Corrected bugs in H5Gget_num_objs, H5Gget_objname_by_idx and
|
|
H5Gget_objtype_by_idx to allow them to accept location IDs, not just
|
|
group IDs. QAK - 2003/08/21
|
|
- Corrected bug when using scalar dataspace for memory selection and
|
|
operating on chunked dataset. QAK - 2003/08/18
|
|
- Corrected bugs with multiple '/' characters in names for H5Glink
|
|
and H5Gunlink. QAK - 2003/08/16
|
|
- Corrected bug with user blocks that didn't allow a user block to
|
|
be inserted in front of a file after the file was created.
|
|
QAK - 2003/08/13
|
|
- Corrected errors with using point selections to access data in
|
|
chunked datasets. QAK - 2003/07/23
|
|
- Corrected error with variable-length datatypes and chunked datasets
|
|
caused H5Dwrite to fail sometimes. QAK - 2003/07/19
|
|
- Modified library and file format to support storing indexed storage
|
|
(chunked dataset) B-tree's with non-default internal 'K' values.
|
|
QAK - 2003/07/15
|
|
- Returned H5T_BKG_TEMP support to library after it was accidentally
|
|
removed. QAK - 2003/07/14
|
|
|
|
Configuration
|
|
-------------
|
|
- 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
|
|
- Fixed the error that cause "make install" to fail because of the
|
|
macro definition syntax of "prefix?=..." AKC - 2003/07/22
|
|
|
|
Performance
|
|
-------------
|
|
- Optimized I/O for enumerated datatypes that are a superset of source
|
|
enumerated datatype. QAK - 2005/03/19
|
|
- More optimizations to inner loops of datatype conversions for
|
|
integers and floats which give a 10-50% speedup. QAK - 2003/11/07
|
|
- Hoisted invariant 'if/else's out of inner datatype conversion loop for
|
|
integer and floating-point values, giving about a 20% speedup.
|
|
QAK - 2003/10/20
|
|
|
|
Tools
|
|
-----
|
|
- 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
|
|
- 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 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
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
F90 APIs
|
|
--------
|
|
- h5pget_driver_f was returning information that could not be
|
|
interpreted by fortran application program; fixed. EIP - 2005/04/10
|
|
|
|
|
|
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
|
|
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
|
|
mpt 2.2.0.0
|
|
Cray SV1 sn9617 10.0.1.2 Cray Standard C Version 6.6.0.2
|
|
mpt 2.2.0.0
|
|
Cray Fortran Version 3.6.0.0.2
|
|
Cray T90IEEE 10.0.1.01y Cray Standard C Version 6.4.0.2.3
|
|
Cray Fortran Version 3.4.0.3
|
|
mpt 2.1.0.0
|
|
FreeBSD 4.9 gcc 2.95.4
|
|
g++ 2.95.4
|
|
HP-UX B.11.00 HP C HP92453-01 A.11.01.20
|
|
HP F90 v2.4
|
|
HP ANSI C++ B3910B A.03.13
|
|
MPIch 1.2.4
|
|
IRIX 6.5 MIPSpro cc 7.30
|
|
IRIX64 6.5 (64 & n32) MIPSpro cc 7.3.1.3m
|
|
F90 MIPSpro 7.3.1.3m (64 only)
|
|
MPIch 1.2.4
|
|
Linux 2.4.18 gcc 2.96, 3.2.2, 3.2.3
|
|
g++ 3.2.2, 3.2.3
|
|
Intel(R) C++ Version 7.1
|
|
Intel(R) Fortran Compiler Version 7.1
|
|
PGI compilers (pgcc, pgf90, pgCC) version 5.0-2
|
|
MPIch 1.2.4
|
|
Absoft Fortran v9.0
|
|
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
|
|
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
|
|
WorkShop Compilers 5.0 98/10/25
|
|
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
|
|
Sun WorkShop 6 update 2 C++ 5.3
|
|
SunOS 5.9 32,64 Sun C 5.6 2004/07/15
|
|
(Solaris 2.9) Sun Fortran 95 8.0 2004/07/15
|
|
Sun C++ 5.6 2004/07/15
|
|
TFLOPS r1.0.4 v4.3.3 i386 pgcc Rel 3.1-4i with mpich-1.2.4 with
|
|
local modifications
|
|
IA-32 Linux 2.4.9 gcc 2.96
|
|
Intel(R) C++ Version 7.0
|
|
Intel(R) Fortran Compiler Version 7.0
|
|
|
|
IA-64 Linux 2.4.16 ia64 gcc version 2.96 20000731
|
|
Intel(R) C++ Version 7.0
|
|
Intel(R) Fortran Compiler Version 7.0
|
|
Windows XP MSVC++ 6.0
|
|
MSVC++ .NET 2003,
|
|
Intel C++ Version 8.1
|
|
DEC Visual Fortran 6.6c
|
|
MAC OS X Darwin 6.5
|
|
gcc and g++ Apple Computer, Inc. GCC
|
|
version 1161, based on gcc version 3.1
|
|
IBM XL Fortran compiler version 8.1
|
|
Absoft Fortran v8.2
|
|
|
|
|
|
|
|
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
|
|
dna = does not apply
|
|
( ) = footnote appears below second table
|
|
|
|
Platform C C F90 F90 C++ Shared zlib
|
|
parallel parallel libraries (4)
|
|
Solaris2.7 64-bit y y (1) y y (1) y y y
|
|
Solaris2.7 32-bit y y (1) y y (1) y y y
|
|
Solaris2.8 64-bit y y (1) y y (1) y y y
|
|
Solaris2.8 32-bit y y y y (1) y y y
|
|
IRIX6.5 y y (1) n n n y y
|
|
IRIX64_6.5 64-bit y y (2) y y y y y
|
|
IRIX64_6.5 32-bit y y (2) n n n y y
|
|
HPUX11.00 y y (1) y y y y y
|
|
OSF1 v5.1 y y y y y y y
|
|
T3E y y (5) y y (5) n n y
|
|
SV1 y y (5) y y (5) n n y
|
|
T90 IEEE y y (5) y y (5) n n y
|
|
TFLOPS n y (1) n n n n y
|
|
AIX-5.1 32-bit y y y y y n y
|
|
AIX-5.1 64-bit y y y y y n y
|
|
WinXP (6) y n n n y y y
|
|
WinXP Intel y n n n y y y
|
|
WinNT CW y n n n n n y
|
|
Mac OS X 10.2 y n n n y y y
|
|
FreeBSD y y (1) n n y y y
|
|
Linux 2.4 gcc (3) y y (1) y (PGI) n y y y
|
|
Linux 2.4 Intel (3) y n y n y n y
|
|
Linux 2.4 PGI (3) y n y n y n y
|
|
Linux 2.4 IA32 Intel y n y n y n y
|
|
Linux 2.4 IA64 Intel y n y n y n y
|
|
|
|
|
|
ASCII Table 2 -- for RELEASE.txt
|
|
|
|
Platform static- Thread- SZIP GASS STREAM- High-level H4/H5
|
|
exec safe VFD APIs tools (7)
|
|
Solaris2.7 64-bit x y y n y y n
|
|
Solaris2.7 32-bit x y y n y y y
|
|
Solaris2.8 64-bit x y y n y y n
|
|
Solaris2.8 32-bit x y y n y y y
|
|
IRIX6.5 x n y n y y y
|
|
IRIX64_6.5 64-bit x y y y y y y
|
|
IRIX64_6.5 32-bit x y y y y y y
|
|
HPUX11.00 x n y n y y y
|
|
OSF1 v5.1 y n y n y y y
|
|
T3E y n n n y y y
|
|
SV1 y n n n y y y
|
|
T90 IEEE y n n n y y n
|
|
TFLOPS y n n n n n n
|
|
AIX-5.1 32-bit y n y n y y y
|
|
AIX-5.1 64-bit y n y n y y y
|
|
WinXP (6) y n y n n y y
|
|
WinXP Intel y n y n n y y
|
|
WinNT CW y n y n n y y
|
|
Mac OS X 10.2 y n y n y y n
|
|
FreeBSD y y y n y y y
|
|
Linux 2.4 gcc (3) y y y n y y y
|
|
Linux 2.4 Intel (3) y n y n y n n
|
|
Linux 2.4 PGI (3) y n y n y n n
|
|
Linux 2.4 IA32 Intel y n y n y y y
|
|
Linux 2.4 IA64 Intel y n y n y y y
|
|
|
|
Notes: (1) Using mpich 1.2.4.
|
|
(2) Using mpt and mpich 1.2.4.
|
|
(3) Linux 2.4 with GNU, Intel, and PGI compilers, respectively.
|
|
(4) Shared libraries are provided only for the C library, except
|
|
on Windows where they are provided for C and C++.
|
|
(5) Using mpt.
|
|
(6) Binaries only; source code for this platform is not being
|
|
released at this time.
|
|
(7) Includes the H4toH5 Library and the h4toh5 and h5toh4
|
|
utilities.
|
|
Compiler versions for each platform are listed in the preceding
|
|
"Platforms Tested" table.
|
|
|
|
|
|
|
|
Known Problems
|
|
==============
|
|
* On windows XP, Fortran DLLs are not working with DEC Fortran 6.6c and Intel
|
|
8.1.
|
|
* On IBM AIX systems, parallel HDF5 mode will fail some tests with error
|
|
messages like "INFO: 0031-XXX ...". This is from the command poe.
|
|
Set the environment variable MP_INFOLEVEL to 0 to minimize the messages
|
|
and run the tests again.
|
|
The tests may fail with messages like "The socket name is already
|
|
in use". HDF5 does not use sockets (except for stream-VFD). This is
|
|
due to problems of the poe command trying to set up the debug socket.
|
|
Check if there are many old /tmp/s.pedb.* staying around. These are
|
|
sockets used by the poe command and left behind due to failed commands.
|
|
Ask your system administrator to clean them out. Lastly, request IBM
|
|
to provide a mean to run poe without the debug socket.
|
|
|
|
* The C++ library's tests fails when compiling with PGI C++ compiler. The
|
|
workaround until the problem is correctly handled is to use the
|
|
flag "--instantiate=local" prior to the configure and build steps, as:
|
|
setenv CXX "pgCC --instantiate=local" for pgCC 5.02 and higher
|
|
setenv CXX "pgCC -tlocal" for others
|
|
|
|
* The h5dump tests may fail to match the expected output on some platforms
|
|
(e.g. parallel jobs, 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 stream-vfd test uses ip port 10007 for testing. If another
|
|
application is already using that port address, the test will hang
|
|
indefinitely and has to be terminated by the kill command. To try the
|
|
test again, change the port address in test/stream_test.c to one not
|
|
being used in the host.
|
|
|
|
* The --enable-static-exec configure flag fails to compile for Solaris
|
|
platforms. This is due to the fact that not all of the system
|
|
libraries on Solaris are available in a static format.
|
|
|
|
The --enable-static-exec configure flag also fails to correctly compile
|
|
on IBM SP2 platform for the serial mode. The parallel mode works fine
|
|
with this option.
|
|
|
|
It is suggested that you don't use this option on these platforms
|
|
during configuration.
|
|
|
|
* With the gcc 2.95.2 compiler, HDF 5 uses the `-ansi' flag during
|
|
compilation. The ANSI version of the compiler complains about not being
|
|
able to handle the `long long' datatype with the warning:
|
|
|
|
warning: ANSI C does not support `long long'
|
|
|
|
This warning is innocuous and can be safely ignored.
|
|
|
|
|
|
* The Stream VFD was not tested yet under Windows. It is not supported
|
|
in the TFLOPS machine.
|
|
|
|
|
|
* The ./dsets tests failed in the TFLOPS machine if the test program,
|
|
dsets.c, is compiled with the -O option. The hdf5 library still works
|
|
correctly with the -O option. The test program works fine if it is
|
|
compiled with -O1 or -O0. Only -O (same as -O2) causes the test
|
|
program to fail.
|
|
|
|
* Certain platforms give false negatives when testing h5ls:
|
|
- Cray J90 and Cray T90IEEE give errors during testing when displaying
|
|
some floating-point values. These are benign differences due to
|
|
the different precision in the values displayed and h5ls appears to
|
|
be dumping floating-point numbers correctly.
|
|
|
|
* Before building HDF5 F90 Library from source on Crays
|
|
replace H5Aff.f90, H5Dff.f90 and H5Pff.f90 files in the fortran/src
|
|
subdirectory in the top level directory with the Cray-specific files
|
|
from the site:
|
|
ftp://hdf.ncsa.uiuc.edu/pub/outgoing/hdf5/hdf5-1.6.2/F90_source_for_Crays
|
|
|
|
* On some platforms that use Intel and Absoft compilers to build HDF5 fortran library,
|
|
compilation may fail for fortranlib_test.f90, fflush1.f90 and fflush2.f90
|
|
complaining about exit subroutine. Comment out the line
|
|
IF (total_error .ne. 0) CALL exit (total_error)
|
|
|
|
* On IA32 and IA64 systems, if you use a compiler other than GCC (such as
|
|
Intel's ecc or icc compilers), you will need to modify the generated
|
|
"libtool" program after configuration is finished. On or around line 104 of
|
|
the libtool file, there are lines which look like:
|
|
|
|
# How to pass a linker flag through the compiler.
|
|
wl=""
|
|
|
|
change these lines to this:
|
|
|
|
# How to pass a linker flag through the compiler.
|
|
wl="-Wl,"
|
|
|
|
UPDATE: This is now done automatically by the configure script. However, if
|
|
you still experience a problem, you may want to check this line in the
|
|
libtool file and make sure that it has the correct value.
|
|
|
|
* Information about building with PGI and Intel compilers is available in
|
|
INSTALL file sections 5.7 and 5.8
|
|
|
|
* On at least one system, (SDSC DataStar), the scheduler (in this case
|
|
LoadLeveler) sends job status updates to standard error when you run
|
|
any executable that was compiled with the parallel compilers.
|
|
|
|
This causes problems when running "make check" on parallel builds, as
|
|
many of the tool tests function by saving the output from test runs,
|
|
and comparing it to an exemplar.
|
|
|
|
The best solution is to reconfigure the target system so it no longer
|
|
inserts the extra text. However, this may not be practical.
|
|
|
|
In such cases, one solution is to "setenv HDF5_Make_Ignore yes" prior to
|
|
the configure and build. This will cause "make check" to continue after
|
|
detecting errors in the tool tests. However, in the case of SDSC DataStar,
|
|
it also leaves you with some 150 "failed" tests to examine by hand.
|
|
|
|
A second solution is to write a script to run serial tests and filter
|
|
out the text added by the scheduler. A sample script used on SDSC
|
|
DataStar is given below, but you will probably have to customize it
|
|
for your installation.
|
|
|
|
Observe that the basic idea is to insert the script as the first item
|
|
on the command line which executes the the test. The script then
|
|
executes the test and filters out the offending text before passing
|
|
it on.
|
|
|
|
#!/bin/csh
|
|
|
|
set STDOUT_FILE=~/bin/serial_filter.stdout
|
|
set STDERR_FILE=~/bin/serial_filter.stderr
|
|
|
|
rm -f $STDOUT_FILE $STDERR_FILE
|
|
|
|
($* > $STDOUT_FILE) >& $STDERR_FILE
|
|
|
|
set RETURN_VALUE=$status
|
|
|
|
cat $STDOUT_FILE
|
|
|
|
tail +3 $STDERR_FILE
|
|
|
|
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
|
|
script prior to running configure for parallel builds. Remember to
|
|
"unsetenv RUNSERIAL" before running configure for a serial build.
|
|
|
|
Note that the RUNSERIAL environment variable exists so that we can
|
|
can prefix serial runs as necessary on the target system. On DataStar,
|
|
no prefix is necessary. However on an MPICH system, the prefix might
|
|
have to be set to something like "/usr/local/mpi/bin/mpirun -np 1" to
|
|
get the serial tests to run at all.
|
|
|
|
In such cases, you will have to include the regular prefix in your
|
|
filter script.
|