/** \page rel_spec_112_change Release Software Changes for HDF5 1.12
 *
 * Navigate back: \ref index "Main" / \ref release_specific_info / \ref rel_spec_112
 * <hr>

\section sec_rel_spec_112_change Software Changes from Release to Release in HDF5 1.12
For a description of the major new features that were introduced, please see \ref sec_rel_spec_112_feat.

This page provides information on the changes that a maintenance developer needs to be aware of between successive releases of HDF5, such as:
\li New or changed features or tools
\li Syntax and behavioral changes in the existing application programming interface (the API)
\li Certain types of changes in configuration or build processes

Note that bug fixes and performance enhancements in the C library are automatically picked up by the C++, Fortran, and Java libraries.

The following information is included below.
\li \ref subsec_rel_spec_112_change_2versus1
\li \ref subsec_rel_spec_112_change_1versus0
\li \ref subsec_rel_spec_112_change_0versus10_6

The release notes also list changes made to the library, but these notes tend to be more at a more
detail-oriented level. The release notes may include new features, bugs fixed, supported configuration
features, platforms on which the library has been tested, and known problems. The release note files
are listed below and can be found at the top level of the HDF5 source code tree in the release_docs directory.
<table>
<tr><th>Filename</th><th>Description</th></tr>
<tr><th>Release Notes</th><td> Technical notes regarding the current release of the HDF5 library (RELEASE.txt in the source code)</td></tr>
<tr><th>HISTORY-1_12.txt</th><td>Release information for all HDF5-1.12 releases</td></tr>
<tr><th>HISTORY-1_10_0-1_12_0.txt</th><td>Development history between the HDF5-1.10.0 and HDF5-1.12.0 releases</td></tr>
<tr><th>HISTORY-1_10.txt</th><td>Release information for all HDF5-1.10 releases</td></tr>
<tr><th>HISTORY-1_8_0-1_10_0.txt</th><td>Development history between the HDF5-1.8.0 and HDF5-1.10.0 releases</td></tr>
<tr><th>HISTORY-1_8.txt</th><td>Release information for HDF5-1.8.0 through HDF5-1.8.21 releases</td></tr>
<tr><th>HISTORY-1_0-1_8_0_rc3.txt</th><td>Technical notes starting with HDF5-1.0.0 and ending with HDF5-1.8.0-rc3 (the state of the code prior to the HDF5-1.8.0 release)</td></tr>
</table>

\subsection subsec_rel_spec_112_change_2versus1 Release 1.12.2 versus Release 1.12.1

This section lists interface-level changes and other user-visible changes in behavior in the
transition from HDF5 Release 1.12.1 to Release 1.12.2.

\subsubsection subsubsec_rel_spec_112_change_2versus1_new New and Changed Functions, Classes, Subroutines, Wrappers, and Macros
The following are new C functions in this release:
\li #H5DSwith_new_ref - Determines if new references are used with dimension scales
\li #H5LTget_attribute_ullong - Reads an unsigned long long attribute
\li #H5LTset_attribute_ullong - Create an unsigned long long attribute
\li #H5VLobject_is_native - Determines whether an object ID represents a native VOL connector object

See API Compatibility Reports for 1.12.2 for complete details.

\subsection subsec_rel_spec_112_change_1versus0 Release 1.12.1 versus Release 1.12.0
This section lists interface-level changes and other user-visible changes in behavior in the
transition from HDF5 Release 1.12.0 to Release 1.12.1.

\subsubsection subsubsec_rel_spec_112_change_1versus0_new New and Changed Functions, Classes, Subroutines, Wrappers, and Macros
The following are new C functions in this release:
\li #H5Pget_fapl_splitter - Retrieves information for a splitter file access property list
\li #H5Pset_fapl_splitter - Sets the file access property list to use the splitter driver
\li #H5Pget_file_locking - Gets the file locking property values
\li #H5Pset_file_locking - Sets the file locking property values
\li #H5get_free_list_sizes - Gets the current size of the free lists used to manage memory
\li #H5Ssel_iter_reset - Resets a dataspace selection iterator back to an initial state
\li #H5VLquery_optional - Determines whether a VOL connector supports a particular optional callback operation

<h4>In the C++ Wrapper</h4>
The following C++ wrappers were added:
\li <code>DataSet::operator=</code> - <code>Operator=</code> for DataSet class
\li <code>FileAccPropList::getFileLocking</code> - See #H5Pget_file_locking for details
\li <code>FileAccPropList::setFileLocking</code> - See #H5Pset_file_locking for details

See the API Compatibility report for complete details.

\subsubsection subsubsec_rel_spec_112_change_1versus0_compat Compatibility Notes and Report
See API Compatibility Reports for 1.12 for information regarding compatibility with previous releases.

\subsection subsec_rel_spec_112_change_0versus10_6 Release 1.12.0 versus Release 1.10.6

This section lists interface-level changes and other user-visible changes in behavior in the
transition from HDF5 Release 1.10.6 to Release 1.12.0.

\subsubsection subsubsec_rel_spec_112_change_0versus10_6_new New Features
For a description of the major new features that were introduced, please see \ref sec_rel_spec_112_feat.

<h4>New and Changed Functions, Classes, Subroutines, Wrappers, and Macros</h4>
<strong>In the C Interface (main library)</strong><br />
Following are the new or changed APIs introduced in HDF5-1.12.0. Those introduced with a new feature
list the specific new feature that they were added for.
\li #H5Fdelete - Deletes an HDF5 file
\li #H5Fget_fileno - Retrieves a file's file number that uniquely identifies the open file
\li #H5Fis_accessible - Determines if a file can be opened with a given fapl
\li #H5Iiterate - Calls a callback for each member of the identifier type specified
\li #H5Lget_info<br />H5Lget_info1<br />#H5Lget_info2 - The function H5Lget_info was moved to #H5Lget_info1, and
    #H5Lget_info2 was introduced. The macro H5Lget_info was created that can be mapped to either #H5Lget_info1 or
    #H5Lget_info2. For HDF5-1.12, H5Lget_info is mapped to #H5Lget_info2 by default. In earlier releases, H5Lget_info
    is mapped to #H5Lget_info1.
\li #H5Lget_info_by_idx<br /> #H5Lget_info_by_idx1<br /> #H5Lget_info_by_idx2 - The function H5Lget_info_by_idx was moved to
    #H5Lget_info_by_idx1, and #H5Lget_info_by_idx2 was introduced. The macro H5Lget_info_by_idx was created that can be
    mapped to either #H5Lget_info_by_idx1 or #H5Lget_info_by_idx2. For HDF5-1.12, H5Lget_info_by_idx is mapped to
    #H5Lget_info_by_idx2 by default. In earlier releases, H5Lget_info_by_idx is mapped to #H5Lget_info_by_idx1.
\li #H5Literate<br />#H5Literate1<br />#H5Literate2 - The function H5Literate was moved to #H5Literate1, and #H5Literate2
    was introduced. The macro H5Literate was created that can be mapped to either #H5Literate1 or #H5Literate2. For
    HDF5-1.12, H5Literate is mapped to #H5Literate2 by default. In earlier releases, H5Literate is mapped to #H5Literate1.
\li #H5Literate_by_name<br />#H5Literate_by_name1<br />#H5Literate_by_name2 - The function H5Literate_by_name was moved
    to #H5Literate_by_name1, and #H5Literate_by_name2 was introduced. The macro H5Literate_by_name was created that
    can be mapped to either #H5Literate_by_name1 or #H5Literate_by_name2. For HDF5-1.12, H5Literate_by_name is mapped
    to #H5Literate_by_name2 by default.  In earlier releases, H5Literate_by_name is mapped to #H5Literate_by_name1.
\li #H5Lvisit<br />#H5Lvisit1<br />#H5Lvisit2 - The function H5Lvisit was moved to #H5Lvisit1, and #H5Lvisit2 was
    introduced. The macro H5Lvisit was created that can be mapped to either #H5Lvisit1 or #H5Lvisit2. For HDF5-1.12,
    H5Lvisit is mapped to #H5Lvisit2 by default.  In earlier releases, H5Lvisit is mapped to #H5Lvisit1.
\li #H5Lvisit_by_name<br />#H5Lvisit_by_name1<br />#H5Lvisit_by_name2 - The function H5Lvisit_by_name was moved
    to #H5Lvisit_by_name1, and #H5Lvisit_by_name2 was introduced. The macro H5Lvisit_by_name was created that
    can be mapped to either #H5Lvisit_by_name1 or #H5Lvisit_by_name2. For HDF5-1.12, H5Lvisit_by_name is mapped
    to #H5Lvisit_by_name2 by default.  In earlier releases, H5Lvisit_by_name is mapped to #H5Lvisit_by_name1.
\li #H5Oget_info<br />#H5Oget_info3 - The function H5Oget_info was replaced by the macro H5Oget_info and the
    function H5Oget_info3 was added.
\li #H5Oget_info_by_idx<br />#H5Oget_info_by_idx3 - The function H5Oget_info_by_idx was replaced by the macro
    H5Oget_info_by_idx. The functionH5Oget_info_by_idx3 was added.
\li #H5Oget_info_by_name<br />#H5Oget_info_by_name3 - The function H5Oget_info_by_name was replaced by the
    macro H5Oget_info_by_name. The function H5Oget_info_by_name3 was added.
\li #H5Oget_native_info - Retrieves the native file format information about an object
\li #H5Oget_native_info_by_idx - Retrieves native file format information about an object according to the order of an index
\li #H5Oget_native_info_by_name - Retrieves native file format information about an object given its name
\li #H5Oopen_by_token - Opens an object in an HDF5 file using its VOL independent token
\li #H5Otoken_cmp - Compares two VOL connector object tokens
\li #H5Otoken_from_str - Deserializes a string into a connector object token
\li #H5Otoken_to_str - Serializes a connector's object token into a string
\li #H5Ovisit<br />#H5Ovisit3 - The function H5Ovisit was replaced by the macro H5Ovisit and the function #H5Ovisit3 was added
\li #H5Ovisit_by_name -
\li #H5Ovisit_by_name3 - The function H5Ovisit_by_name was replaced by the macro H5Ovisit_by_name,
    and the function #H5Ovisit_by_name3 was added.
\li #H5Pencode<br />#H5Pencode1<br />#H5Pencode2 - Encodes properties on a property list into a buffer<br>The previous function was
    renamed to H5Pencode1 and deprecated, and the macro H5Pencode was introduced.
\li #H5Pget_vol_id - Returns the identifier of the current VOL connector
\li #H5Pget_vol_info - Returns a copy of the VOL information for a connector
\li #H5Pset_vol - Set the file VOL connector for a file access property list
\li #H5Rcopy - Copies an existing reference
\li #H5Rcreate_attr - Creates an attribute reference
\li #H5Rcreate_object - Creates an object reference
\li #H5Rcreate_region - Creates a region reference
\li #H5Rdestroy - Closes a reference
\li #H5Requal - Determines whether two references are equal
\li #H5Rget_attr_name - Retrieves the attribute name for a referenced object
\li #H5Rget_file_name - Retrieves the file name for a referenced object
\li #H5Rget_obj_name - Retrieves the object name for a referenced object
\li #H5Rget_obj_type3 - Retrieves the type of object that an object reference points to
\li #H5Rget_type - Retrieves the type of reference
\li #H5Ropen_attr - Opens the referenced HDF5 attribute
\li #H5Ropen_object - Opens the referenced HDF5 object
\li #H5Ropen_region - Sets up a dataspace and selection as specified by a region reference
\li #H5Scombine_hyperslab - Performs an operation on a hyperslab and an existing selection and returns the resulting selection
\li #H5Scombine_select - Combines two hyperslab selections with an operation, returning a dataspace with the resulting selection
\li #H5Sencode<br />#H5Sencode1<br />#H5Sencode2 - Encodes a dataspace object description into a binary buffer<br />The function H5Sencode
    was renamed to #H5Sencode1 and deprecated in this release. The macro H5Sencode and the function #H5Sencode2
    were introduced in this release.
\li #H5Smodify_select - Refines a hyperslab selection with an operation using a second hyperslab to modify it
\li #H5Ssel_iter_close - Closes a dataspace selection iterator
\li #H5Ssel_iter_create - Creates a dataspace selection iterator for a dataspace's selection
\li #H5Ssel_iter_get_seq_list - Retrieves a list of offset / length sequences for the elements in an iterator
\li #H5Sselect_adjust - Adjusts a selection by subtracting an offset
\li #H5Sselect_copy - Copies a selection from one dataspace to another
\li #H5Sselect_intersect_block - Checks if current selection intersects with a block
\li #H5Sselect_project_intersection - Projects the intersection of two source selections to a destination selection
\li #H5Sselect_shape_same - Checks if two selections are the same shape
\li #H5Treclaim - Frees the buffers allocated for storing variable-length data in memory
\li #H5VLclose - Closes a VOL connector identifier
\li #H5VLget_connector_id - Retrieves the VOL connector identifier for a given object identifier
\li #H5VLget_connector_id_by_name - Retrieves the identifier for a registered VOL connector name
\li #H5VLget_connector_id_by_value - Retrieves the identifier for a registered VOL connector value
\li #H5VLget_connector_name - Retrieves the connector name for the VOL associated with the object or file identifier
\li #H5VLis_connector_registered_by_name - Tests whether a VOL class has been registered or not for a connector name
\li #H5VLis_connector_registered_by_value - Tests whether a VOL class has been registered or not for a connector value
\li #H5VLregister_connector - Registers a new VOL connector
\li #H5VLregister_connector_by_name - Registers a new VOL connector by name
\li #H5VLregister_connector_by_value - Registers a new VOL connector by connector value
\li #H5VLunregister_connector - Removes a VOL connector identifier from the library
 
<strong>In the Fortran Interface (main library)</strong><br />
Following are the new or changed APIs introduced in HDF5-1.12.0. Those introduced with a new feature
list the specific new feature that they were added for.
\li \ref h5f::h5fget_fileno_f - Retrieves a file's file number that uniquely identifies the open file
\li \ref h5f::h5fis_accessible_f - Determines if a file can be opened with a given fapl
\li <code>h5lget_info_f</code> - The function h5lget_info_f is mapped to #H5Lget_info2.
\li <code>h5lget_info_by_idx_f</code> - The function h5lget_info_by_idx_f is mapped to #H5Lget_info_by_idx2.
\li \ref h5l::h5literate_f - The function h5literate_f  is mapped to #H5Literate2.
\li \ref h5l::h5literate_by_name_f - The function h5literate_by_name_f is mapped to #H5Literate_by_name2.
\li <code>h5oopen_by_token_f</code> - Opens an object in an HDF5 file using its VOL independent token
\li <code>h5otoken_cmp_f</code> - Compares two VOL connector object tokens
\li \ref h5p::h5pget_vol_id_f - Returns the identifier of the current VOL connector
\li \ref h5p::h5pset_vol_f - Set the file VOL connector for a file access property list
\li \ref h5vl::h5vlclose_f - Closes a VOL connector identifier
\li \ref h5vl::h5vlget_connector_id_f - Retrieves the VOL connector identifier for a given object identifier
\li \ref h5vl::h5vlget_connector_id_by_name_f - Retrieves the identifier for a registered VOL connector name
\li \ref h5vl::h5vlget_connector_id_by_value_f - Retrieves the identifier for a registered VOL connector value
\li \ref h5vl::h5vlget_connector_name_f - Retrieves the connector name for the VOL associated with the object or file identifier
\li \ref h5vl::h5vlis_connector_registered_by_name_f - Tests whether a VOL class has been registered or not for a connector name
\li \ref h5vl::h5vlis_connector_registered_by_value_f - Tests whether a VOL class has been registered or not for a connector value
\li \ref h5vl::h5vlregister_connector_by_name_f - Registers a new VOL connector by name
\li \ref h5vl::h5vlregister_connector_by_value_f - Registers a new VOL connector by connector value
\li \ref h5vl::h5vlunregister_connector_f - Removes a VOL connector identifier from the library

<h4>In the C++ Wrapper</h4>
\li <code>H5File::getFileNum</code> - See #H5Fget_fileno
\li <code>H5File::isAccessible</code> - See #H5Fis_accessible
\li <code>LinkCreatPropList::getCreateIntermediateGroup</code> - See #H5Pget_create_intermediate_group
\li <code>LinkCreatPropList::setCreateIntermediateGroup</code> - See #H5Pset_create_intermediate_group
\li <code>H5Location::getLinkInfo</code> - See #H5Lget_info
\li <code>H5Location::getNativeObjinfo</code> - See #H5Oget_native_info
\li <code>H5Location::getObjinfo</code> - See #H5Oget_info
\li <code>H5Object::visit</code> - See #H5Ovisit


\subsubsection subsubsec_rel_spec_112_change_0versus10_6_compat API Compatibility
See API Compatibility Macros in HDF5 for details on using HDF5 version 1.12 with previous releases.

[Compatibility report for Release 1.12.0 versus Release 1.10.6]()

 *
 * <hr>
 * Navigate back: \ref index "Main" / \ref release_specific_info / \ref rel_spec_112
*/

