diff --git a/.github/workflows/main-cmake-spc.yml b/.github/workflows/main-cmake-spc.yml index df9ccff495c..1ab59563cc8 100644 --- a/.github/workflows/main-cmake-spc.yml +++ b/.github/workflows/main-cmake-spc.yml @@ -199,6 +199,66 @@ jobs: run: ctest . --parallel 2 -C Debug -V working-directory: ${{ runner.workspace }}/build + build_v1_14: + name: "gcc DBG v1.12 default API" + runs-on: ubuntu-latest + steps: + # SETUP + - name: Install Linux Dependencies + run: | + sudo apt-get update + sudo apt-get install ninja-build doxygen graphviz + sudo apt install libssl3 libssl-dev libcurl4 libcurl4-openssl-dev + sudo apt install gcc-12 g++-12 gfortran-12 + echo "CC=gcc-12" >> $GITHUB_ENV + echo "CXX=g++-12" >> $GITHUB_ENV + echo "FC=gfortran-12" >> $GITHUB_ENV + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Get Sources + uses: actions/checkout@v4.1.7 + + # + # CMAKE CONFIGURE + # + - name: CMake Configure + run: | + mkdir "${{ runner.workspace }}/build" + cd "${{ runner.workspace }}/build" + cmake -C $GITHUB_WORKSPACE/config/cmake/cacheinit.cmake \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=Debug \ + -DBUILD_SHARED_LIBS=ON \ + -DHDF5_ENABLE_ALL_WARNINGS=ON \ + -DHDF5_ENABLE_PARALLEL:BOOL=OFF \ + -DHDF5_BUILD_CPP_LIB:BOOL=ON \ + -DHDF5_BUILD_FORTRAN=ON \ + -DHDF5_BUILD_JAVA=ON \ + -DHDF5_BUILD_DOC=OFF \ + -DLIBAEC_USE_LOCALCONTENT=OFF \ + -DZLIB_USE_LOCALCONTENT=OFF \ + -DHDF5_ENABLE_MIRROR_VFD:BOOL=ON \ + -DHDF5_ENABLE_DIRECT_VFD:BOOL=ON \ + -DHDF5_ENABLE_ROS3_VFD:BOOL=ON \ + -DH5_NO_DEPRECATED_SYMBOLS:BOOL=OFF \ + -DDEFAULT_API_VERSION:STRING=v114 \ + $GITHUB_WORKSPACE + shell: bash + + # + # BUILD + # + - name: CMake Build + run: cmake --build . --parallel 3 --config Debug + working-directory: ${{ runner.workspace }}/build + + # + # RUN TESTS + # + - name: CMake Run Tests + run: ctest . --parallel 2 -C Debug -V + working-directory: ${{ runner.workspace }}/build + build_zlibng: name: "gcc use zlib-ng filter" runs-on: ubuntu-latest diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index dd7f4bfbc86..1164ab17c23 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -58,3 +58,7 @@ jobs: run: | aws s3 sync ./${{ inputs.file_name }}.doxygen s3://${{ secrets.AWS_S3_BUCKET }}/${{ vars.TARGET_PATH }}/${{ inputs.target_dir }}/documentation/doxygen --delete + - name: Sync userguide to latest S3 bucket + run: | + aws s3 sync ./${{ inputs.file_name }}.doxygen s3://${{ secrets.AWS_S3_BUCKET }}/documentation/latest --delete + diff --git a/CMakeLists.txt b/CMakeLists.txt index affac20dbc7..91e2bcdfede 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -856,9 +856,9 @@ if (HDF5_ENABLE_SUBFILING_VFD) endif() -#option (DEFAULT_API_VERSION "Enable v1.16 API (v16, v18, v110, v112, v114, v116)" "v116") -set (DEFAULT_API_VERSION "v116" CACHE STRING "Enable v1.16 API (v16, v18, v110, v112, v114, v116)") -set_property (CACHE DEFAULT_API_VERSION PROPERTY STRINGS v16 v18 v110 v112 v114 v116) +#option (DEFAULT_API_VERSION "Enable v1.16 API (v16, v18, v110, v112, v114, v116, v118)" "v116") +set (DEFAULT_API_VERSION "v116" CACHE STRING "Enable v1.16 API (v16, v18, v110, v112, v114, v116, v118)") +set_property (CACHE DEFAULT_API_VERSION PROPERTY STRINGS v16 v18 v110 v112 v114 v116 v118) #----------------------------------------------------------------------------- # Option to use 1.6.x API #----------------------------------------------------------------------------- @@ -902,14 +902,22 @@ endif () #----------------------------------------------------------------------------- # Option to use 1.16.x API #----------------------------------------------------------------------------- -if (NOT DEFAULT_API_VERSION) - set (DEFAULT_API_VERSION "v116") -endif () set (H5_USE_116_API_DEFAULT 0) if (DEFAULT_API_VERSION MATCHES "v116") set (H5_USE_116_API_DEFAULT 1) endif () +#----------------------------------------------------------------------------- +# Option to use 1.18.x API +#----------------------------------------------------------------------------- +if (NOT DEFAULT_API_VERSION) + set (DEFAULT_API_VERSION "v118") +endif () +set (H5_USE_118_API_DEFAULT 0) +if (DEFAULT_API_VERSION MATCHES "v118") + set (H5_USE_118_API_DEFAULT 1) +endif () + #----------------------------------------------------------------------------- # Include user macros #----------------------------------------------------------------------------- diff --git a/HDF5Examples/C/TUTR/testh5cc.sh.in b/HDF5Examples/C/TUTR/testh5cc.sh.in index f95108ddb99..a825604ea48 100644 --- a/HDF5Examples/C/TUTR/testh5cc.sh.in +++ b/HDF5Examples/C/TUTR/testh5cc.sh.in @@ -44,6 +44,7 @@ H5_USE_110_API_DEFAULT=`grep '#define H5_USE_110_API_DEFAULT ' ../src/H5pubconf. H5_USE_112_API_DEFAULT=`grep '#define H5_USE_112_API_DEFAULT ' ../src/H5pubconf.h` H5_USE_114_API_DEFAULT=`grep '#define H5_USE_114_API_DEFAULT ' ../src/H5pubconf.h` H5_USE_116_API_DEFAULT=`grep '#define H5_USE_116_API_DEFAULT ' ../src/H5pubconf.h` +H5_USE_118_API_DEFAULT=`grep '#define H5_USE_118_API_DEFAULT ' ../src/H5pubconf.h` # setup my machine information. myos=`uname -s` @@ -483,6 +484,8 @@ elif [ -n "$H5_USE_114_API_DEFAULT" ]; then echo "H5_USE_114_API_DEFAULT is defined." elif [ -n "$H5_USE_116_API_DEFAULT" ]; then echo "H5_USE_116_API_DEFAULT is defined." +elif [ -n "$H5_USE_118_API_DEFAULT" ]; then + echo "H5_USE_118_API_DEFAULT is defined." else echo "No H5 API_DEFAULT is defined." fi @@ -523,17 +526,32 @@ elif [ -n "$H5_USE_114_API_DEFAULT" ]; then TOOLTEST -DH5_USE_110_API_DEFAULT $v110main TOOLTEST -DH5_USE_112_API_DEFAULT $v112main TOOLTEST $v114main +elif [ -n "$H5_USE_116_API_DEFAULT" ]; then + echo "Testing HDF5 with 118_API_DEFAULT" + TOOLTEST -DH5_USE_16_API_DEFAULT $v16main + TOOLTEST -DH5_USE_18_API_DEFAULT $v18main + TOOLTEST -DH5_USE_110_API_DEFAULT $v110main + TOOLTEST -DH5_USE_112_API_DEFAULT $v112main + TOOLTEST -DH5_USE_114_API_DEFAULT $v114main + TOOLTEST -DH5_USE_116_API_DEFAULT $v114main + TOOLTEST $v18main + TOOLTEST $v110main + TOOLTEST $v112main + TOOLTEST $v114main + TOOLTEST $v116main else - echo "Testing HDF5 with 116_API_DEFAULT" + echo "Testing HDF5 with 118_API_DEFAULT" TOOLTEST -DH5_USE_16_API_DEFAULT $v16main TOOLTEST -DH5_USE_18_API_DEFAULT $v18main TOOLTEST -DH5_USE_110_API_DEFAULT $v110main TOOLTEST -DH5_USE_112_API_DEFAULT $v112main TOOLTEST -DH5_USE_114_API_DEFAULT $v114main + TOOLTEST -DH5_USE_116_API_DEFAULT $v114main TOOLTEST $v18main TOOLTEST $v110main TOOLTEST $v112main TOOLTEST $v114main + TOOLTEST $v116main fi # Group 6: # HDF5 program that depends on input args. diff --git a/c++/src/H5FaccProp.cpp b/c++/src/H5FaccProp.cpp index dc4b949b5b3..12af96db666 100644 --- a/c++/src/H5FaccProp.cpp +++ b/c++/src/H5FaccProp.cpp @@ -713,6 +713,8 @@ FileAccPropList::getFileLocking(hbool_t &use_file_locking, hbool_t &ignore_when_ /// \li \c H5F_LIBVER_110 /// \li \c H5F_LIBVER_112 /// \li \c H5F_LIBVER_114 +/// \li \c H5F_LIBVER_116 +/// \li \c H5F_LIBVER_118 /// \li \c H5F_LIBVER_LATEST /// /// Valid values of \a libver_high are as follows: @@ -720,6 +722,8 @@ FileAccPropList::getFileLocking(hbool_t &use_file_locking, hbool_t &ignore_when_ /// \li \c H5F_LIBVER_110 /// \li \c H5F_LIBVER_112 /// \li \c H5F_LIBVER_114 +/// \li \c H5F_LIBVER_116 +/// \li \c H5F_LIBVER_118 /// \li \c H5F_LIBVER_LATEST (Default) /// /// For more detail, please refer to the H5Pset_libver_bounds API in @@ -751,6 +755,8 @@ FileAccPropList::setLibverBounds(H5F_libver_t libver_low, H5F_libver_t libver_hi /// \li \c H5F_LIBVER_110 /// \li \c H5F_LIBVER_112 /// \li \c H5F_LIBVER_114 +/// \li \c H5F_LIBVER_116 +/// \li \c H5F_LIBVER_118 /// \li \c H5F_LIBVER_LATEST /// /// and \a libver_high: @@ -758,6 +764,8 @@ FileAccPropList::setLibverBounds(H5F_libver_t libver_low, H5F_libver_t libver_hi /// \li \c H5F_LIBVER_110 /// \li \c H5F_LIBVER_112 /// \li \c H5F_LIBVER_114 +/// \li \c H5F_LIBVER_116 +/// \li \c H5F_LIBVER_118 /// \li \c H5F_LIBVER_LATEST //-------------------------------------------------------------------------- void diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in index c3e92eba66b..9f0d0bc1505 100644 --- a/config/cmake/H5pubconf.h.in +++ b/config/cmake/H5pubconf.h.in @@ -607,6 +607,9 @@ /* Define using v1.16 public API symbols by default */ #cmakedefine H5_USE_116_API_DEFAULT @H5_USE_116_API_DEFAULT@ +/* Define using v1.18 public API symbols by default */ +#cmakedefine H5_USE_118_API_DEFAULT @H5_USE_118_API_DEFAULT@ + /* Define if the library will use file locking */ #cmakedefine H5_USE_FILE_LOCKING @H5_USE_FILE_LOCKING@ diff --git a/config/cmake/HDF5ExampleCache.cmake b/config/cmake/HDF5ExampleCache.cmake index 99232cc06ca..219d1c59902 100644 --- a/config/cmake/HDF5ExampleCache.cmake +++ b/config/cmake/HDF5ExampleCache.cmake @@ -38,6 +38,8 @@ elseif (DEFAULT_API_VERSION MATCHES "v114") set (H5_USE_114_API ON) elseif (DEFAULT_API_VERSION MATCHES "v116") set (H5_USE_116_API ON) +elseif (DEFAULT_API_VERSION MATCHES "v118") + set (H5_USE_118_API ON) endif () message (STATUS "HDF5 H5_LIBVER_DIR: ${H5_LIBVER_DIR} HDF5_API_VERSION: ${DEFAULT_API_VERSION}") diff --git a/configure.ac b/configure.ac index 8d1e3556226..714d647004a 100644 --- a/configure.ac +++ b/configure.ac @@ -4233,10 +4233,10 @@ esac AC_SUBST([DEFAULT_API_VERSION]) AC_MSG_CHECKING([which version of public symbols to use by default]) AC_ARG_WITH([default-api-version], - [AS_HELP_STRING([--with-default-api-version=(default|v16|v18|v110|v112|v114|v116)], + [AS_HELP_STRING([--with-default-api-version=(default|v16|v18|v110|v112|v114|v116|v118)], [Specify default release version of public symbols - [default=v116]])],, - [withval=v116]) + [default=v118]])],, + [withval=v118]) ## Allowing "default" allows the GitHub CI to check that we didn't forget ## to change the defaults when creating a new major version @@ -4270,6 +4270,11 @@ elif test "X$withval" = "Xv116" -o "X$withval" = "Xdefault"; then DEFAULT_API_VERSION=v116 AC_DEFINE([USE_116_API_DEFAULT], [1], [Define using v1.16 public API symbols by default]) +elif test "X$withval" = "Xv118" -o "X$withval" = "Xdefault"; then + AC_MSG_RESULT([v118]) + DEFAULT_API_VERSION=v118 + AC_DEFINE([USE_118_API_DEFAULT], [1], + [Define using v1.18 public API symbols by default]) else AC_MSG_ERROR([invalid version of public symbols given]) fi @@ -4279,7 +4284,7 @@ fi ## if the user insists on doing this via the --enable-unsupported configure ## flag, we'll let them. if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then - if test "X${DEFAULT_API_VERSION}" != "Xv116" -a "X${DEPRECATED_SYMBOLS}" = "Xno" ; then + if test "X${DEFAULT_API_VERSION}" != "Xv118" -a "X${DEPRECATED_SYMBOLS}" = "Xno" ; then AC_MSG_ERROR([Removing old public API symbols not allowed when using them as default public API symbols. Use --enable-unsupported to override this error.]) fi fi diff --git a/fortran/src/H5_f.c b/fortran/src/H5_f.c index 3b278bbbc54..4dd54b0118f 100644 --- a/fortran/src/H5_f.c +++ b/fortran/src/H5_f.c @@ -540,6 +540,7 @@ h5init_flags_c(int_f *h5d_flags, size_t_f *h5d_size_flags, int_f *h5e_flags, hid h5f_flags[28] = (int_f)H5F_LIBVER_V112; h5f_flags[29] = (int_f)H5F_LIBVER_V114; h5f_flags[30] = (int_f)H5F_LIBVER_V116; + h5f_flags[31] = (int_f)H5F_LIBVER_V118; /* * H5FD flags diff --git a/fortran/src/H5_ff.F90 b/fortran/src/H5_ff.F90 index f4bb211e0d1..ad32bfc7b1f 100644 --- a/fortran/src/H5_ff.F90 +++ b/fortran/src/H5_ff.F90 @@ -380,6 +380,7 @@ END FUNCTION h5init1_flags_c H5F_LIBVER_V112_F = H5F_flags(29) H5F_LIBVER_V114_F = H5F_flags(30) H5F_LIBVER_V116_F = H5F_flags(31) + H5F_LIBVER_V118_F = H5F_flags(32) ! ! H5generic flags ! diff --git a/fortran/src/H5f90global.F90 b/fortran/src/H5f90global.F90 index 6d8697da699..ee2c6ab3aec 100644 --- a/fortran/src/H5f90global.F90 +++ b/fortran/src/H5f90global.F90 @@ -237,6 +237,7 @@ MODULE H5GLOBAL !DEC$ATTRIBUTES DLLEXPORT :: H5F_LIBVER_V112_F !DEC$ATTRIBUTES DLLEXPORT :: H5F_LIBVER_V114_F !DEC$ATTRIBUTES DLLEXPORT :: H5F_LIBVER_V116_F + !DEC$ATTRIBUTES DLLEXPORT :: H5F_LIBVER_V118_F !DEC$ATTRIBUTES DLLEXPORT :: H5F_FSPACE_STRATEGY_FSM_AGGR_F !DEC$ATTRIBUTES DLLEXPORT :: H5F_FSPACE_STRATEGY_PAGE_F !DEC$ATTRIBUTES DLLEXPORT :: H5F_FSPACE_STRATEGY_AGGR_F @@ -271,6 +272,7 @@ MODULE H5GLOBAL INTEGER :: H5F_LIBVER_V112_F !< H5F_LIBVER_V112 INTEGER :: H5F_LIBVER_V114_F !< H5F_LIBVER_V114 INTEGER :: H5F_LIBVER_V116_F !< H5F_LIBVER_V116 + INTEGER :: H5F_LIBVER_V118_F !< H5F_LIBVER_V118 INTEGER :: H5F_FSPACE_STRATEGY_FSM_AGGR_F !< H5F_FSPACE_STRATEGY_FSM_AGGR INTEGER :: H5F_FSPACE_STRATEGY_PAGE_F !< H5F_FSPACE_STRATEGY_PAGE INTEGER :: H5F_FSPACE_STRATEGY_AGGR_F !< H5F_FSPACE_STRATEGY_AGGR diff --git a/fortran/test/tH5P_F03.F90 b/fortran/test/tH5P_F03.F90 index 95b634e6782..f411338ccc8 100644 --- a/fortran/test/tH5P_F03.F90 +++ b/fortran/test/tH5P_F03.F90 @@ -235,6 +235,13 @@ SUBROUTINE test_create(total_error) CALL VERIFY("***ERROR: Returned wrong low libver_bounds", low, H5F_LIBVER_V116_F, total_error) CALL VERIFY("***ERROR: Returned wrong high libver_bounds", high, H5F_LIBVER_V116_F, total_error) + CALL h5pset_libver_bounds_f(fapl, H5F_LIBVER_V118_F, H5F_LIBVER_V118_F, error) + CALL check("h5pset_libver_bounds_f",error, total_error) + CALL h5pget_libver_bounds_f(fapl, low, high, error) + CALL check("h5pget_libver_bounds_f",error, total_error) + CALL VERIFY("***ERROR: Returned wrong low libver_bounds", low, H5F_LIBVER_V118_F, total_error) + CALL VERIFY("***ERROR: Returned wrong high libver_bounds", high, H5F_LIBVER_V118_F, total_error) + CALL H5Pset_libver_bounds_f(fapl, H5F_LIBVER_LATEST_F, H5F_LIBVER_LATEST_F, error) CALL check("H5Pset_libver_bounds_f",error, total_error) CALL h5pget_libver_bounds_f(fapl, low, high, error) diff --git a/java/src/hdf/hdf5lib/HDF5Constants.java b/java/src/hdf/hdf5lib/HDF5Constants.java index 55b6f4be913..0260ce879e9 100644 --- a/java/src/hdf/hdf5lib/HDF5Constants.java +++ b/java/src/hdf/hdf5lib/HDF5Constants.java @@ -575,6 +575,8 @@ public class HDF5Constants { /** */ public static final int H5F_LIBVER_V116 = H5F_LIBVER_V116(); /** */ + public static final int H5F_LIBVER_V118 = H5F_LIBVER_V118(); + /** */ public static final int H5F_LIBVER_NBOUNDS = H5F_LIBVER_NBOUNDS(); /** */ public static final int H5F_LIBVER_LATEST = H5F_LIBVER_LATEST(); @@ -2060,6 +2062,8 @@ public class HDF5Constants { private static native final int H5F_LIBVER_V116(); + private static native final int H5F_LIBVER_V118(); + private static native final int H5F_LIBVER_NBOUNDS(); private static native final int H5F_LIBVER_LATEST(); diff --git a/java/src/jni/h5Constants.c b/java/src/jni/h5Constants.c index aeec71fb9f4..41cd6344033 100644 --- a/java/src/jni/h5Constants.c +++ b/java/src/jni/h5Constants.c @@ -1309,6 +1309,11 @@ Java_hdf_hdf5lib_HDF5Constants_H5F_1LIBVER_1V116(JNIEnv *env, jclass cls) return H5F_LIBVER_V116; } JNIEXPORT jint JNICALL +Java_hdf_hdf5lib_HDF5Constants_H5F_1LIBVER_1V118(JNIEnv *env, jclass cls) +{ + return H5F_LIBVER_V118; +} +JNIEXPORT jint JNICALL Java_hdf_hdf5lib_HDF5Constants_H5F_1LIBVER_1NBOUNDS(JNIEnv *env, jclass cls) { return H5F_LIBVER_NBOUNDS; diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt index b2bd84c20f3..1dcbbfe09fb 100644 --- a/release_docs/INSTALL_CMake.txt +++ b/release_docs/INSTALL_CMake.txt @@ -888,7 +888,7 @@ HDF5_STRICT_FORMAT_CHECKS "Whether to perform strict file format checks" HDF5_WANT_DATA_ACCURACY "IF data accuracy is guaranteed during data conversions" ON HDF5_WANT_DCONV_EXCEPTION "exception handling functions is checked during data conversions" ON -DEFAULT_API_VERSION "Enable default API (v16, v18, v110, v112, v114, v116)" "v116" +DEFAULT_API_VERSION "Enable default API (v16, v18, v110, v112, v114, v116, v118)" "v118" HDF5_USE_FOLDERS "Enable folder grouping of projects in IDEs." ON HDF5_MSVC_NAMING_CONVENTION "Use MSVC Naming conventions for Shared Libraries" OFF HDF5_MINGW_STATIC_GCC_LIBS "Statically link libgcc/libstdc++" OFF diff --git a/src/H5Aint.c b/src/H5Aint.c index a459402f589..1f1f12437b7 100644 --- a/src/H5Aint.c +++ b/src/H5Aint.c @@ -96,6 +96,7 @@ const unsigned H5O_attr_ver_bounds[] = { H5O_ATTR_VERSION_3, /* H5F_LIBVER_V112 */ H5O_ATTR_VERSION_3, /* H5F_LIBVER_V114 */ H5O_ATTR_VERSION_3, /* H5F_LIBVER_V116 */ + H5O_ATTR_VERSION_3, /* H5F_LIBVER_V118 */ H5O_ATTR_VERSION_LATEST /* H5F_LIBVER_LATEST */ }; diff --git a/src/H5Dlayout.c b/src/H5Dlayout.c index bd3765e2236..ae2b9aa4a74 100644 --- a/src/H5Dlayout.c +++ b/src/H5Dlayout.c @@ -49,6 +49,7 @@ const unsigned H5O_layout_ver_bounds[] = { H5O_LAYOUT_VERSION_4, /* H5F_LIBVER_V112 */ H5O_LAYOUT_VERSION_4, /* H5F_LIBVER_V114 */ H5O_LAYOUT_VERSION_4, /* H5F_LIBVER_V116 */ + H5O_LAYOUT_VERSION_4, /* H5F_LIBVER_V118 */ H5O_LAYOUT_VERSION_LATEST /* H5F_LIBVER_LATEST */ }; diff --git a/src/H5Fpublic.h b/src/H5Fpublic.h index 1e5a84cdb09..9eaecb59b38 100644 --- a/src/H5Fpublic.h +++ b/src/H5Fpublic.h @@ -189,10 +189,11 @@ typedef enum H5F_libver_t { H5F_LIBVER_V112 = 3, /**< Use the latest v112 format for storing objects */ H5F_LIBVER_V114 = 4, /**< Use the latest v114 format for storing objects */ H5F_LIBVER_V116 = 5, /**< Use the latest v116 format for storing objects */ + H5F_LIBVER_V118 = 6, /**< Use the latest v116 format for storing objects */ H5F_LIBVER_NBOUNDS /**< Sentinel */ } H5F_libver_t; -#define H5F_LIBVER_LATEST H5F_LIBVER_V116 +#define H5F_LIBVER_LATEST H5F_LIBVER_V118 /** * File space handling strategy diff --git a/src/H5Fsuper.c b/src/H5Fsuper.c index 6c4e7d57ef2..39c92f34b17 100644 --- a/src/H5Fsuper.c +++ b/src/H5Fsuper.c @@ -72,6 +72,7 @@ static const unsigned HDF5_superblock_ver_bounds[] = { HDF5_SUPERBLOCK_VERSION_3, /* H5F_LIBVER_V112 */ HDF5_SUPERBLOCK_VERSION_3, /* H5F_LIBVER_V114 */ HDF5_SUPERBLOCK_VERSION_3, /* H5F_LIBVER_V116 */ + HDF5_SUPERBLOCK_VERSION_3, /* H5F_LIBVER_V118 */ HDF5_SUPERBLOCK_VERSION_LATEST /* H5F_LIBVER_LATEST */ }; diff --git a/src/H5Ofill.c b/src/H5Ofill.c index 1b56be12580..2b1faac30ca 100644 --- a/src/H5Ofill.c +++ b/src/H5Ofill.c @@ -154,6 +154,7 @@ const unsigned H5O_fill_ver_bounds[] = { H5O_FILL_VERSION_3, /* H5F_LIBVER_V112 */ H5O_FILL_VERSION_3, /* H5F_LIBVER_V114 */ H5O_FILL_VERSION_3, /* H5F_LIBVER_V116 */ + H5O_FILL_VERSION_3, /* H5F_LIBVER_V118 */ H5O_FILL_VERSION_LATEST /* H5F_LIBVER_LATEST */ }; diff --git a/src/H5Ofsinfo.c b/src/H5Ofsinfo.c index 6e559792530..674e3ff05ff 100644 --- a/src/H5Ofsinfo.c +++ b/src/H5Ofsinfo.c @@ -70,6 +70,7 @@ static const unsigned H5O_fsinfo_ver_bounds[] = { H5O_FSINFO_VERSION_1, /* H5F_LIBVER_V112 */ H5O_FSINFO_VERSION_1, /* H5F_LIBVER_V114 */ H5O_FSINFO_VERSION_1, /* H5F_LIBVER_V116 */ + H5O_FSINFO_VERSION_1, /* H5F_LIBVER_V118 */ H5O_FSINFO_VERSION_LATEST /* H5F_LIBVER_LATEST */ }; #define N_FSINFO_VERSION_BOUNDS H5F_LIBVER_NBOUNDS diff --git a/src/H5Oint.c b/src/H5Oint.c index 6a35a656085..4256f9cc79f 100644 --- a/src/H5Oint.c +++ b/src/H5Oint.c @@ -128,6 +128,7 @@ const unsigned H5O_obj_ver_bounds[] = { H5O_VERSION_2, /* H5F_LIBVER_V112 */ H5O_VERSION_2, /* H5F_LIBVER_V114 */ H5O_VERSION_2, /* H5F_LIBVER_V116 */ + H5O_VERSION_2, /* H5F_LIBVER_V118 */ H5O_VERSION_LATEST /* H5F_LIBVER_LATEST */ }; diff --git a/src/H5Opline.c b/src/H5Opline.c index 19af5442cb7..3e5eb4d7318 100644 --- a/src/H5Opline.c +++ b/src/H5Opline.c @@ -89,6 +89,7 @@ const unsigned H5O_pline_ver_bounds[] = { H5O_PLINE_VERSION_2, /* H5F_LIBVER_V112 */ H5O_PLINE_VERSION_2, /* H5F_LIBVER_V114 */ H5O_PLINE_VERSION_2, /* H5F_LIBVER_V116 */ + H5O_PLINE_VERSION_2, /* H5F_LIBVER_V118 */ H5O_PLINE_VERSION_LATEST /* H5F_LIBVER_LATEST */ }; diff --git a/src/H5Ppublic.h b/src/H5Ppublic.h index a718c3d3621..273250017a3 100644 --- a/src/H5Ppublic.h +++ b/src/H5Ppublic.h @@ -5061,6 +5061,36 @@ H5_DLL herr_t H5Pset_gc_references(hid_t fapl_id, unsigned gc_ref); * objects created with this setting. * * + * \p low=#H5F_LIBVER_V116
+ * \p high= + * + * \li The library will create objects with the latest format + * versions available to library release 1.16.x. + * \li The library will allow objects to be created with the latest + * format versions available to library release specified + * in the \p high value. + * \li API calls that create objects or features that are available + * to versions of the library greater than version specified in + * \p high will fail. + * \li Earlier versions of the library may not be able to access + * objects created with this setting. + * + * + * \p low=#H5F_LIBVER_V118
+ * \p high= + * + * \li The library will create objects with the latest format + * versions available to library release 1.18.x. + * \li The library will allow objects to be created with the latest + * format versions available to library release specified + * in the \p high value. + * \li API calls that create objects or features that are available + * to versions of the library greater than version specified in + * \p high will fail. + * \li Earlier versions of the library may not be able to access + * objects created with this setting. + * + * * \p low=high * * \li The library will create objects with the latest format diff --git a/src/H5S.c b/src/H5S.c index d6611654729..373115661b6 100644 --- a/src/H5S.c +++ b/src/H5S.c @@ -62,6 +62,7 @@ const unsigned H5O_sdspace_ver_bounds[] = { H5O_SDSPACE_VERSION_2, /* H5F_LIBVER_V112 */ H5O_SDSPACE_VERSION_2, /* H5F_LIBVER_V114 */ H5O_SDSPACE_VERSION_2, /* H5F_LIBVER_V116 */ + H5O_SDSPACE_VERSION_2, /* H5F_LIBVER_V118 */ H5O_SDSPACE_VERSION_LATEST /* H5F_LIBVER_LATEST */ }; diff --git a/src/H5Shyper.c b/src/H5Shyper.c index bc5d6c3db96..ce161b01046 100644 --- a/src/H5Shyper.c +++ b/src/H5Shyper.c @@ -242,6 +242,7 @@ static const unsigned H5O_sds_hyper_ver_bounds[] = { H5S_HYPER_VERSION_3, /* H5F_LIBVER_V112 */ H5S_HYPER_VERSION_3, /* H5F_LIBVER_V114 */ H5S_HYPER_VERSION_3, /* H5F_LIBVER_V116 */ + H5S_HYPER_VERSION_3, /* H5F_LIBVER_V118 */ H5S_HYPER_VERSION_3 /* H5F_LIBVER_LATEST */ }; diff --git a/src/H5Spoint.c b/src/H5Spoint.c index e102969657b..6853dc3932a 100644 --- a/src/H5Spoint.c +++ b/src/H5Spoint.c @@ -127,6 +127,7 @@ static const unsigned H5O_sds_point_ver_bounds[] = { H5S_POINT_VERSION_2, /* H5F_LIBVER_V112 */ H5S_POINT_VERSION_2, /* H5F_LIBVER_V114 */ H5S_POINT_VERSION_2, /* H5F_LIBVER_V116 */ + H5S_POINT_VERSION_2, /* H5F_LIBVER_V118 */ H5S_POINT_VERSION_2 /* H5F_LIBVER_LATEST */ }; diff --git a/src/H5T.c b/src/H5T.c index dcf0a679fed..754f3762155 100644 --- a/src/H5T.c +++ b/src/H5T.c @@ -610,6 +610,7 @@ const unsigned H5O_dtype_ver_bounds[] = { H5O_DTYPE_VERSION_4, /* H5F_LIBVER_V112 */ H5O_DTYPE_VERSION_4, /* H5F_LIBVER_V114 */ H5O_DTYPE_VERSION_4, /* H5F_LIBVER_V116 */ + H5O_DTYPE_VERSION_4, /* H5F_LIBVER_V118 */ H5O_DTYPE_VERSION_LATEST /* H5F_LIBVER_LATEST */ }; diff --git a/src/H5trace.c b/src/H5trace.c index d21d82b6664..9b27e072980 100644 --- a/src/H5trace.c +++ b/src/H5trace.c @@ -1453,7 +1453,11 @@ H5_trace_args(H5RS_str_t *rs, const char *type, va_list ap) break; case H5F_LIBVER_V116: - HDcompile_assert(H5F_LIBVER_LATEST == H5F_LIBVER_V116); + H5RS_acat(rs, "H5F_LIBVER_V116"); + break; + + case H5F_LIBVER_V118: + HDcompile_assert(H5F_LIBVER_LATEST == H5F_LIBVER_V118); H5RS_acat(rs, "H5F_LIBVER_LATEST"); break; diff --git a/test/h5test.c b/test/h5test.c index b9d228bc4f7..828d83f40f4 100644 --- a/test/h5test.c +++ b/test/h5test.c @@ -107,6 +107,7 @@ const char *LIBVER_NAMES[] = {"earliest", /* H5F_LIBVER_EARLIEST = 0 */ "v112", /* H5F_LIBVER_V112 = 3 */ "v114", /* H5F_LIBVER_V114 = 4 */ "v116", /* H5F_LIBVER_V116 = 5 */ + "v118", /* H5F_LIBVER_V118 = 6 */ "latest", /* H5F_LIBVER_LATEST */ NULL}; diff --git a/test/tfile.c b/test/tfile.c index f12dc6a079c..0915ef78ba3 100644 --- a/test/tfile.c +++ b/test/tfile.c @@ -6203,6 +6203,7 @@ test_libver_bounds_super_create(hid_t fapl, hid_t fcpl, htri_t is_swmr, htri_t n case H5F_LIBVER_V112: case H5F_LIBVER_V114: case H5F_LIBVER_V116: + case H5F_LIBVER_V118: ok = (f->shared->sblock->super_vers == HDF5_SUPERBLOCK_VERSION_3); VERIFY(ok, true, "HDF5_superblock_ver_bounds"); break; diff --git a/tools/src/h5repack/h5repack.h b/tools/src/h5repack/h5repack.h index 2977ffab6db..db515456a28 100644 --- a/tools/src/h5repack/h5repack.h +++ b/tools/src/h5repack/h5repack.h @@ -119,7 +119,8 @@ * \li 3 This is #H5F_LIBVER_V112 in #H5F_libver_t struct * \li 4 This is #H5F_LIBVER_V114 in #H5F_libver_t struct * \li 5 This is #H5F_LIBVER_V116 in #H5F_libver_t struct - * \li #H5F_LIBVER_LATEST is aliased to #H5F_LIBVER_V116 for this release + * \li 5 This is #H5F_LIBVER_V118 in #H5F_libver_t struct + * \li #H5F_LIBVER_LATEST is aliased to #H5F_LIBVER_V118 for this release * * \subsubsection subsubsec_cltools_h5repack_options_fs File Strategy Settings * FS_STRATEGY is a string indicating the file space strategy used: diff --git a/tools/src/h5repack/h5repack_main.c b/tools/src/h5repack/h5repack_main.c index 9fb85f13cdd..baf60535dc9 100644 --- a/tools/src/h5repack/h5repack_main.c +++ b/tools/src/h5repack/h5repack_main.c @@ -229,8 +229,9 @@ usage(const char *prog) PRINTVALSTREAM(rawoutstream, " 3: This is H5F_LIBVER_V112 in H5F_libver_t struct\n"); PRINTVALSTREAM(rawoutstream, " 4: This is H5F_LIBVER_V114 in H5F_libver_t struct\n"); PRINTVALSTREAM(rawoutstream, " 5: This is H5F_LIBVER_V116 in H5F_libver_t struct\n"); + PRINTVALSTREAM(rawoutstream, " 6: This is H5F_LIBVER_V118 in H5F_libver_t struct\n"); PRINTVALSTREAM(rawoutstream, - " (H5F_LIBVER_LATEST is aliased to H5F_LIBVER_V116 for this release\n"); + " (H5F_LIBVER_LATEST is aliased to H5F_LIBVER_V118 for this release\n"); PRINTVALSTREAM(rawoutstream, "\n"); PRINTVALSTREAM(rawoutstream, " FS_STRATEGY is a string indicating the file space strategy used:\n"); PRINTVALSTREAM(rawoutstream, " FSM_AGGR:\n"); diff --git a/tools/test/h5repack/expected/h5repack-help.txt b/tools/test/h5repack/expected/h5repack-help.txt index 50242ef4853..718215260eb 100644 --- a/tools/test/h5repack/expected/h5repack-help.txt +++ b/tools/test/h5repack/expected/h5repack-help.txt @@ -93,7 +93,8 @@ usage: h5repack [OPTIONS] file1 file2 3: This is H5F_LIBVER_V112 in H5F_libver_t struct 4: This is H5F_LIBVER_V114 in H5F_libver_t struct 5: This is H5F_LIBVER_V116 in H5F_libver_t struct - (H5F_LIBVER_LATEST is aliased to H5F_LIBVER_V116 for this release + 6: This is H5F_LIBVER_V118 in H5F_libver_t struct + (H5F_LIBVER_LATEST is aliased to H5F_LIBVER_V118 for this release FS_STRATEGY is a string indicating the file space strategy used: FSM_AGGR: