Path to this page:
Subject: CVS commit: pkgsrc/devel/hdf5
From: Wen Heping
Date: 2015-04-10 04:49:57
Message id: 20150410024957.0D5AA98@cvs.netbsd.org
Log Message:
Update to 1.8.14
Upstream changes:
Release 1.8.14 of November 2014 (current release) versus Release 1.8.13
In the main library C Interface
No new C functions have been added.
The behavior of the following C function has been changed:
The function H5Pset_core_write_tracking has been modified to enforce the \
limitation that the value of the page_size parameter cannot equal 0 (zero):
H5Pset_core_write_tracking
The following performance optimization has been implemented in the Parallel HDF5 \
library:
The algoritm for writing chunk fill values for new datasets has been \
optimized to write out all chunk fill values collectively in a single MPI-IO \
call. This was previously done independently by rank 0 (zero) one block at a \
time. This optimization should produce a significant performance improvement \
when creating chunked datasets in parallel, most notably when chunk dimensions \
are relatively small. This optimization will be evident in use of the following \
function:
H5Dcreate
In the high-level library C Interface
High-level HDF5 interfaces now ensure that strings are null-terminated and will \
not overflow a buffer.
In several high-level functions, the type from the file was previously \
re-used as the memory type and no check is made to ensure that a string was \
actually null-terminated.
All high-level functions now check for NULL pointers; verify that a received \
a string is null-terminated; and verify that the string will not overflow the \
buffer. The minimum length of the buffers is now used in strncmp to avoid \
overflow.
In the main library C++ Interface
No new C++ methods have been added.
The following changes have been made in the C++ interface:
Changed defaults
Default value of class member id:
The data member id in several classes that represent HDF5 objects are \
now initialized to H5I_INVALID_ID.
Default value of a PropList member id:
The data member id in class PropList is now initialized to H5P_DEFAULT.
In HDF5 Release 1.8.13 and earlier, the above were initialized to 0 (zero).
Changed file access flags
The flag H5F_ACC_CREAT has been removed from the C++ interface.
In the main library Fortran Interface
No new Fortran subroutines have been added.
Changed Fortran INTEGER parameter types:
Types of the following Fortran parameter constants have been changed from \
INTEGER to INTEGER(HID_T):
H5FD_CORE H5FD_MULTI
H5FD_FAMILY H5FD_SEC2
H5FD_LOG H5FD_STDIO
H5FD_MPIO
Other internal int types have been changed to hid_t, but this change is \
expected to be transparent to the user
Release 1.8.13 of May 2014 versus Release 1.8.12
In the C Interface (main library)
The following new C functions have been added:
To free memory allocated by HDF5 function calls:
H5free_memory
This function should be used to free memory that has been allocated by \
HDF5 API calls such as H5Tget_member_name and H5Pget_class_name.
The primary value for this call is on Windows systems, where it is \
common for application code and the HDF5 Library to be using different C \
run-time libraries (CRT). Using this new call ensures that the same CRT handles \
both the allocation and free.
This function can also be useful in any case where the library uses a \
different memory manager than the application, such as when a debug memory \
manager is in use or when the HDF5 Library is wrapped for use in a managed \
language like Python or Java.
New configuration property for the CORE driver:
H5Pset_core_write_tracking
H5Pget_core_write_tracking
With this property, the CORE driver, H5Pset_fapl_core, can be configured \
to track dirty regions in the file and write out only the changed regions on \
flush or close operations. Additionally, a page aggregation size can be set that \
will aggregate small writes into larger writes. For example, setting a 1 \
mebibyte (1 MiB) page aggregation size will logically partition the the \
in-memory file into 1 MiB pages that will be written out in their entirety if \
even a single byte is dirtied.
The following C functions have been modified:
H5Rget_name
If the name parameter is passed as NULL, then the size parameter is ignored \
and the function returns the size of the buffer required to read the name (not \
including the NULL terminator).
H5Zfilter_avail
This function has been updated to correctly identify dynamically loaded \
filters. If a filter is not found among registered filters, the function now \
checks for dynamically loaded filters.
In the C++ Interface
The following new features have been added:
Wrappers to the class H5Object to get an objectâs name:
ssize_t getObjName(char *obj_name, size_t buf_size = 0)
ssize_t getObjName(H5std_string& obj_name, size_t len = 0)
H5std_string getObjName()
Wrappers to the class H5CommonFG to get a child objectâs type from a \
group or file:
H5O_type_t childObjType(const H5std_string& objname)
H5O_type_t childObjType(const char* objname)
H5O_type_t childObjType(hsize_t index,
H5_index_t index_type=H5_INDEX_NAME,
H5_iter_order_t order=H5_ITER_INC, const char* objname=".")
Wrappers to the class DSetMemXferPropList for setting or getting a transform \
property list:
DSetMemXferPropList(const char* expression);
void setDataTransform(const char* expression)
void setDataTransform(const H5std_string& expression)
ssize_t getDataTransform(char* exp, size_t buf_size=0)
H5std_string getDataTransform()
Wrapper to CompType for setting the size of a compound datatype:
void setSize(size_t size)
Overloaded functions to provide prototypes that declare constant arguments const:
DataSet::fillMemBuf
DataSet::getVlenBufSize
DataSpace::extentCopy
DataType::commit
FileAccPropList::setSplit
H5File::getVFDHandle
Additional overload to the class H5Location to get a comment as a char*:
ssize_t getComment(const char* name, size_t buf_size, char* comment)
Additional overloads to the class Attribute to get an attributeâs name \
for convenience:
ssize_t getName(char* attr_name, size_t buf_size=0)
ssize_t getName(H5std_string& attr_name, size_t buf_size=0)
In the Fortran Interface
The following new Fortran subroutines have been added:
Fortran2003 subroutines:
h5pset_file_image_f
h5pget_file_image_f
h5fget_file_image_f (Added in Release 1.8.11, but not documented at that time.)
The following Fortran subroutine has been changed:
h5pset_chunk_cache_f
The values of the constants H5D_CHUNK_CACHE_NSLOTS_DFLT_F and \
H5D_CHUNK_CACHE_NBYTES_DFLT_F have been changed to INTEGER(KIND=size_t).
Other New Features
Parallel I/O support:
Parallel I/O support has been enhanced to allow collective I/O on point \
selections.
Thread safety (Windows only)
The thread-safe HDF5 library no longer leaks thread-local storage resources \
on Windows with Win32 threads. This cleanup can only be performed when the \
library is built as a shared library, so a thread-safe HDF5 static library with \
Win32 threads is no longer supported.
This change affects only Windows environments.
Also see âBuild and Configurationâ below.
Command-line Tools with Changed Behavior
h5repack
h5repack has been updated to correctly handle dynamically loaded filters.
Build and Configuration
Thread safety
When configuring a thread-safe HDF5 Library with --enable-threadsafe, it is \
no longer necessary to specify --with-pthreads if the Pthreads library is in a \
standard location.
Removed Functions and Wrappers
The MPI-POSIX driver has been removed. The following C functions and the \
corresponding Fortran subroutines and C++ wrappers therefore are no longer \
included in the HDF5 distribution:
H5Pset_fapl_mpiposix
H5Pget_fapl_mpiposix
Applications performing parallel I/O should use the MPI-IO driver, H5Pset_fapl_mpio.
Files: