Commit Graph

7872 Commits

Author SHA1 Message Date
Allen Byrne
1b72a1bca0
Add support for native zlib-ng in the library and compression references (#4935)
* Correct compile defs for zip_perf program
2024-10-23 16:20:15 -05:00
Quincey Koziol
ed4419cc52
Remove another couple of H5E_clear_stack calls (#4968)
Also cleans up the links test, which had a ton of copy-and-pasted incorrect negative error checks (Calling TEST_ERROR within H5E_BEGIN_TRY / H5E_END_TRY pairs will goto out of the pair, leaving errors suppressed).
2024-10-23 10:13:57 -07:00
Allen Byrne
baa1e8e292
Prefix remaining CMake options except for CMake BUILD* variables (#4990) 2024-10-22 15:40:54 -07:00
Dana Robinson
680cdd08bb
Check in generated files in src (#4981)
These files are infrequently updated and generating them adds an
annoying dependency on Perl. We're checking them in and will
probably add a GitHub action to check if anything is stale
when creating a PR.

Adds:
    * H5Edefin.h
    * H5Einit.h
    * H5Emajdef.h
    * H5Emindef.h
    * H5Epubgen.h
    * H5Eterm.h
    * H5overflow.h
    * H5version.h
2024-10-20 12:48:46 -07:00
Dana Robinson
245bb2cd23
Remove some Solaris Studio work-arounds (#4979)
Solaris Studio hasn't been updated in almost a decade and the last
version (12.4, circa 2015) doesn't seem to fully support C11.

This PR removes some work-arounds for things like __attribute__()
support.
2024-10-20 12:47:52 -07:00
Dana Robinson
7f1e49206d
Renamed COPYING to LICENSE (#4978)
This is where most people will expect to find license information. The
COPYING_LBNL_HDF5 file has also been renamed to LICENSE_LBNL_HDF5.
The licenses are unchanged.
2024-10-18 21:13:04 -07:00
Dana Robinson
bb5661101a
Remove the high-level GIF tools (#4976)
The high-level GIF tools, h52gif and gif2h5, have unfixed CVE issues
(with no proof-of-concept files). They are not critical tools, are not
well maintained, and are an odd fit for building with the library.
Because of this, they have been removed. We may move them to a separate
repository in the future.
2024-10-18 12:09:42 -07:00
Dana Robinson
478c7d166f
Set the C standard to 11 (#4975)
Ignores some of the older Autotools platform files, since the Autotools
will be dropped in the next major release (and we don't have
compilers on which to test, anyway).

Also drops support for the old, non-compliant MSVC
preprocessor.
2024-10-18 12:04:27 -07:00
Dana Robinson
4a10a06072
Switch HDoff_t from __int64 to int64_t on Windows (#4973)
__int64 raises warnings when building with clang
2024-10-18 09:51:47 -07:00
Dana Robinson
e12f51381d
Move warning suppression macros to H5warnings.h (#4972) 2024-10-18 09:21:43 -07:00
Dana Robinson
bfcb91652a
Moved timer functionality to (new) H5timer.h (#4970) 2024-10-18 07:58:43 -07:00
Dana Robinson
1c23395bd6
Remove TRUE and FALSE from H5private.h (#4969)
* Remove TRUE and FALSE from H5private.h

* Replace hbool_t with bool in test code
2024-10-18 07:57:34 -07:00
Allen Byrne
29c84e0d59
Incorporate remaining parts of the filters.html file (#4966) 2024-10-17 17:10:24 -07:00
Scot Breitenfeld
ad307bf61f
Updated hyperslab documentation (#4965)
* corrected Fortran docs for hyperslab selection

* updated hyperslab op doc
2024-10-17 09:17:20 -07:00
Dana Robinson
fc5b66b1a8
Only clear FE_INVALID when that symbol is present on the system (#4954)
When we initialize the floating-point types at library startup, it's
possible to raise floating-point exceptions when we check which things
are supported. Normally, we clear these floating-point exceptions via
feclearexcept(FE_INVALID), but FE_INVALID may not be present on all
systems. Specifically, this was reported as being a problem when using
Emscripten 3.1.68 to compile HDF5 1.14.5 to WebAssembly.

We've added an #ifdef FE_INVALID block around the exception clearing
code to correct this.

Fixes #4952
2024-10-14 14:30:22 -07:00
vchoi-hdfgroup
9df4c0dad4
Fix for issue #4849 that settings in fapl libver bounds causes unexpe… (#4939)
* Fix for issue #4849 that settings in fapl libver bounds causes unexpected H5Fopen failures.
File with non-SWMR-write access can now be opened without regard for superblock version.
Due to the fix, H5Fstart_swmr_write() also needs to be modified as well as the tests for libver bounds.
The "RFC: Setting Bounds for Object Creation in HDF5 1.10.0" is also updated to reflect the changes.

* Fix c++ libver bound test failure.
2024-10-11 07:38:22 -05:00
Allen Byrne
6e8c7a9597
add analysis and coverage to CDash reports (#4938)
* Add sanitzers and coverage workflows
* add UndefinedBehavior sanitize
2024-10-10 13:16:36 -05:00
Dana Robinson
54f8f12ed9
Update clang-format to 17 (#4931)
Also bump the clang-format GitHub actions to 17
2024-10-04 19:49:35 -07:00
Quincey Koziol
767282f68a
VOL refactor and cleanup (#4856)
Cleanup and prepare for thread-safety changes.

Big ideas:

* Wrap H5VL_class_t with H5VL_connector_t, so use of the class can be refcounted within the H5VL package, instead of relying on storing an ID within the H5VL_t struct and incrementing & decrementing the ID's refcount.
* Register H5VL_connector_t* for VOL connector IDs, instead of the H5VL_class_t*
* Stop other packages from rummaging around inside H5VL_connector_t and H5VL_object_t data structures, so that the H5VL package can change implementation details without coupled changes throughout the library

Small things:

* Simplified the coding for creating links
* Moved some routines into more logical locations
2024-10-03 12:19:33 -07:00
Quincey Koziol
626f639850
Remove H5E_clear_stack() from H5SM code (#4861)
Introduces 'try' flag for H5B2_modify() call
2024-10-02 21:55:37 -05:00
Allen Byrne
f4105bec7c Fix typo 2024-10-02 19:53:38 -05:00
Allen Byrne
07756c87f5 Update develop to 1.18 API 2024-10-02 19:53:38 -05:00
Larry Knox
698ee8e439
Set develop branch version to 1.17.0. (#4912) 2024-10-02 12:28:19 -05:00
Matt L
e2da35371b
Clean up thread-local error stacks in all threads (#4852)
* Clean up error stacks from secondary threads
2024-10-01 08:53:53 -07:00
Quincey Koziol
fe2de0f4a5
Remove H5E_clear_stack() from library (#4871)
Use existing H5G_loc_exists() routine
2024-10-01 08:45:27 -07:00
Quincey Koziol
e0804984e9
Remove a call to H5E_clear_stack() in H5O code (#4875)
* Remove H5E_clear_stack() call

* Add note to H5F_clear_stack() to dissuade use

* Committing clang-format changes

* Eliminate "unknown" case from H5O__obj_type_real()

Also minor optimizations and warning cleanups
2024-10-01 08:44:18 -07:00
Matt L
62e4777836
Split H5TS termination into threadlocal/thread-global parts (#4881) 2024-10-01 08:38:46 -07:00
bmribler
c2baceab9a
Fixed a memory leak from H5FL_blk_malloc (#4882)
In H5F__accum_reset(), when H5F__accum_flush() failed, the freeing of
f_sh->accum.buf was never reached, causing resource leak.

@fortnern added the third argument to H5F__accum_reset() so we can free
f_sh->accum.buf when we close the file, that is, when H5F__accum_reset()
is called from the H5F__dest() route, and can leave the accumulator in place
otherwise.
2024-09-26 16:05:50 -05:00
Dana Robinson
013b1cd6d7
Remove an unused variable from H5FDs3comms.c (#4872) 2024-09-24 08:34:53 -05:00
bmribler
abcdffb9b0
Fix minor spelling in documentation (#4870) 2024-09-23 20:28:23 -07:00
jhendersonHDF
92f4083514
Fix a typo in VOL user's guide (#4868) 2024-09-23 14:59:01 -05:00
bmribler
ff0839d922
Fixes a segfault in h5dump (#4862)
* Fixes a segfault in h5dump

The B-tree node level was corrupted, resulting in a segfault later.
This PR adds a check to detect when the node level is greater than
the number of entries and issue an error instead.

Fixes GH-4432
2024-09-23 07:25:18 -05:00
Neil Fortner
3b65223c21
Fix issues with large external data files (#4843) 2024-09-17 15:54:24 -05:00
mattjala
ca217e2c71
Document usage for H5TSmutex_release/acquire() (#4836) 2024-09-17 09:06:03 -07:00
Allen Byrne
0737d0dbf7
Correct URLs in documentation (#4823) 2024-09-12 22:46:58 -05:00
jhendersonHDF
98c5411f02
Fix a bug in Subfiling VFD vector I/O setup (#4821)
Fixes a bug where the vector I/O sizes weren't being extended when
one of the entries in the array is 0. This caused an over-read of
the I/O sizes buffer and on some machines would cause a memory
allocation failure due to the calculated I/O vector size being too
large.
2024-09-12 08:01:08 -05:00
Quincey Koziol
92532bbec8
Rename and add more locking infrastructure (#4729)
Rename existing recursive R/W locks from H5TS_rw_lock_t to H5TS_rec_rwlock_t, so it's more obvious that they are recursive.

Add non-recursive R/W lock, H5TS_rwlock_t

Add spinlock, H5TS_spinlock_t

Add an atomic void pointer, H5TS_atomic_voidp_t
2024-09-07 10:38:46 -07:00
Quincey Koziol
ec005fb2a2
Remove call to H5E_clear_stack() (#4810)
Remove call to H5E_clear_stack() in H5G_node_debug()

Add misc. minor cleanups
2024-09-06 08:56:14 -07:00
Quincey Koziol
f3ca753979
Fix use of public API calls (#4809)
Switch public API calls to private ones. Root cause of #4672, which it fixes.

Also minor code cleanups
2024-09-06 08:53:32 -07:00
bmribler
a75542b3e7
Detect invalid ID to H5Gmove2 (#4765)
User's application segfaulted because the returned value H5I_BADID wasn't
detected when H5I_get_type() was called.  This PR adds checks for invalid
file/group identifiers passed into H5Gmove2.

This defect occurs in many other places, hence, issue GH-4764.

Fixes #4737
2024-09-06 08:50:10 -07:00
jhendersonHDF
308fc972f7
Fix a few issues with error reporting during sec2 reads/writes (#4794) 2024-09-04 13:14:22 -05:00
bmribler
902131faf2
Replace non-VOL calls with VOL calls - part 5 (#4788)
This PR switches H5I_object() and H5I_object_verify() to H5VL_vol_object() and          H5VL_vol_object_verify(), respectively, in the H5M APIs and H5Gdeprec (was left         out by mistake).  This completes the fixes of issue GH-4730.
2024-09-03 11:46:34 -05:00
H. Joe Lee
33469a664c
Fix typos in H5Cpkg.h (#4796) 2024-09-03 08:00:10 -05:00
H. Joe Lee
23be95fdd5
Fix typo argueably in H5Cprivate.h (#4795) 2024-09-03 07:51:57 -05:00
H. Joe Lee
008b7ba708
Fix char-subscripts warnings in H5private.h (#4793) 2024-08-30 14:13:06 -05:00
H. Joe Lee
0a9c1e69d8
Fix grammar and simplify comment in H5Fint.c (#4790) 2024-08-30 11:06:52 -05:00
Allen Byrne
bca2806055
Update URL documentation links to support site (#4781) 2024-08-29 16:27:44 -05:00
H. Joe Lee
c54d6018bc
Fix grammar in H5Fint.c comment block (#4782) 2024-08-29 07:28:50 -05:00
bmribler
1f0bd7f8ef
Replace non-VOL calls with VOL calls - part 3 (#4771)
This PR switches H5I_object() to H5VL_vol_object() in H5O and H5T APIs.                 H5M is the last one and left out of this PR because it needs more work
in documentation and there is no test for the API functions.

Fixes GH-4730
2024-08-27 12:42:11 -05:00
H. Joe Lee
b56873895a
Fix grammar in H5Odtype.c comment block (#4777) 2024-08-27 10:22:14 -07:00