2c58357b8f
- Reverts PR#1024, which (unnecessarily) switched from deferred package initialization to centralized initialization of all packages and introduced H5FDperform_init() to wrap an internal routine to initialize VFD plugins. - Went back to deferred package initialization (primarily), to eliminate unnecessary resource use. (Performance has been verified to be the same either way) - Switched VFD plugins to use “#define (H5OPEN, )” pattern, with registration of internal VFD plugins at library initialization time. Eliminates calling API routine (H5FDperform_init) from within the library, which was deadlocking threadsafe concurrency. And also eliminates exposing internal library routines in a public header file. - Removed copy-and-paste replicas of the H5OPEN macro and put a (better) single definition in H5public.h - Separated API and internal routine calls in stdio and multi VFD plugins into separate source files, so that the library doesn’t invoke API routines internally (also a deadlock problem for threadsafe concurrency). Also needed a “private” header for these plugins. - Separated registering/unregistering a VFD plugin from initializing /finalizing the plugin, instead of blurring those ideas together. Defers the VFD plugin init to when it’s actually used, which reduces resource usage, especially for the MPI-based plugins like the subfiling, etc. - Refactored the copy-and-pasted check for locking into a central location in the H5FD.c code. - Fixed a bunch of compiler warnings, especially ones that trigger CI failures with -Werror |
||
---|---|---|
.devcontainer | ||
.github | ||
bin | ||
c++ | ||
config | ||
doc | ||
doxygen | ||
fortran | ||
HDF5Examples | ||
hl | ||
java | ||
m4 | ||
release_docs | ||
src | ||
test | ||
testpar | ||
tools | ||
utils | ||
.autom4te.cfg | ||
.clang-format | ||
.codespellrc | ||
.gitattributes | ||
.gitignore | ||
.h5chkright.ini | ||
ACKNOWLEDGMENTS | ||
acsite.m4 | ||
autogen.sh | ||
CITATION.cff | ||
CMakeFilters.cmake | ||
CMakeInstallation.cmake | ||
CMakeLists.txt | ||
CMakePlugins.cmake | ||
CMakePresets.json | ||
CMakeTests.cmake | ||
CMakeVOL.cmake | ||
CODE_OF_CONDUCT.md | ||
configure.ac | ||
CONTRIBUTING.md | ||
CTestConfig.cmake | ||
LICENSE | ||
LICENSE_LBNL_HDF5 | ||
Makefile.am | ||
Makefile.dist | ||
README.md | ||
SECURITY.md | ||
UserMacros.cmake |
HDF5 version 1.17.0 currently under development
HPC configure/build/test results
Please refer to the release_docs/INSTALL file for installation instructions.
This repository contains a high-performance library's source code and a file format specification that implements the HDF5® data model. The model has been adopted across many industries, and this implementation has become a de facto data management standard in science, engineering, and research communities worldwide.
The HDF Group is the developer, maintainer, and steward of HDF5 software. Find more information about The HDF Group, the HDF5 Community, and other HDF5 software projects, tools, and services at The HDF Group's website.
DOCUMENTATION
Documentation for all HDF software is available at:
https://support.hdfgroup.org/documentation/index.html
Documentation for the current HDF5 library release is available at:
https://support.hdfgroup.org/releases/hdf5/latest-docs.html
The latest Doxygen documentation generated on changes to develop
, which does not correspond to any particular library release, is available at:
https://hdfgroup.github.io/hdf5/develop
See the RELEASE.txt file in the release_docs/ directory for information specific to the features and updates included in this release of the library.
Several more files are located within the release_docs/ directory with specific details for several common platforms and configurations.
INSTALL - Start Here. General instructions for compiling and installing the library
INSTALL_CMAKE - instructions for building with CMake (Kitware.com)
INSTALL_parallel - instructions for building and configuring Parallel HDF5
INSTALL_Windows and INSTALL_Cygwin - MS Windows installations.
HELP AND SUPPORT
Information regarding Help Desk and Support services is available at
FORUM and NEWS
The HDF Forum is provided for public announcements and discussions of interest to the general HDF5 Community.
-
News and Announcements https://forum.hdfgroup.org/c/news-and-announcements-from-the-hdf-group
-
HDF5 Topics https://forum.hdfgroup.org/c/hdf5
These forums are provided as an open and public service for searching and reading. Posting requires completing a simple registration and allows one to join in the conversation. Please read the instructions pertaining to the Forum's use and configuration.
RELEASE SCHEDULE
HDF5 does not release on a regular schedule. Instead, releases are driven by new features and bug fixes, though we try to have at least one release of each maintenance branch per year. Future HDF5 releases indicated on this schedule are tentative.
Release | New Features |
---|---|
2.0.0 | Drop Autotools support, complex number support, updated library defaults (cache sizes, etc.), semantic versioning |
FUTURE | Multi-threaded HDF5, crashproofing / metadata journaling, Full (VFD) SWMR, encryption, digital signatures, sparse datasets, improved storage for variable-length datatypes, better Unicode support (especially on Windows) |
NOTE: In the March 2025 release we will begin using semantic versioning (https://semver.org/) and the previously announced 1.16.0 version will instead be numbered 2.0.0.
This list of feature release versions is also tentative, and the specific release in which a feature is introduced may change.
SNAPSHOTS, PREVIOUS RELEASES AND SOURCE CODE
Periodically development code snapshots are provided at the following URL:
https://github.com/HDFGroup/hdf5/releases/tag/snapshot
Source packages for current and previous releases are located at:
hdf5 1.14 releases: https://support.hdfgroup.org/releases/hdf5/v1_14/index.html
Archived releases: https://support.hdfgroup.org/archive/support/ftp/HDF5/releases/index.html
Development code is available at our Github location: