Configuration
-------------
- Added a configuration option to change the default plugin path.
The configure option is --with-default-plugindir=location.
The cmake option is -DH5_DEFAULT_PLUGINDIR:PATH=location.
HDFFV-8513. (ADB 2013/09/04)
- Renamed FFLAGS to FCFLAGS in configure. (ADB 2013/08/13)
- CMake can now package a compressed examples file, the default for
Windows binaries from HDF Group. (ADB - 2013/07/22)
Tools
-----
- h5repack: Added the ability to use plugin filters to read and write
files. The option uses the filter number. HDFFV-8345
(ADB - 2013/09/04).
- h5dump: Added the option -N --any_path, which searches the file for
paths that match the search path. HDFFV-7989 (ADB - 2013/08/12).
- h5dump: Added the optional arg 0 to -A, which excludes attributes
from display. HDFFV-8134 (ADB - 2013/08/01).
C++ API
-------
- Added tutorial examples to C++/examples. They can be installed by
"make install-examples" and, in the installed directory, they can be
executed by running the script file run-c++-ex.sh. (BMR - 2013/09/28)
- A new class, H5::H5Location, is added to represent the location concept
in the C library. It is a base class to H5::H5File and H5::H5Ojbect,
whose member functions are moved into H5::H5Location. H5::H5File can
now inherent those functions. As a result, an H5::H5File object can have
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)
- 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)
- Added a number of overloaded functions for convenience. (BMR - 2013/09/27)
Configuration
- Libtool version number is changed to 8.0.0 because there are API
changes. See below for details.
- Mac OS X 10.7 (Lion) and 10.8 (Mountain Lion) uses clang/clang++ as the
default C and C++ compilers.
- CMake minimum is now 2.8.10.
- A new tool, cmakehdf5, which is a build command script similar to
buildhdf5 is added and is available in the bin directory.
Library
- The library can load filter libraries dynamically during runtime. Users
can set the search path through environment variable HDF5_PLUGIN_PATH
and call H5Pset_filter to enable a dynamic filter.
- Added new API functions H5Dscatter and H5Dgather to scatter data to and
and gather data from a selection within a memory buffer.
- The library now supports the data conversion from enumeration to numeric
(integer and floating-point number) datatypes. See Issue HDFFV-8221.
Tools
- h5dump: added new option -O or -ddl to output the ddl text to a file. This
is a complement to the -o or --output option, which redirects the data to
a file.
Library
-------
- The library now behaves correctly when performing large I/O operations on
Mac OS-X. Previously, single I/O operations > 2 GB would fail since the
Darwin read/write calls cannot handle the number of bytes that their
parameter types imply.
Fixes HDFFV-7975 and HDFFV-8240 (DER - 07 JAN 2013)
- Fixed a bug in the core VFD that cause failures when opening files > 2 GB.
Fixes HDFFV-8124 and HDFFV-8158 (DER - 07 JAN 2013)
Tools
-----
- The following h5stat test case failed in BG/P machines (and potentially
other machines that display extra output if an MPI task returns with a
non-zero code.)
Testing h5stat notexist.h5
The test script was fixed to ignore the extra output.
HDFFV-8233 (AKC - 2012/12/17)
- h5diff: Fixed slowness when comparing HDF5 files with many attributes.
Much slower performance was identified with later release version
(from 1.8.7 to 1.8.10) compared to 1.8.6. The issue was introduced
from fixing an attribute related bug for 1.8.7 release in the past.
HDFFV-8145 (JKM 2012/12/13)
* The following new C function has been added:
H5Pget_mpio_no_collective_cause
* The following new Fortran subroutine has been added:
h5pget_mpio_actual_io_mode_f
* The syntax of the following high-level C function has changed:
H5TBAget_fill
This function’s return type has been changed to h5tri_t. A return value of 1 indicates that a fill value is present, 0 indicates that no fill value is present, and a negative value indicates an error. (The former return type was herr_t.)
Note that H5TBAget_fill and a companion function H5TBAget_title, both in the HDF5 Table (H5TB) high-level API, are undocumented. These functions will be added to the HDF5 Reference Manual shortly after HDF5 Release 1.8.10.
Changed Command-line Tool
* h5import has been updated to accept an input file created by h5dump.
This doesn't pass self-tests, but it isn't regression,
previous package didn't pass them as well.
(While here, make both packages share the same distinfo.)
Changes in HDF5 1.8.9
HDF5 1.8.9 is a minor release, but contains several important
new features and bug fixes. Changes in this release include the
following:
* Committed datatypes can now be merged when copying objects,
using the new flag H5O_COPY_MERGE_COMMITTED_DTYPE_FLAG.
Several new API routines have been included in support of
this feature.
* A file in memory can now be accessed in the same way as a
file on disk. New APIs were added to support this feature.
* Many changes to the tools have been made, including the following:
+ The h5repack performance has been improved dramatically
for large chunked datasets.
+ The -S (or --summary) option was added to h5stat to
display a summary of the file space usage for a file.
+ A wildcard can now be used with h5dump to specify multiple files.
* H5LTpath_valid was added to determine if a path is correct
and a link resolves to a valid object.
* The Fortran counterpart to H5Ocopy, h5ocopy_f, was added.
This release contains many other changes and bug fixes not listed here.
Please be sure to read the Release Notes for a comprehensive
list of new features and bug fixes.
Changes in HDF5 1.8.8
HDF5 1.8.8 is a minor release, but contains a few important new
features and bug fixes. Changes in this release include the
following:
* Changes to the Fortran interface:
+ Fortran wrappers for the Dimension Scales APIs were added.
For the new subroutine signatures, see:
http://www.hdfgroup.org/HDF5/doc/HL/RM_H5DS.html
+ The Fortran interface now uses the Fortran 2003 standard,
enabling a wider set of Fortran and HDF5 datatypes to be
supported, including:
o Any kind of INTEGER or REAL
o Fortran derived types
o Fortran and HDF5 enumeration
o HDF5 variable-length datatypes
o HDF5 compound datatypes of any complexity
It also contains new subroutines corresponding to those
C APIs which have callback functions as parameters.
For a general overview and information on how to enable
these new Fortran features, please see the following paper:
http://www.hdfgroup.org/HDF5/doc/fortran/NewFeatures_F2003.pdf
HDF5 examples that use Fortran 2003 (with the suffix "F03") can be found here:
http://www.hdfgroup.org/ftp/HDF5/examples/examples-by-api/api18-fortran.html
The --enable-fortran2003 configure flag was added to
enable Fortran 2003 support in the HDF5 Fortran library.
This flag should be used along with the --enable-fortran
flag and takes affect only when a Fortran compiler is
Fortran 2003 compliant.
* H5Tcreate now supports a string type (fixed-length and variable-length).
* New APIs, H5Pget_mpio_actual_chunk_opt_mode and H5Pget_mpio_actual_io_mode,
were added for querying whether/how a collective I/O operation completed.
* Numerous changes were made to the tools (h5diff, h5repack, h5jam, h5dump).
(yes I know there is the 1.8 branch, but I don't want to experiment
right now)
changes: many fixes, some C++ API improvements
pkgsrc change: DESTDIR support
changes:
-minor feature additions to the command line tools
-C++ API: Added support for Szip
-bugfixes
pkgsrc changes:
-fixes for the cxx option (should be a separate pkg)
-fixes for the threadsafe option -- replaced a pthread_equal() by a
simple "==" to make it usable with non-threaded apps
(not 100% portable, but should be fine for the platforms in question)
The shared libraries should not be linked against libpthread, but
that would require serious changes to the autoconf/make machinery
so I've left it alone for now.
If that is fixed, "threadsafe" could be made default.
-Don't try to strip scripts on install.
-make NetBSD ("netbsdelf") a recognized configuration, copied from
"freebsd"; this pulls in definitions for gcc, in particular it
disables some optimization
-work around a memory corruption problem in H5FDstream which appearently
is caused by use of free()d memory
The latter 2 changes make the library survive its selftests, and help
the "pytables" pkg as well.
bump PKGREVISION, raise BUILDLINK_RECOMMENDED
New Features
Configuration:
- 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.
- WINDOWS building,testing and installing improvements
- On Windows, FORTRAN,C++ and C projects are merged into one zip file,
users can choose an option to build either FORTRAN or C++ or both
with basic C library.For detailed information,
please read INSTALL_Windows.txt.
- On Windows, szip compression library with or without encoder can be easily
turned off or on when building HDF5. For detailed information,
please read INSTALL_Windows.txt, especially section V.
- On Windows, an optional procedure for building,testing and installing
HDF5 from command line is provided. This procedure is supposed to be
convenient for experienced users, please read
INSTALL_windows_From_Command_Line.txt for details.
- On Windows, an alternative short instruction document for building,
testing and installing HDF5 is provided. This instruction is supposed to
be convenient for general users, please read
INSTALL_Windows_Short.txt for details.
- On Windows, h5repack,h5diff,h5ls and h5import tool tests have been added.
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.
- 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
- 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
- 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.
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
- 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).
This version fixes some serious bugs in version 1.4.5 and includes the
following relevant changes:
* Fixed error in B-tree deletion routine which could cause groups to be
corrupted when objects are removed from them.
* Fixed error in file space freeing code which could cause metadata to
fail to be written to the file.
* Fixed error in library when configured with --enable-debug=all.
* Added a -force option to h5redeploy.
* When using gcc 3.x, we use -std=gnu99 instead of -ansi for compiling.
Changes:
* Allow scalar dataspaces to be used for parallel I/O. QAK - 2002/11/05
* Added environment variable "HDF5_DISABLE_VERSION_CHECK", which disables
the version checking between the header files and the library linked
into an application if set to '1'. This should be used with caution,
mis-matched headers and library binaries can cause _serious_ problems.
QAK - 2002/10/15
* Partially fixed space allocation inefficiencies in the file by
improving our algorithms for re-using freed space. QAK - 2002/08/27
* API tracing has been improved. Nested API calls don't screw up the
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
time spent in each API function.
ttop -- turn on tracing but display only top-level
API calls.
* Several missing fortran APIs have been added to the library:
h5get_libversion_f h5tget_member_index_f h5dget_storage_size_f
h5check_version_f h5tvlen_create_f h5dvlen_get_max_len_f
h5garbage_collect_f h5dwrite_vl_f
h5dont_atexit_f h5dread_vl_f
Functions h5dvlen_get_max_len_f, h5dwrite_vl_f, and h5dread_vl_f support
VL Length C APIs functionality for integer, real and string datatypes.
See HDF5 Reference Manual and HDF5 FORTRAN90 User's Notes for more
information and for the functions description.
* H5Fopen without the H5F_ACC_CREAT flag should not succeed in creating
a new file with the 'core' VFL driver. QAK - 2003/01/24
* Corrected metadata caching bug in parallel I/O which could cause hangs
when chunked datasets were accessed with independent transfer mode.
QAK - 2003/01/23
* Allow opening objects with unknown object header messages.
QAK - 2003/01/21
* Added improved error assertion for nil VL strings. It return error
stack instead of a simple assertion. SLU - 2002/12/16
* Fixed h5dump bug(cannot dump data and datatype) for VL string.
SLU - 2002/11/18
* Fixed error condition where "none" selections were not being handled
correctly in serial & parallel. QAK - 2002/10/29
* Fixed problem where optimized hyperslab routines were incorrectly
invoked for parallel I/O operations in collective mode. QAK - 2002/07/22
* Fixed metadata corruption problem which could occur when many objects
are created in a file during parallel I/O. QAK - 2002/07/19
* Fixed minor problem with configuration when users specified /usr/include
and /usr/lib for the --with-* options that some compilers can't
handle. BW - 2003/01/23
* Changed internal error handling macros to reduce code size of library by
about 10%.
* API changes.
* Performance improvements
* ``h5cc'' script which helps compilation of HDF5 programs
* Bug fixes.
New Features
============
* XML output option for h5dump utility.
A new option --xml to output data in XML format has been added. The
XML output contains a complete description of the file, marked up in
XML.
The XML conforms to the HDF5 Document Type Definition (DTD), which
is available at:
http://hdf.ncsa.uiuc.edu/DTDs/HDF5-File.dtd
The XML output is suitable for use with other tools, including the
Java Tools:
http://hdf.ncsa.uiuc.edu/java-hdf5-html
Bug Fixes since HDF5-1.4.0 Release
==================================
* h4toh5 utility: conversion of images is fixed
Earlier releases of the h4toh5 utility produced images that did not
correctly conform to the HDF5 Image and Palette Specification.
http://hdf.ncsa.uiuc.edu/HDF5/doc/ImageSpec.html
Several required HDF5 attributes are omitted, and the dataspace
is reversed (i.e., the ht. and width of the image dataset is
incorrectly described.) For more information, please see:
http://hdf.ncsa.uiuc.edu/HDF5/H5Image/ImageDetails.htm
* Fixed bug with contiguous hyperslabs not being detected, causing
slower I/O than necessary.
* Fixed bug where non-aligned hyperslab I/O on chunked datasets was
causing errors during I/O
* The RCSID string in H5public.h was causing the C++ compiling problem
because when it was included multiple times, C++ did not like
multiple definitions of the same static variable. All occurance of
RCSID definition are removed since we have not used it consistently
before.