Commit Graph

23733 Commits

Author SHA1 Message Date
H. Joe Lee
d88466b03e
Fix h5py CI failure (#5007) 2024-10-25 09:29:50 -07:00
Dana Robinson
c93b3c40e5
Get the Autotools version number from H5public.h (#5009)
The version number in the Autotools is scraped from README.md in configure.ac, which makes README.md count as 'code', which is a problem since changes to markdown files are ignored in CI.

This change scrapes the version number from H5public.h instead
of README.md.
2024-10-25 10:11:05 -05:00
Allen Byrne
6122828198
Split out compiler flags into specific compiler files (#4974)
* Split CMake HDFCompileFlags into specific compiler files

* Separate out CXX Flags

* Add Fortran compiler specific files

* Merge in #4816 changes and close #4816

* fix hanging endif

---------

Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
2024-10-25 10:03:35 -05:00
Larry Knox
0439876eeb
Switch default for HDF5_GENERATE_HEADERS (CMake) to OFF. (#5005) 2024-10-24 22:31:15 -07:00
Dana Robinson
4a4ad1c137
Update README.md 2024-10-24 15:06:50 -07:00
Allen Byrne
01957b6cb1
Certain versions of VS produce rounding errors in tfloatsattr (#5000) 2024-10-24 15:26:57 -05:00
Dana Robinson
710e46dff5
Update the README (#5003)
* Drop 1.14 badges
* Update the 2.0.0 features list
* Change the version to 2.0.0 (under development)
2024-10-24 12:47:35 -07: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
Quincey Koziol
2c58357b8f
Refactor H5FD and package initialization (#4934)
- 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
2024-10-24 06:28:40 -07:00
Allen Byrne
26cf1640b2
Add szip documentation to dataset section of user guide (#4997) 2024-10-23 19:37:15 -07:00
Allen Byrne
8efc084646
Updated zlib and libaec compression versions (#4953) 2024-10-23 19:35:34 -07:00
Dana Robinson
399baa1525
Patch Julia CI (#5001)
A recent bugfix to the library changed the return value of an API call
and a Julia CI action expects the incorrect result. This patch
papers over this until the upstream Julia wrapper CI can be fixed.
2024-10-23 21:09:37 -05: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
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
Dana Robinson
63b1442127
Disable Julia CI (#4999)
PR #4968 fixes a bug that causes the Julia CI to fail due to buggy
HDF5 behavior. The Julia CI will need to be updated to properly test
the fixed feature.
2024-10-23 10:12:05 -07:00
Allen Byrne
9a02511d0c
Add remaining CMake workflow versions of autotools workflows (#4998)
* Add warnings as errors workflow for cmake

* Add spc par workflow

* Add workflow call

* Add parallel special
2024-10-23 09:20:33 -07:00
Allen Byrne
baa1e8e292
Prefix remaining CMake options except for CMake BUILD* variables (#4990) 2024-10-22 15:40:54 -07:00
Allen Byrne
720b0057ba
Replace COPYING with LICENSE in workflows (#4989) 2024-10-22 15:39:35 -07:00
Dana Robinson
6db28d6f9f Remove bin/cmakehdf5
This was an unsupported build script to make building the library
with CMake look like building it with the Autotools. It hasn't been
maintained in a long time and we've had it marked as deprecated for
years.
2024-10-22 14:42:56 -05:00
jhendersonHDF
877c6d8832
Move h5_test_init() calls after MPI_Init (#4988) 2024-10-21 08:36:23 -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
ee6c2eed74
Always check for __attribute__() in CMake (#4980)
The CMake compiler checks skip checking for things like __attribute__()
on Windows. Now that Visual Studio can use clang, we should be checking
for this, even on non-MinGW Windows.
2024-10-20 12:47:38 -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
jhendersonHDF
0559ba6881
Remove FALSE from some API tests (#4977) 2024-10-18 12:02:51 -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
Scot Breitenfeld
610648efd2
The h5(p)*c parser retains escaped whitespace character (#4967) 2024-10-18 09:03:42 -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
Michael Cho
e64e1ea881
Fix linker flag in pkg-config file for system zlib (#4957)
Previously was hardcoding `-lzlib-static` which will result in the wrong
linker flags when built with system zlib. It looks like there was logic
to figure out the library name but the resulting `libname` was never used.
2024-10-17 09:20:47 -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
Allen Byrne
7f619c9b13
Do not package debug builds (#4963)
* Do not package debug builds

* Do not try to upload with debug builds
2024-10-17 09:11:52 -07:00
H. Joe Lee
b24cd0261b
Fix h5py GitHub Action (#4962) 2024-10-17 09:11:24 -07:00
Allen Byrne
97420ea678
Remove duplicate and unneeded dmg step in workflow - correct ABI version compare (#4955)
* Rerun dmg on failure - correct ABI version compare

* Remove unneeded dmg step
2024-10-14 15:10:30 -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
Scot Breitenfeld
6b43197b08
Fixed data typing errors discovered by promoting integers and reals. (#4947) 2024-10-11 16:18:48 -07:00
Dana Robinson
5e8fd61750
Announce 1.16.0 --> 2.0.0 (#4950) 2024-10-11 09:10:31 -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
jhendersonHDF
68bffcd45e
Remove old RELEASE.txt note (#4945) 2024-10-10 07:50:43 -07:00
Allen Byrne
bcc795fcf6
Add clang cdash reports and fix libaec compile flags (#4937) 2024-10-08 11:11:41 -05:00
jhendersonHDF
ab913d7ab5
Use H5VLcmp_connector_cls to compare VOL connector IDs in parallel API tests (#4936) 2024-10-08 09:15:48 -05:00
jhendersonHDF
302ba0a7f7
Minor refactoring of testframe.c testing framework (#4930)
Added setup and cleanup callback parameters to TestInit() to perform
setup and cleanup tasks once for whole test program

Removed TestCleanup() function since its functionality is covered by
PerformTests()

Added check of the HDF5_NOCLEANUP environment variable in
GetTestCleanup()
2024-10-07 12:27:09 -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
Scot Breitenfeld
33b28f8014
adding missing Fortran examples and fixed broken links for Fortran (#4927) 2024-10-04 14:55:02 -05:00
Orion Poplawski
0af668f409
Re-add call to AC_CHECK_SIZEOF([__float128]). Fixes #4916. (#4924) 2024-10-04 12:33:15 -07:00