pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/devel/hdf5



Module Name:    pkgsrc
Committed By:   wen
Date:           Fri Apr 10 02:49:57 UTC 2015

Modified Files:
        pkgsrc/devel/hdf5: Makefile.common PLIST distinfo
        pkgsrc/devel/hdf5/patches: patch-hl_examples_Makefile.in

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.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 pkgsrc/devel/hdf5/Makefile.common
cvs rdiff -u -r1.22 -r1.23 pkgsrc/devel/hdf5/PLIST
cvs rdiff -u -r1.33 -r1.34 pkgsrc/devel/hdf5/distinfo
cvs rdiff -u -r1.1 -r1.2 \
    pkgsrc/devel/hdf5/patches/patch-hl_examples_Makefile.in

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



Home | Main Index | Thread Index | Old Index