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:
RevisionActionfile
1.9modifypkgsrc/devel/hdf5/Makefile.common
1.23modifypkgsrc/devel/hdf5/PLIST
1.34modifypkgsrc/devel/hdf5/distinfo
1.2modifypkgsrc/devel/hdf5/patches/patch-hl_examples_Makefile.in