Commit Graph

8438 Commits

Author SHA1 Message Date
Milton Woods
918fef9334 hostname lacks arguments on mingw 2021-09-04 10:28:24 +10:00
Milton Woods
2aabae95cc Avoid setting RPATH in mingw 2021-09-04 10:28:24 +10:00
Milton Woods
d03c0056ae valgrind not supported by mingw 2021-09-04 10:28:24 +10:00
Milton Woods
8525818d90 Support ANSI *printf specifiers on mingw-w64 2021-09-04 10:28:24 +10:00
Dennis Heimbigner
05167d1860 Update Release Notes 2021-09-02 17:07:00 -06:00
Dennis Heimbigner
11fe00ea05 Add filter support to NCZarr
Filter support has three goals:

1. Use the existing HDF5 filter implementations,
2. Allow filter metadata to be stored in the NumCodecs metadata format used by Zarr,
3. Allow filters to be used even when HDF5 is disabled

Detailed usage directions are define in docs/filters.md.

For now, the existing filter API is left in place. So filters
are defined using ''nc_def_var_filter'' using the HDF5 style
where the id and parameters are unsigned integers.

This is a big change since filters affect many parts of the code.

In the following, the terms "compressor" and "filter" and "codec" are generally
used synonomously.

### Filter-Related Changes:
* In order to support dynamic loading of shared filter libraries, a new library was added in the libncpoco directory; it helps to isolate dynamic loading across multiple platforms.
* Provide a json parsing library for use by plugins; this is created by merging libdispatch/ncjson.c with include/ncjson.h.
* Add a new _Codecs attribute to allow clients to see what codecs are being used; let ncdump -s print it out.
* Provide special headers to help support compilation of HDF5 filters when HDF5 is not enabled: netcdf_filter_hdf5_build.h and netcdf_filter_build.h.
* Add a number of new test to test the new nczarr filters.
* Let ncgen parse _Codecs attribute, although it is ignored.

### Plugin directory changes:
* Add support for the Blosc compressor; this is essential because it is the most common compressor used in Zarr datasets. This also necessitated adding a CMake FindBlosc.cmake file
* Add NCZarr support for the big-four filters provided by HDF5: shuffle, fletcher32, deflate (zlib), and szip
* Add a Codec defaulter (see docs/filters.md) for the big four filters.
* Make plugins work with windows by properly adding __declspec declaration.

### Misc. Non-Filter Changes
* Replace most uses of USE_NETCDF4 (deprecated) with USE_HDF5.
* Improve support for caching
* More fixes for path conversion code
* Fix misc. memory leaks
* Add new utility -- ncdump/ncpathcvt -- that does more or less the same thing as cygpath.
* Add a number of new test to test the non-filter fixes.
* Update the parsers
* Convert most instances of '#ifdef _MSC_VER' to '#ifdef _WIN32'
2021-09-02 17:04:26 -06:00
Edward Hartnett
18aebd9a15 added parallel I/O quantize test 2021-09-02 10:21:44 -06:00
Edward Hartnett
f880a63f73 added parallel I/O quantize test 2021-09-02 10:18:42 -06:00
Edward Hartnett
09defc5c72 more tests for quantize 2021-09-02 08:18:27 -06:00
Tobias Kölling
5e0167b992
Merge branch 'Unidata:master' into open_mem_truncated_file 2021-09-02 14:10:50 +02:00
Dennis Heimbigner
424ba45483 ENOTNC4 -> ENOTBUILT 2021-09-01 17:27:29 -06:00
Dennis Heimbigner
ee25bc0af0 Update RELEASENOTES.md 2021-09-01 15:03:40 -06:00
Dennis Heimbigner
7fb01ad4ed Remove no-longer-needed debug directory 2021-09-01 15:00:51 -06:00
Dennis Heimbigner
b81f8b676a Make the fortran cache API always be defined.
re: Issue https://github.com/Unidata/netcdf-c/issues/2096

The methods nc_set_var_chunk_cache_ints and nc_def_var_chunking_ints
are Fortran entry points for accessing the cache. They are not defined
if netcdf-c is built with --disable-hdf5.

Fix is to create dummy versions that do nothing and return NC_NOERR
when invoked. These dummy versions are defined when USE_HDF5 is false.
2021-09-01 14:10:02 -06:00
Edward Hartnett
e2570c322c refactored quantize code 2021-09-01 04:29:24 -06:00
Edward Hartnett
d2656bae0a code clean up 2021-09-01 04:13:31 -06:00
Edward Hartnett
ae3b083e20 turned off failing quantize test 2021-09-01 02:29:17 -06:00
Edward Hartnett
30448b4adc merged 2021-09-01 02:25:05 -06:00
Edward Hartnett
3e056f4f35 more tests 2021-09-01 02:24:28 -06:00
Edward Hartnett
684f73c574 merged master 2021-09-01 02:03:19 -06:00
Ward Fisher
09e0e04227
Merge pull request #2095 from Unidata/condaforge-hdf5-version-check.wif
Revamping the HDF5_VERSION logic.
2021-08-31 13:45:33 -06:00
Ward Fisher
9e6b6bcd6b Correct logic error. 2021-08-31 09:51:19 -06:00
Ward Fisher
5d5a7c4f6e Correct an issue with appveyor builds, specific to systems where a bash shell is not available. 2021-08-31 09:27:51 -06:00
Edward Hartnett
4cd4aff1af testing with fill values 2021-08-31 07:12:46 -06:00
Edward Hartnett
e3c8be89f6 testing with fill values 2021-08-31 07:10:54 -06:00
Edward Hartnett
f809aadc6c testing with fill values 2021-08-31 06:59:59 -06:00
Edward Hartnett
bb40936a7e more testing with type conversion 2021-08-31 06:42:30 -06:00
Ward Fisher
d0561d6a58 Caching HDF5_VERSION string for diagnostic purposes. 2021-08-30 16:29:40 -06:00
Ward Fisher
a777d97cb4 Added logic for checking the version when the HDF5 libraries and include directories are set explicitly. 2021-08-30 15:37:21 -06:00
Ward Fisher
a76245df73 Plugged a hole where HDF5_VERSION wouldn't be checked against minimum HDF5 required version. 2021-08-30 14:21:37 -06:00
Ward Fisher
ebbe3b438e Revamping the HDF5_VERSION logic. 2021-08-30 09:10:14 -06:00
Edward Hartnett
d7b4b9409e undid suggested change to ncdap_test/CMakeLists.txt 2021-08-29 23:12:17 -06:00
Edward Hartnett
1e6ad091b6 type conversion with quantize between float and double 2021-08-29 23:06:16 -06:00
Edward Hartnett
5d1aa2a926 added more documentation, also started on test code for type conversion 2021-08-29 22:34:14 -06:00
Edward Hartnett
f5e2926f02 testing of quantize with scalars 2021-08-29 22:25:57 -06:00
Edward Hartnett
229e101569 quantize now working for NC_DOUBLE 2021-08-29 20:50:19 -06:00
Edward Hartnett
d3e725b3c8 attempting to fix ncdap test on appvayor 2021-08-29 20:39:51 -06:00
Edward Hartnett
ed60a16529 moving quantize to its own function 2021-08-29 08:42:21 -06:00
Edward Hartnett
5aa429cda4 whitespace cleanup 2021-08-29 01:13:39 -06:00
Edward Hartnett
f8b729616e cleanup quantize code 2021-08-29 01:11:24 -06:00
Edward Hartnett
bec26aa3de more quantize testing 2021-08-29 01:04:09 -06:00
Edward Hartnett
eabbd686b0 bitgroom working for floats 2021-08-29 00:30:17 -06:00
Edward Hartnett
2db4311b87
Merge branch 'master' into ejh_quantize_2 2021-08-26 23:05:59 -06:00
Edward Hartnett
8f3da3f375 change name of att to _QuantizeBitgroomNumberOfSignificantDigits 2021-08-26 23:02:03 -06:00
Ward Fisher
f4349efa66
Merge pull request #2087 from edwardhartnett/ejh_logging_info 2021-08-26 17:09:49 -06:00
Edward Hartnett
4f96fcc7b2 improved doxygen documenation 2021-08-26 10:46:43 -06:00
Edward Hartnett
d29436c99d improved doxygen documenation 2021-08-26 10:39:27 -06:00
Edward Hartnett
2b3d2c1edf changed name of attribute to _quantize_bitgroom_number_of_significant_digits 2021-08-26 10:24:14 -06:00
Tobias Kölling
3eaecb41b7 hand over udata to h5->mem a little earlier
I think udata will be freed by the calback as soon as the callbacks are
set and H5Pclose is called, so the backward link should be set up at
that place.

Without this change, local_image_free may be called without a proper
reference to udata, which may raise an assertion:
assert(udata->fapl_image_ptr == udata->app_image_ptr);
while trying to open a broken file.
2021-08-26 16:12:24 +02:00
Edward Hartnett
0265953207 more quantize testing 2021-08-26 07:24:22 -06:00