Commit Graph

9378 Commits

Author SHA1 Message Date
Dennis Heimbigner
fb422e696b Update docs/filters.md and RELEASENOTES.md 2023-06-23 13:42:16 -06:00
Dennis Heimbigner
8cab468169 Suppress filters on variables with non-fixed-size types.
re: Discussion https://github.com/Unidata/netcdf-c/discussions/2554
re: PR https://github.com/Unidata/netcdf-c/pull/2231
re: Issue https://github.com/Unidata/netcdf-c/issues/2189

After some discussion, the issue of applying filters on variables
whose type is not fixed size, was resolved as follows:
1. A call to nc_def_var_filter will ignore such filters, but will issue a log warning.
2. Loading (from an existing file) a variable whose type is not fixed-size and which has filters, will cause the variable to be suppressed.

This PR enforces those rules.

### Misc. Other changes
* Add a test case to test the vlen change.
* Make some minor clean-ups in various cmake and automake files.
* Remove unused test
2023-06-21 14:46:22 -06:00
Dennis Heimbigner
9a5a6aa961 revert 2023-06-19 18:49:36 -06:00
Dennis Heimbigner
878dc465c3 mam2 2023-06-19 18:47:02 -06:00
Dennis Heimbigner
cfe6231aa6
Merge pull request #2710 from skosukhin/osx-config-fix
Fix building on macOS
2023-06-12 20:12:04 -06:00
Ward Fisher
5909da23eb
Merge pull request #2708 from DennisHeimbigner/netaccess.dmh
Provide a single option to disable all network access and testing.
2023-06-12 16:29:15 -06:00
Ward Fisher
8c8c10e790 Change the network access nomenclature to be less ambiguous. As it stood, did it refer to networked drives? Other things that are network adjacent? 2023-06-12 15:23:44 -06:00
Ward Fisher
67c1192e5b Removed network access message altogether. 2023-06-12 15:12:55 -06:00
Ward Fisher
8b90ffaeef Changed my mind about the #define. We are still using has_multifilters in nc-config, and I can see where people might want to use this define to write code that works with modern and older versions of netCDF. 2023-06-12 15:12:39 -06:00
Ward Fisher
2ac9239c00
Merge branch 'main' into netaccess.dmh 2023-06-12 15:08:45 -06:00
Ward Fisher
ce97a67bae
Merge pull request #2709 from DennisHeimbigner/urs.dmh
Fix some problems with Earthdata authorization.
2023-06-12 10:44:07 -06:00
Sergey Kosukhin
4cdbef4a02 Fix building on macOS 2023-06-12 11:26:06 +02:00
Dennis Heimbigner
82ca8ca038 Merge branch 'urs.dmh' of https://github.com/DennisHeimbigner/netcdf-c into urs.dmh 2023-06-10 22:30:40 -06:00
Dennis Heimbigner
5fdc8d49bd Remove debugging 2023-06-10 22:29:37 -06:00
Dennis Heimbigner
9aa8ca6d28 Remove extra file 2023-06-10 22:28:59 -06:00
Dennis Heimbigner
9d9a40d2eb Fix missing file 2023-06-10 22:08:40 -06:00
Dennis Heimbigner
a88da4165f add testcase 2023-06-10 22:03:04 -06:00
Dennis Heimbigner
9341904b0b Add earthdata test case 2023-06-10 20:11:26 -06:00
Dennis Heimbigner
f6ebbb04a0 Update release notes 2023-06-10 19:39:20 -06:00
Dennis Heimbigner
1f12c09b07 Update Release Notes 2023-06-10 19:28:43 -06:00
Dennis Heimbigner
12ec5711d7 Fix some problems with Earthdata authorization.
re: Issue https://github.com/Unidata/netcdf-c/issues/2704

The issue reported problems accessing e.g. opendap.earthdata.nasa.gov,
which uses the authentication mechanisms of urs.earthdata.nasa.gov.
The file *docs/auth.md* describes how to setup the proper authorization
mechanisms for earthdata, but there turned out to be some bugs
in the code that prevented this from working.

## Primary Changes
* Add some clarification text to *auth.md*.
* Fix the process for loading and merging *.ncrc* and *.dodsrc* file to conform to documentation.
* Fix *NC_s3urlrebuild* so that non-S3 urls are passed through unchanged.
* Fix a bug in the .rc test *test_rcmerge.sh*.
2023-06-10 18:51:13 -06:00
Dennis Heimbigner
cdbf04956b Provide a single option to disable all network access and testing.
Add the option "--disable-network-access" (automake)
or "-DENABLE_NETWORK_ACCESS=OFF" (cmake).
When disabled, this option transitively disables all
network access capabilities and testing.
If set, this option implies the following:
* --disable-dap
* --disable-byterange
* --disable-s3

This PR answers a request for a feature from Ed Hartnett.

## Misc. Other changes
* Take the opportunity to clean up some old, unused options;
e.g. --enable-multifilters.
* Fix bug in using S3 urls.
2023-06-10 14:08:04 -06:00
Ward Fisher
7cb42a6739
Merge pull request #2689 from mathstuf/awsinclude-noexec
awsincludes: remove executable permissions
2023-06-09 15:17:06 -06:00
Ward Fisher
c44508b749
Merge pull request #2682 from DennisHeimbigner/ncdumptests.dmh
Fix some dependency conditions between some ncdump tests.
2023-06-07 14:55:21 -06:00
Ward Fisher
3695cc0668
Merge branch 'main' into ncdumptests.dmh 2023-06-07 14:55:11 -06:00
Ward Fisher
a082acc9dc
Merge pull request #2663 from poelmanc/patch-1
CMakeLists.txt use ON vs yes, indent
2023-06-07 13:21:09 -06:00
Ward Fisher
032ab7c416
Merge pull request #2699 from DennisHeimbigner/vlenperf.dmh
Improve performance of the nc_reclaim_data and nc_copy_data functions.
2023-06-07 10:49:56 -06:00
Ward Fisher
258ad3fabe
Merge branch 'main' into vlenperf.dmh 2023-06-06 15:59:04 -06:00
Ward Fisher
a3a62f4536 Trigger Github Actions 2023-06-06 15:27:42 -06:00
Ward Fisher
078020e450
Merge pull request #2680 from DennisHeimbigner/sepdata.dmh
Remove obsolete code
2023-06-05 15:41:58 -06:00
Dennis Heimbigner
402123d6f5 Remove conflicts 2023-06-03 14:46:53 -06:00
Ward Fisher
3e1280b24b
Merge pull request #2703 from WardF/fix_cmake_shell_rwx.wif
Adding a workaround for older versions of cmake
2023-05-30 10:26:42 -06:00
Ward Fisher
43b03a4da7
Merge pull request #2690 from DennisHeimbigner/verifyhost.dmh
Fix handling of CURLOPT_CAINFO and CURLOPT_CAPATH
2023-05-30 10:26:02 -06:00
Ward Fisher
d3c2cf236f Adding a workaround for older versions of cmake that are still common in the wild, rather than force manual upgrades. 2023-05-25 13:23:21 -05:00
Ward Fisher
a14bfde418
Merge branch 'main' into verifyhost.dmh 2023-05-25 11:54:49 -06:00
Ward Fisher
feaa6cd676
Merge pull request #2659 from DWesl/patch-2
CI: Test --without-plugin-dir on Cygwin
2023-05-23 12:05:14 -06:00
Ward Fisher
dd75fa343c
Merge branch 'main' into patch-2 2023-05-23 11:15:04 -06:00
Dennis Heimbigner
29740be9da update release notes 2023-05-20 17:36:47 -06:00
Dennis Heimbigner
fb40a72b45 Improve performance of the nc_reclaim_data and nc_copy_data functions.
re: Issue https://github.com/Unidata/netcdf-c/issues/2685
re: PR https://github.com/Unidata/netcdf-c/pull/2179

As noted in PR https://github.com/Unidata/netcdf-c/pull/2179,
the old code did not allow for reclaiming instances of types,
nor for properly copying them. That PR provided new functions
capable of reclaiming/copying instances of arbitrary types.

However, as noted by Issue https://github.com/Unidata/netcdf-c/issues/2685, using these
most general functions resulted in a significant performance
degradation, even for common cases.

This PR attempts to mitigate the cost of using the general
reclaim/copy functions in two ways.

First, the previous functions operating at the top level by
using ncid and typeid arguments. These functions were augmented
with equivalent versions that used the netcdf-c library internal
data structures to allow direct access to needed information.
These new functions are used internally to the library.

The second mitigation involves optimizing the internal functions
by providing early tests for common cases. This avoids
unnecessary recursive function calls.

The overall result is a significant improvement in speed by a
factor of roughly twenty -- your mileage may vary. These
optimized functions are still not as fast as the original (more
limited) functions, but they are getting close. Additional optimizations are
possible. But the cost is a significant "uglification" of the
code that I deemed a step too far, at least for now.

## Misc. Changes
1. Added a test case to check the proper reclamation/copy of complex types.
2. Found and fixed some places where nc_reclaim/copy should have been used.
3. Replaced, in the netcdf-c library, (almost all) occurrences of nc_reclaim_copy with calls to NC_reclaim/copy. This plus the optimizations is the primary speed-up mechanism.
4. In DAP4, the metadata is held in a substrate in-memory file; this required some changes so that the reclaim/copy code accessed that substrate dispatcher rather than the DAP4 dispatcher.
5. Re-factored and isolated the code that computes if a type is (transitively) variable-sized or not.
6. Clean up the reclamation code in ncgen; adding the use of nc_reclaim exposed some memory problems.
2023-05-20 17:11:25 -06:00
Ward Fisher
5dedd76de9
Merge branch 'main' into ncdumptests.dmh 2023-05-16 11:22:15 -06:00
Ward Fisher
bfb8a31aed
Merge pull request #2644 from ZhipengXue97/main
Fix potential dead store
2023-05-15 10:38:59 -06:00
Ward Fisher
4b2851d79e
Merge pull request #2686 from DennisHeimbigner/s3update.dmh
Improve S3 documentation, testing and support
2023-05-11 15:31:43 -06:00
Dennis Heimbigner
6c7e668a04 Remove debugging 2023-05-09 21:18:51 -06:00
Dennis Heimbigner
98477b9f25 ## Addendum [5/9/23]
It turns out that attempting to test S3 using a github action secret is a very complex process. So, this was disabled for github actions. However, a new *run_tests_s3.yml* action file was added that will eventually encapsulate S3 testing.
2023-05-09 21:13:49 -06:00
Dennis Heimbigner
d79f08176a Merge branch 'master' into s3update.dmh 2023-05-09 19:31:18 -06:00
Dennis Heimbigner
5e9a3f66d3 Merge remote-tracking branch 'Unidata/main' 2023-05-09 19:30:47 -06:00
Ward Fisher
c82f0236a9
Merge pull request #2695 from mathstuf/hdf5-api-checks
hdf5open: check for the H5L info structure version directly
2023-05-08 14:47:43 -06:00
Ben Boeckel
51cfad2dbf hdf5open: check for the H5L info structure version directly 2023-05-05 12:25:40 -04:00
Dennis Heimbigner
f928428680 remove push trigger 2023-05-03 16:31:39 -06:00
Dennis Heimbigner
912e76e552 Suppress S3 testing in github actions 2023-05-03 16:27:14 -06:00