Commit Graph
3819 Commits
Author SHA1 Message Date
vchoi-hdfgroup.org 80b13b975d Modifications to move up "Structured Chunk Composition" to before the "Chunk Indexing Type" field so
the information is available when decoding the layout message.
Also regenerate h5stat_struct_chunk.h5 for testing.
2025-11-20 13:58:33 -06:00
vchoi-hdfgroup.org 5cd51501ad Changes to use a new filter pipeline message for structured chunk instead
of adding a new version to the existing pipeline message for dense chunked.
2025-11-18 12:26:13 -06:00
vchoi-hdfgroup.org 855c4360ab Fix spelling error. 2025-11-10 01:26:23 -06:00
github-actions b33902e33c Committing clang-format changes 2025-10-24 07:28:19 +00:00
vchoi-hdfgroup.org f5dfcabd49 Changes to print structured chunk storage info for h5dump.
This is a fix from Elena.
2025-10-24 02:21:29 -05:00
vchoi-hdfgroup.org 173bca259b Fixed compilation errors and warnings when compiled on MAC. 2025-10-20 19:57:38 -05:00
github-actions e6a8dc574f Committing clang-format changes 2025-10-19 09:06:56 +00:00
vchoi-hdfgroup.org 95d07d2e55 Modifications to H5Dset_extent() and h5stat for supporting structured chunk. 2025-10-19 04:00:22 -05:00
vchoi-hdfgroup.org a6ae078283 Add H5Premove_filter() API + tests + misc cleanup/comments. 2025-07-24 13:59:47 -05:00
github-actions e0e48f52e6 Committing clang-format changes 2025-07-14 23:51:32 +00:00
vchoi-hdfgroup.org af23786b72 Modifications for adding structured chunk filter support. 2025-07-14 14:55:30 -05:00
vchoi-hdfgroup 2a42fad585 Merge pull request #5342 from HDFGroup/develop
Update feature/sparse_data with develop
2025-02-28 21:18:04 -06:00
Allen Byrne 409f738e9d Translate release-specific changes docs to doxygen (#5314) 2025-02-18 11:21:27 -06:00
Neil Fortnerandgithub-actions 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
Neil Fortner ea3073c2eb Merge branch 'develop' into feature/sparse_data 2025-01-16 11:07:44 -06:00
Dana Robinson be3f2995dc Fix flipped calloc args (#5198)
* Fix flipped calloc args in C++ tests
2025-01-02 10:09:45 -06:00
Allen Byrne 655403a3b4 Correct CMake option usage and dependencies (#5188) 2024-12-31 16:46:45 -06:00
Larry Knox d4a5e1e4fb Fix MPI_TEST_H5DIFF-h5diff_601 (#5192)
on Dane and Frontier, which occasionally fails when searching for expected output "Object could not
be found in <h5diff_basic1.h5>" when the object name </nono_obj> is
inserted after "Object".  Search string is reduced to "could not
be found".
2024-12-30 13:57:29 -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
Neil Fortner 333a3366ac Merge develop to feature/sparse_data (#5154) 2024-11-27 14:58:53 -06:00
jhendersonHDF 90429f5e7d Implement support for complex number datatypes (#4630)
* Implement support for complex number datatypes

Adds the new datatype class H5T_COMPLEX

Adds the new API function H5Tcomplex_create which creates a complex
number datatype from an ID of a base floating-point datatype

Adds the new feature check macros H5_HAVE_COMPLEX_NUMBERS and
H5_HAVE_C99_COMPLEX_NUMBERS

Adds the new datatype size macros H5_SIZEOF_FLOAT_COMPLEX,
H5_SIZEOF_DOUBLE_COMPLEX and H5_SIZEOF_LONG_DOUBLE_COMPLEX

Adds the new datatype ID macros H5T_NATIVE_FLOAT_COMPLEX,
H5T_NATIVE_DOUBLE_COMPLEX, H5T_NATIVE_LDOUBLE_COMPLEX,
H5T_CPLX_IEEE_F16LE, H5T_CPLX_IEEE_F16BE,
H5T_CPLX_IEEE_F32LE, H5T_CPLX_IEEE_F32BE,
H5T_CPLX_IEEE_F64LE and H5T_CPLX_IEEE_F64BE

Adds hard and soft datatype conversion paths between complex number
datatypes and all the integer and floating-point datatypes, as well as
between other complex number datatypes

Adds a special conversion path between complex number datatypes and
array or compound datatypes where the in-memory layout of data is the
same between the datatypes and data can be converted directly

Adds support for complex number datatypes to the h5dump, h5ls and
h5diff/ph5diff tools. Allows h5dump '-m' option to change floating-point
printing format for float complex and double complex datatypes, as well
as long double complex if it has the same size as double complex

Adds minimal support to the h5watch and h5import tools

Adds support for the predefined complex number datatypes and
H5Tcomplex_create function to the Java wrappers. Also adds initial,
untested support to the JNI for future use with HDFView

Adds support for just the H5T_COMPLEX datatype class to the Fortran
wrappers

Adds support for the predefined complex number datatypes and
H5Tcomplex_create function to the high level library H5LT interface
for use with the H5LTtext_to_dtype and H5LTdtype_to_text functions

Changes some usages of "complex" in the library since it conflicts with
the "complex" keyword from the complex.h header. Also changes various
usages of the word "complex" throughout the library to distinguish
compound datatypes from complex datatypes.
2024-10-31 13:54:25 -07:00
Allen Byrne 192d630f27 Add long double format option to h5dump (#5025) 2024-10-29 08:06:13 -07:00
Dana Robinson 786b03317a Fix remaining calloc param reversals (#5018)
gcc 14 identifies likely places where the sizeof() call is used
for the first parameter to calloc(). This PR fixes the remaining
places in the library where this occurs and reworks a few other
allocations to be more uniform.
2024-10-28 06:58:28 -07:00
Dana Robinson 369099d843 Fix minor Windows warnings (#5021)
* Cast away a signed/unsigned issue in H5HFhuge.c
* Use our platform-independent POSIX types in external_common.c
  and h5test.c
* Replace a memset() call with a (const) array initializer in h5test.c
* Fix an unused done: target in h5diff
2024-10-28 05:54:16 -07:00
Allen Byrne 5425a571e0 Convert develop to v2.0.0 (#5006)
Switches previous 1.16/17/18 values to 2.0
2024-10-27 21:51:07 -07:00
Dana Robinson b8a06b51f1 Remove version number from h5repack test plugin (#5011) 2024-10-26 07:11:22 -05:00
Allen Byrne 01957b6cb1 Certain versions of VS produce rounding errors in tfloatsattr (#5000) 2024-10-24 15:26:57 -05:00
Quincey Koziol 97e1ed4fc8 Refactor allocation of API context (#4942)
Since each API context is local to a thread, use the stack to
store the context instead of allocating & releasing it each time.
This improves performance (slightly), reduces alloc/free calls,
and eliminates the H5FL package from the push & pop operations,
which helps simplify threadsafe operation.

One effect of this change is that the H5VLstart_lib_state /
H5VLfinish_lib_state API routines for pass through connector
authors now require a parameter that can be used to store
the library's context. It was probably a mistake to assume
that these two routines would not do this previously, so this
is essentially a bug fix for them.

Some other minor things:

 * Added API context push+pop operations to cache tests
  (I'm not actually certain why this was working before) and
  a few other places
* Cleaned up a bunch of warnings in test code (calloc args, mainly)
* Made header file inclusions more standard in some source files
2024-10-24 10:09:22 -07:00
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
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
vchoi-hdfgroup 62b4d4dd42 Merge branch 'feature/sparse_data' into feature/sparse_data 2024-10-10 17:05:45 -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
Allen Byrne a429e46b9d Correct comment in h5repack help 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
H. Joe Lee 7d40520a55 Remove Windows oneAPI warning for %ld formatting (#4876) 2024-09-25 12:07:20 -05:00
vchoi-hdfgroup 76f05899c5 Merge branch 'HDFGroup:feature/sparse_data' into feature/sparse_data 2024-09-20 21:45:32 -05:00
Allen Byrne 0737d0dbf7 Correct URLs in documentation (#4823) 2024-09-12 22:46:58 -05:00
Allen Byrne bca2806055 Update URL documentation links to support site (#4781) 2024-08-29 16:27:44 -05:00
H. Joe Lee 8b3041f3a3 Fix macro redefined warnings (#4744)
Removes a duplicated HDopen macro from the performance testing programs
2024-08-22 09:12:59 -07:00
github-actions 30c7992c89 Committing clang-format changes 2024-08-12 21:55:45 +00:00
vchoi-hdfgroup.org 57c661ec7e Merge branch 'feature/sparse_data' of https://github.com/vchoi-hdfgroup/hdf5 into feature/sparse_data
Changes for structured chunk support:
--Modify tests in test/sparse_storage.c
--Add H5Pset/get_struct_chunk APIs
--Add examples to doxygen for APIs
2024-08-12 16:50:58 -05:00
Allen Byrne f77b70859f Rework Dynamic Analysis and sanitize testing (#4681)
* Ignore predetermined failing test and check pointer before use

* Rework Analysis process
2024-08-05 09:53:53 -05:00
Scot Breitenfeld 26f052c6f2 Warning fix (#4682)
* warning fix

* warning fix
2024-08-01 11:17:06 -05:00
Allen Byrne f8069fa850 Add tools usage text as doxygen for Tools UG (#4602) 2024-07-15 09:43:20 -05:00
Allen Byrne bbdebee600 These two generators create strings without NUL for testing (#4608) 2024-06-26 20:40:35 -07:00
Allen Byrne 162f01292c Rework the TestExpress usage and refactor dead code (#4590) 2024-06-20 14:01:43 -07:00
Allen Byrneandgithub-actions e7796a60d2 Add page buffer cache command line option to tools (#4562)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-19 07:38:30 -05:00