Commit Graph

8507 Commits

Author SHA1 Message Date
wkliao
15c75bf5d3 vpath build: use top_srcdir 2022-03-27 17:37:43 -05:00
wkliao
300aa5c84e use AC_MSG_WARN/AC_MSG_NOTICE instead of echo 2022-03-27 17:35:39 -05:00
wkliao
548a33a4f2 fix a compile error 2022-03-27 17:33:41 -05:00
wkliao
826ff7383f use NC_EDIMSCALE for errors related to dimscale 2022-03-25 18:10:52 -05:00
Ward Fisher
cd0f1690e8
Merge pull request #2245 from DennisHeimbigner/filterenhance.dmh 2022-03-21 16:45:27 -06:00
Ward Fisher
c8a7a22b1d
Merge pull request #2256 from WardF/doc_static_page_reorg.wif
Static page/documentation reorganization.
2022-03-21 10:46:20 -06:00
Ward Fisher
9ece4cf546 Added new credits file. 2022-03-21 10:12:44 -06:00
Dennis Heimbigner
a83b7b9fe7 Clean up some ncdap tests.
This is in response to issue https://github.com/Unidata/netcdf-c/issues/2188#issuecomment-1072762308 although it does not fix that problem.
2022-03-18 21:01:40 -06:00
Ward Fisher
6cbeb780fc Removed empty, useless script. 2022-03-18 10:18:05 -06:00
Ward Fisher
6aee687446 Tweak to software.html static page. 2022-03-18 10:17:25 -06:00
Ward Fisher
526552034c
Merge pull request #2250 from WardF/oc_auth_fix.wif
Change order in which auth.html is generated and copied.
2022-03-17 16:40:13 -06:00
Ward Fisher
3accf83725 Change order in which auth.html is generated and copied. 2022-03-17 15:57:16 -06:00
Dennis Heimbigner
6d44ec39f6 1. Fix conflicts with current master.
2. There is a bug in building tinyxml2 under OSX, so as a hack, the absence of an installed libxml2 under OSX will disable libxml2 and DAP4.
2022-03-15 15:33:13 -06:00
Ward Fisher
e0a2236b5a
Merge pull request #2123 from xantares/patch-1
cmake: list zip libs before szip
2022-03-15 09:19:48 -06:00
Ward Fisher
aba6fc0c84
Merge pull request #2247 from WardF/gh2104.wif
Rebase of #2104
2022-03-14 22:13:17 -06:00
Ward Fisher
06cc87ca7f
Merge pull request #2246 from WardF/gh2103.wif
Rebase of #2103
2022-03-14 17:01:58 -06:00
Ward Fisher
5856b8ed9c Merge branch 'mingw-w64-name_path' of https://github.com/mjwoods/netcdf-c into gh2104.wif 2022-03-14 16:11:18 -06:00
Ward Fisher
247ffac282 Merge branch 'mingw-w64-cmake' of https://github.com/mjwoods/netcdf-c into gh2103.wif 2022-03-14 16:08:42 -06:00
Ward Fisher
8152a515c4
Merge pull request #2089 from d70-t/open_mem_truncated_file
Don't assert if trying to open truncated file from memory.
2022-03-14 16:06:56 -06:00
Ward Fisher
d281be2333
Merge branch 'main' into open_mem_truncated_file 2022-03-14 15:02:02 -06:00
Dennis Heimbigner
ad4a3f69b9 typo 2022-03-14 14:36:49 -06:00
Dennis Heimbigner
bbdfec2dcf retry 2022-03-14 14:14:08 -06:00
Dennis Heimbigner
746dbc05f8 more strlcat remove 2022-03-14 14:08:54 -06:00
Dennis Heimbigner
1290022433 remove use of strlcat 2022-03-14 14:00:09 -06:00
Dennis Heimbigner
150e19cf87 Fix new LGTM errors 2022-03-14 13:50:41 -06:00
Dennis Heimbigner
7230cf16b4 fix conflicts 2022-03-14 13:08:14 -06:00
Dennis Heimbigner
092c395c76 Update release notes 2022-03-14 13:06:58 -06:00
Dennis Heimbigner
3ffe7be446 Enhance/Fix filter support
re: Discussion https://github.com/Unidata/netcdf-c/discussions/2214

The primary change is to support so-called "standard filters".
A standard filter is one that is defined by the following
netcdf-c API:
````
int nc_def_var_XXX(int ncid, int varid, size_t nparams, unsigned* params);
int nc_inq_var_XXXX(int ncid, int varid, int* usefilterp, unsigned* params);
````
So for example, zstandard would be a standard filter by defining
the functions *nc_def_var_zstandard* and *nc_inq_var_zstandard*.

In order to define these functions, we need a new dispatch function:
````
int nc_inq_filter_avail(int ncid, unsigned filterid);
````
This function, combined with the existing filter API can be used
to implement arbitrary standard filters using a simple code pattern.
Note that I would have preferred that this function return a list
of all available filters, but HDF5 does not support that functionality.

So this PR implements the dispatch function and implements
the following standard functions:
    + bzip2
    + zstandard
    + blosc
Specific test cases are also provided for HDF5 and NCZarr.
Over time, other specific standard filters will be defined.

## Primary Changes
* Add nc_inq_filter_avail() to netcdf-c API.
* Add standard filter implementations to test use of *nc_inq_filter_avail*.
* Bump the dispatch table version number and add to all the relevant
   dispatch tables (libsrc, libsrcp, etc).
* Create a program to invoke nc_inq_filter_avail so that it is accessible
  to shell scripts.
* Cleanup szip support to properly support szip
  when HDF5 is disabled. This involves detecting
  libsz separately from testing if HDF5 supports szip.
* Integrate shuffle and fletcher32 into the existing
  filter API. This means that, for example, nc_def_var_fletcher32
  is now a wrapper around nc_def_var_filter.
* Extend the Codec defaulting to allow multiple default shared libraries.

## Misc. Changes
* Modify configure.ac/CMakeLists.txt to look for the relevant
  libraries implementing standard filters.
* Modify libnetcdf.settings to list available standard filters
  (including deflate and szip).
* Add CMake test modules to locate libbz2 and libzstd.
* Cleanup the HDF5 memory manager function use in the plugins.
* remove unused file include//ncfilter.h
* remove tests for the HDF5 memory operations e.g. H5allocate_memory.
* Add flag to ncdump to force use of _Filter instead of _Deflate
  or _Shuffle or _Fletcher32. Used for testing.
2022-03-14 12:39:37 -06:00
Ward Fisher
f121e0b39b
Merge pull request #2050 from e4t/strict-aliasing
Fix Compiler Strict Aliasing Rule Violations
2022-03-10 15:22:58 -07:00
Ward Fisher
3bf18fbdb8
Merge pull request #2039 from mathstuf/various-fixes
Various fixes
2022-03-10 14:52:30 -07:00
Ward Fisher
cb0062a245
Merge pull request #2243 from WardF/main
Remove stale badges, add badge for Repology
2022-03-10 14:37:06 -07:00
Ward Fisher
a328318d6b Remove stale badges, add badge for Repology in support of https://github.com/Unidata/netcdf-c//pull/1350 2022-03-10 14:31:54 -07:00
Ward Fisher
84b109ec68
Merge pull request #2239 from seanm/Wstrict-prototypes
Fixed Clang -Wstrict-prototypes warnings
2022-03-09 14:30:45 -07:00
Aaron Kaplan
ead1cd4ad3 Fix incorrect PR link 2022-03-03 13:44:26 -05:00
Sean McBride
bb03191356 Fixed Clang -Wstrict-prototypes warnings 2022-03-01 23:21:24 -05:00
Ward Fisher
c30801f7b0
Merge pull request #2238 from WardF/gh2206.wif
Conflict resolution for #2206
2022-03-01 10:34:30 -08:00
Ward Fisher
7c113cfae4 Merge branch 'h5align.dmh' of https://github.com/DennisHeimbigner/netcdf-c into gh2206.wif 2022-03-01 09:49:13 -08:00
Dennis Heimbigner
bbbc72739f Incorporate Dave Allured's documentation 2022-02-28 14:40:35 -07:00
Dennis Heimbigner
a698b919c1 Update get/set alignment documentation 2022-02-27 16:12:08 -07:00
Ward Fisher
49842fc3f9
Merge pull request #2231 from DennisHeimbigner/vlenfilter.dmh
Explicitly disallow variable length type compression
2022-02-22 16:26:03 -07:00
Ward Fisher
3956e1734a
Merge branch 'main' into vlenfilter.dmh 2022-02-22 16:25:52 -07:00
Ward Fisher
f1c1d7db32
Merge pull request #2211 from Dave-Allured/format-compat-release-notes-2
Release notes for #2176 format compatibility
2022-02-22 16:03:58 -07:00
Charlie Zender
d509396d16 Fix mis-copied comparator 2022-02-21 10:07:57 -08:00
Charlie Zender
dff2cb56ec
Merge branch 'Unidata:main' into csz_bitround 2022-02-20 13:35:59 -08:00
Charlie Zender
4264ee817d Add missing BitRound block to zsync.c 2022-02-20 13:00:37 -08:00
Dennis Heimbigner
78f8dad82b Update Release Notes 2022-02-19 17:22:11 -07:00
Charlie Zender
3299ba534b Add BitRound to ncgen 2022-02-19 16:08:36 -08:00
Charlie Zender
7b8c39f722 Change name to _QuantizeGranularBitRoundNumberOfSignificantDigits. Change identifier from QUANTIZEBR to QUANTIZEGBR to make room for new BitRound token = BR. 2022-02-19 15:55:36 -08:00
Dennis Heimbigner
9b7202bf06 Explicitly disallow variable length type compression
re: https://github.com/Unidata/netcdf-c/issues/2189

Compression of a variable whose type is variable length
fails for all current filters. This is because at some point,
the compression buffer will contain pointers to data instead
of the actual data. Compression of pointers of course is meaningless.

The PR changes the behavior of nc_def_var_filter so that it will
fail with error NC_EFILTER if an attempt is made to add a filter
to a variable whose type is variable-length.

A variable is variable-length if it is of type string or VLEN
or transitively (via a compound type) contains a string or VLEN.

Also added a test case for this.

## Misc Changes
1. Turn off a number of debugging statements
2022-02-19 16:47:31 -07:00
Charlie Zender
b4969df1ef Set bit_xpl_nbr_sgn_dbl=52 not 53. No longer add additional bit to prc_bnr_xpl_rqr for BitGroom NC_DOUBLE. Bugfix maintains original BG behavior, fixes corner case. 2022-02-19 14:48:08 -08:00