Commit Graph

23745 Commits

Author SHA1 Message Date
bmribler
5bdd379a64
Fix segfault in h5dump caused by corrupted btree node level (#5002)
Added another argument, expected node level, to H5B__iterate_helper to pass down
to H5B__cache_deserialize for checking the decoded node level.  When this expected
level is not known, the new macro H5_UNKNOWN_NODELEVEL (-1) will be used for not
checking the level.

Fixes GH-4432
2024-10-29 00:53:50 -07:00
Allen Byrne
f4dbb810c1
Add msys2 workflow for CMake (#4991)
Also updates CMake configure checks to build HDF5 w/ MSYS2
2024-10-28 16:28:29 -07:00
Allen Byrne
cad28e9659
Add workflow step to test expected test failures (#5023) 2024-10-28 09:56:31 -07:00
Dana Robinson
60dd8526d7
Fix bad private FUNC_ENTER macros (#5020)
The name check in the FUNC_ENTER checks for private FUNC_ENTER macros
(which have NOAPI in the name) only checked for not having the
public form (H5Xfoo), so they could be inappropriately applied to
package-level functions (H5X__foo).

This PR fixes the bug and updates the inappropriate macros.
2024-10-28 07:35:33 -07:00
Dana Robinson
d8953c0dba
bin/restore deleted checked-in files (#5017)
This was not fixed when we started checking in files that were
generated by the Perl scripts in bin
2024-10-28 06:59:26 -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
a38d87a631
Clean up comments in FUNC_ENTER macros (#5019)
* Clean up comments in FUNC_ENTER macros
2024-10-28 05:54:39 -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
Dana Robinson
8b2f40f2ff
Remove duplicate sec2 VFD ID variable (#5013) 2024-10-25 15:12:11 -07:00
Allen Byrne
ee61dd51ac
Move cygwin workflow to cdash reports in daily-build (#5004) 2024-10-25 09:33:57 -07:00
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