7948 Commits

Author SHA1 Message Date
Scot Breitenfeld
55b243bf18
Update Fortran documentation for F2003 and derived types (#5444)
* updated the complex datatype information and examples for F2003, HELP-2755

* updated derived types for Fortran 2003, uses doxygen awesome tabs feature
2025-04-16 11:53:03 -05:00
jhendersonHDF
1b7baf0e5f
Include 400/500 HTTP status codes in ROS3 VFD error stacks (#5441)
Adds check for buffer overflow in curl write callback
2025-04-11 16:55:21 -05:00
Matt L
2b982cf2fe
Fix bad connector ID management during file open fallback (#5429) 2025-04-11 15:08:16 -05:00
bmribler
3580546e6f
Fixed a typo (#5425) 2025-04-09 10:24:10 -05:00
Dana Robinson
ab3be98601
Fix clang enum-enum-conversion warnings (#5421)
clang complains that H5FD_MEM_NTYPES, which is a member of H5FD_mem_t,
is being used with a variable of type H5F_mem_page_t. This is fine
since H5F_mem_t is a subset of H5F(D)_mem_page_t and we're restricting
ourselves to the subset in this case.
2025-04-08 11:10:54 -05:00
jhendersonHDF
407caf1259
Suppress GCC warnings about invalid float16 literal suffix before C23 (#5387)
* Revert to old form of warning flag
2025-04-02 11:54:12 -05:00
jhendersonHDF
fc3b3e7bbb
Fix segfault in H5S__get_select_hyper_blocklist() (#5353) 2025-03-18 11:06:36 -05:00
Allen Byrne
1602e1fbfe
Remove autotools files and docs (#5358) 2025-03-14 13:28:44 -05:00
jhendersonHDF
5e32f15352
Fix two assertion failures in hyperslab code (#5355) 2025-03-07 16:54:53 -06:00
Markus Mützel
b09008ea03
Define __STDC_WANT_IEC_60559_TYPES_EXT__ before including other headers (#5356)
Some standard headers might implicitly include `float.h`. If that happens
before `__STDC_WANT_IEC_60559_TYPES_EXT__` is defined, the macros that
are needed for the `_Float16` data type (like `FLT16_MAX`) might not be
defined.

That is happening with mingw-w64 headers since the following change: b40b6a021d

Define `__STDC_WANT_IEC_60559_TYPES_EXT__` before including other headers
in `H5private.h` to make that scenario less likely.
2025-03-07 12:48:46 -06:00
Allen Byrne
5b97d18915
Correct references to groups in RM (#5340) 2025-03-03 14:06:08 -06:00
Allen Byrne
d81ae5586a
Add presets cookbook and use cases (#5323)
* RPM has issue with packaging RPM of a parallel library
2025-02-27 09:58:03 -06:00
Mark C. Miller
50d6458e1d
Fix H5S_MAX_RANK doc (#5328)
The H5S_MAX_RANK is the maximum number of dimensions in a dataset or an array datatype.
2025-02-21 09:23:14 -06:00
bmribler
d35d1ecce8
Add release information to enum constants - Part 4 (#5309)
Added \since to enum constants added in 1.14.x versions

* Changed for back-ported releases
2025-02-18 11:23:22 -06:00
Allen Byrne
409f738e9d
Translate release-specific changes docs to doxygen (#5314) 2025-02-18 11:21:27 -06:00
Neil Fortner
61aa40f3fb
Fix error in H5Ddebug() (#5299)
* Fix error in H5Ddebug(). Add h5ls test cases.

* Committing clang-format changes

* Fix cmake (hopefully)

* Fix cmake again (hopefully)

* Fix issue with modification times showing up differently on different
systems. Add test case for v1 b-trees.

* Add cmake for new tests

* Add RELEASE.txt entry

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-07 16:40:55 -06:00
jhendersonHDF
e8760978c9
Fix segfault in H5Scombine_select (#5296)
Checks for a hyperslab selection in the resulting dataspace before
attempting to set a hyperslab-specific field
2025-02-07 09:44:01 -06:00
Ted Lyngmo
985df02283
Fix a few illegal pointer usages (#5279) 2025-01-25 22:54:47 -06:00
bmribler
99aac48336
Fixed allocation-size-too-big error in H5MM.c (#5076)
A decoded length appeared to be corrupted and had a very large value.
This PR added a check to detect such potential data corruption.
2025-01-25 18:54:09 -06:00
Matt L
331c000e6a
Add H5Tdecode2, rename and deprecate H5Tdecode (#5213) 2025-01-24 08:13:43 -06:00
Allen Byrne
d84337ad8c
Fix codespell issues (#5256) 2025-01-21 17:36:27 -06:00
Allen Byrne
2ad03911d9
Convert doc folder files to doxygen (#5216) 2025-01-17 11:48:58 -06:00
Matt L
3e8aa54c17
Correct H5T_decode return value description (#5242) 2025-01-16 11:33:52 -06:00
bmribler
0d69892019
Add release information to enum constants - Part 3 cont. (#5240)
The releases 1.12.1-1.12.3 were missing in the previous Part 3 PR
2025-01-16 10:53:51 -06:00
aled-ua
7f27ba8c3a
Fix vuln OSV-2023-77 (#5210) 2025-01-15 15:02:25 -06:00
Dana Robinson
6de897bc5c
Move AWS configuration into a new function (#5239) 2025-01-15 06:47:43 -08:00
Dana Robinson
144b4fc661
Move AWS config/auth code inside H5FDs3comms.c (#5238)
The AWS configuration and authorization setup code needs to be
consolidated into one location in order to check AWS environment
variables and configuration files as well as fapl parameters.

This changeset pushes some stragglers into the s3comms code.

Also includes some cleanup, like removing useless macros,
making the s3comms functions package functions, and
renames things for symmetry and readability.
2025-01-15 05:43:20 -08:00
bmribler
eaf175ce9a
Changed comment style to avoid long line issue. (#5237)
* Changed comment style to avoid long line issue.

* Update H5Mpublic.h for clang format

---------

Co-authored-by: Dana Robinson <43805+derobins@users.noreply.github.com>
2025-01-14 14:46:28 -08:00
Dana Robinson
04cb039f0d
Comment cleanup in s3comms code (#5236)
Also renames the curl callback
2025-01-14 13:57:44 -08:00
bmribler
1458878b2c
Add release information to enum constants - Part 3 (#5234)
- Added \since to enum constants added in 1.8.x versions
- Removed unnecessary continuation backslashes in doxygen comments
2025-01-14 14:02:47 -06:00
Dana Robinson
01d5a973e0
More H5FDs3comms.c/h cleanup (#5231)
* Rename functions that create AWS strings to include _make_aws_
  in the name
* Separate out the test-only load AWS credentials function
2025-01-14 10:13:32 -06:00
Dana Robinson
04f17f5a7c
Clean up H5FDs3comms.c code (#5228)
Makes it more like the rest of the library. Also simplifies some
string copying.
2025-01-13 10:25:57 -08:00
Dana Robinson
915722a0c4
Parse ros3 VFD URLs using libcurl (#5226) 2025-01-13 06:40:27 -08:00
Dana Robinson
8ff65ebf7a
Use SSL to create hex strings from byte arrays (#5227) 2025-01-13 05:44:14 -08:00
Dana Robinson
6c6ec4fcd4
Misc cleanup in s3comms code (#5220)
Commenting and error code/message cleanup
2025-01-09 09:18:39 -06:00
Allen Byrne
67d074cac7
Fix doxygen missing references (#5205) 2025-01-06 11:32:52 -06:00
aled-ua
c0192e2361
Fix vuln OSV-2024-390 (#5201) 2025-01-03 07:47:30 -06:00
Allen Byrne
655403a3b4
Correct CMake option usage and dependencies (#5188) 2024-12-31 16:46:45 -06:00
Quincey Koziol
331193f357
Add new multithreaded concurrency configuration (#5015)
Added infrastructure support for multithreaded concurrency by adding an optional way to switch to using a non-recursive R/W lock for the global API lock. This is enabled with a new 'concurrency' configuration flag for the autotools & CMake builds, which is disabled by default.

When the 'concurrency' build option is chosen, the global API lock will use the R/W lock and all API calls currently will acquire a write lock, ensuring exclusive access by one thread. Over time, the API routines that are converted to support multithreaded concurrency will switch to acquiring a read lock instead.

Reentering the library from application callbacks is managed by the 'disable locking for this thread' (DLFTT) threadsafety protocol. This is internally handled within the H5_API_LOCK / H5_API_UNLOCK macros in H5private.h (as before), which invoke the 'dlftt' routines in H5TSint.c.

To support this change, the threadsafety configuration macros for the library have been updated:
- --enable-threadsafe now defines the H5_HAVE_THREADSAFE macro
- --enable-concurrency defines the H5_HAVE_CONCURRENCY macro
The new H5_HAVE_THREADSAFE_API macro is set if either H5_HAVE_THREADSAFE or H5_HAVE_CONCURRENCY is enabled.

New Github actions are added to include the concurrency configuration in the CI for the develop branch.

To support the new non-recursive R/W locking for API routines, some other changes are necessary:

Added macro wrappers around all callback invocations that could call an
application function, and therefore re-enter the library:
H5_BEFORE_USER_CB* / H5_AFTER_USER_CB*

Added H5_user_cb_prepare / H5_user_cb_restore routines that save the
state of the library when callback leaves the library. Includes error
stack and threadsafe reentry state currently.

There's also some small cleanups to various places in the library:

Moved the H5E_mpi_error_str / H5E_mpi_error_str_len globals to be local for
pushing MPI errors, so that multiple threads can't interfere with each
other.

Added H5TS_rwlock_trywrlock() routine to R/W lock interface.

Emulate R/W locks on MacOS because its implementation of
pthread_rwlock_wrlock() does not conform to the POSIX standard.

Don't acquire the global API lock in H5close, since it's acquired in H5_term_library, which is necessary because H5_term_library is invoked via other code paths that don't hold the global API lock.

Don't call H5Eget_auto2 API routine within H5_term_library.

Switched 'return NULL' in H5allocate_memory to HGOTO_DONE(NULL).

Switched H5Pget_file_space_strategy / H5Pset_file_space_strategy to use
internal routines instead of API routines.

Switched H5Oopen_by_addr & H5Ovisit1 to use internal routines instead of
API routines.

Fixed a few places in src/H5Odeprec.c where a major
error ID was passed as a minor ID.
2024-12-19 01:35:21 -08:00
Matt L
914640e123
Prevent H5Pset* routines from modifying default plists (#5172)
* Prevent H5Pset_vol from changing default VOL
* Prevent public routines from modifying default plists
* Allow default backing FAPL for onion VFD
* Require FAPL in H5Pset_vol()
* Merge into existing H5P tests
2024-12-17 07:52:46 -06:00
bmribler
f0cffc90ac
Add release information to enum constants - Part 2 (#5176)
Added \since to enum constants added in 1.10.x versions
2024-12-16 08:02:46 -06:00
Allen Byrne
8c7fe8199d
Split doxygen pages from spec and TN into files (#5165) 2024-12-13 10:31:55 -06:00
bmribler
d38baa4963
Add release information to enum constants - Part 1 (#5174)
* Add release information to enum constants - Part 1

- Added \since to enum constants added in 1.8.x versions
- Removed unnecessary continuation backslashes in doxygen comments; they
  are displayed in the generated output.
2024-12-11 15:29:36 -06:00
Matt L
44cff2339c
Add missing H5_DLL to Native callback (#5173) 2024-12-10 21:45:15 -06:00
Dana Robinson
8f2c03b2da
Remove the hash_size param from H5Iregister_type() (#5170)
The hash_size parameter of H5Iregister_type() hasn't been used since 1.8.
It's been removed and the API call has been versioned.

This PR also updates the make_vers script to handle v2.0.0.

Fixes #4344
2024-12-10 00:34:40 -08:00
Allen Byrne
f07537722c
Convert HL Dim Scales doc to doxy UG (#5152) 2024-12-03 07:33:26 -06:00
bmribler
e423dc5526
Replaced an incorrect image with the correct one (#5161) 2024-12-02 05:43:29 -08:00
Thomas Kluyver
89bfb21a17
Correct version in which H5Sselect_shape_same was added (#5148)
It wasn't actually there in 1.10.6, as I found in h5py's tests.
2024-11-26 12:51:01 -06:00
Scot Breitenfeld
c7538bf46f
Clarified the description of the filter ID range. (#5142) 2024-11-25 07:50:54 -06:00
Allen Byrne
2ce2fb0054
Convert file image ops file to doxygen (#5134) 2024-11-23 12:00:16 -08:00