Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package blosc2 for openSUSE:Factory checked in at 2024-03-25 21:07:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/blosc2 (Old) and /work/SRC/openSUSE:Factory/.blosc2.new.1905 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "blosc2" Mon Mar 25 21:07:47 2024 rev:12 rq:1160818 version:2.13.2 Changes: -------- --- /work/SRC/openSUSE:Factory/blosc2/blosc2.changes 2024-02-08 19:02:12.267175787 +0100 +++ /work/SRC/openSUSE:Factory/.blosc2.new.1905/blosc2.changes 2024-03-25 21:09:34.476215250 +0100 @@ -1,0 +2,13 @@ +Fri Mar 22 19:33:40 UTC 2024 - Ben Greiner <[email protected]> + +- Update to 2.13.2 + * Better checking for SSSE3 availability in Visual Studio. + Probably fixes #546 too. Thanks to @t20100 (Thomas Vincent) for + the PR (#586). + * Documented the globally registered filters and codecs. See: + https://www.blosc.org/c-blosc2/reference/utility_variables.html#codes-for-filters + https://www.blosc.org/c-blosc2/reference/utility_variables.html#compressor-codecs +- Reenable previously failing but never acknowledged test + * gh#Blosc/c-blosc2#464 + +------------------------------------------------------------------- Old: ---- c-blosc2-2.13.1.tar.gz New: ---- c-blosc2-2.13.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ blosc2.spec ++++++ --- /var/tmp/diff_new_pack.EMzjBH/_old 2024-03-25 21:09:35.464251527 +0100 +++ /var/tmp/diff_new_pack.EMzjBH/_new 2024-03-25 21:09:35.468251674 +0100 @@ -20,7 +20,7 @@ %define major 2 %define libname lib%{name}-%{major} Name: blosc2 -Version: 2.13.1 +Version: 2.13.2 Release: 0 Summary: A fast, compressed, persistent binary data store library for C License: BSD-2-Clause AND BSD-3-Clause AND MIT @@ -70,7 +70,7 @@ for %{libname}. %prep -%autosetup -p1 -n C-Blosc2-%{version} +%autosetup -p1 -n c-blosc2-%{version} %build %cmake \ @@ -93,9 +93,7 @@ export LD_PRELOAD="$LD_PRELOAD %{buildroot}%{_libdir}/libblosc2.so %{buildroot}%{_libdir}/libblosc2.so.%{major}" # https://github.com/Blosc/c-blosc2/issues/432 single_thread_tests='test_sframe|test_schunk_frame|test_fill_special' -# https://github.com/Blosc/c-blosc2/issues/464 -failing_tests='test_contexts' -%ctest --exclude-regex "${single_thread_tests}|${failing_tests}" +%ctest --exclude-regex "${single_thread_tests}" pushd build ctest --tests-regex "${single_thread_tests}" popd ++++++ c-blosc2-2.13.1.tar.gz -> c-blosc2-2.13.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/C-Blosc2-2.13.1/ANNOUNCE.md new/c-blosc2-2.13.2/ANNOUNCE.md --- old/C-Blosc2-2.13.1/ANNOUNCE.md 2024-01-25 11:19:16.000000000 +0100 +++ new/c-blosc2-2.13.2/ANNOUNCE.md 2024-02-07 14:22:21.000000000 +0100 @@ -1,9 +1,13 @@ -# Announcing C-Blosc2 2.13.1 +# Announcing C-Blosc2 2.13.2 A fast, compressed and persistent binary data store library for C. ## What is new? -This is a patch release for fixing a bug regarding the included files in `b2nd.h`. +This is a patch release for improving of SSSE3 detection on Visual Studio. +Also, documentation for the globally registered filters and codecs has been +added: +https://www.blosc.org/c-blosc2/reference/utility_variables.html#codes-for-filters +https://www.blosc.org/c-blosc2/reference/utility_variables.html#compressor-codecs For more info, please see the release notes in: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/C-Blosc2-2.13.1/RELEASE_NOTES.md new/c-blosc2-2.13.2/RELEASE_NOTES.md --- old/C-Blosc2-2.13.1/RELEASE_NOTES.md 2024-01-25 11:19:16.000000000 +0100 +++ new/c-blosc2-2.13.2/RELEASE_NOTES.md 2024-02-07 14:22:21.000000000 +0100 @@ -1,6 +1,17 @@ Release notes for C-Blosc2 ========================== +Changes from 2.13.1 to 2.13.2 +============================= + +* Better checking for `SSSE3` availability in Visual Studio. Probably fixes #546 too. + Thanks to @t20100 (Thomas Vincent) for the PR (#586). + +* Documented the globally registered filters and codecs. See: + https://www.blosc.org/c-blosc2/reference/utility_variables.html#codes-for-filters + https://www.blosc.org/c-blosc2/reference/utility_variables.html#compressor-codecs + + Changes from 2.13.0 to 2.13.1 ============================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/C-Blosc2-2.13.1/blosc/frame.c new/c-blosc2-2.13.2/blosc/frame.c --- old/C-Blosc2-2.13.1/blosc/frame.c 2024-01-25 11:19:16.000000000 +0100 +++ new/c-blosc2-2.13.2/blosc/frame.c 2024-02-07 14:22:21.000000000 +0100 @@ -1358,7 +1358,7 @@ schunk->metalayers[nmetalayer] = metalayer; // Populate the metalayer string - int8_t nslen = *idxp & (uint8_t)0x1F; + uint8_t nslen = *idxp & (uint8_t)0x1F; idxp += 1; header_pos += nslen; if (header_len < header_pos) { @@ -1538,7 +1538,7 @@ schunk->vlmetalayers[nmetalayer] = metalayer; // Populate the metalayer string - int8_t nslen = *idxp & (uint8_t)0x1F; + uint8_t nslen = *idxp & (uint8_t)0x1F; idxp += 1; trailer_pos += nslen; if (trailer_len < trailer_pos) { @@ -1885,6 +1885,11 @@ } if (chunk_cbytes > (int32_t)prev_alloc) { data_chunk = realloc(data_chunk, chunk_cbytes); + if (data_chunk == NULL) { + BLOSC_TRACE_ERROR("Cannot realloc space for the data_chunk."); + rc = BLOSC2_ERROR_MEMORY_ALLOC; + break; + } prev_alloc = chunk_cbytes; } if (!frame->sframe) { @@ -3119,7 +3124,7 @@ } // Add the new offset - int64_t sframe_chunk_id; + int64_t sframe_chunk_id = -1; if (frame->sframe) { if (offsets[nchunk] < 0) { sframe_chunk_id = -1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/C-Blosc2-2.13.1/doc/Doxyfile new/c-blosc2-2.13.2/doc/Doxyfile --- old/C-Blosc2-2.13.1/doc/Doxyfile 2024-01-25 11:19:16.000000000 +0100 +++ new/c-blosc2-2.13.2/doc/Doxyfile 2024-02-07 14:22:21.000000000 +0100 @@ -7,7 +7,7 @@ CASE_SENSE_NAMES = NO GENERATE_HTML = NO GENERATE_XML = YES -RECURSIVE = NO +RECURSIVE = YES QUIET = YES JAVADOC_AUTOBRIEF = YES WARN_IF_UNDOCUMENTED = NO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/C-Blosc2-2.13.1/doc/reference/utility_variables.rst new/c-blosc2-2.13.2/doc/reference/utility_variables.rst --- old/C-Blosc2-2.13.1/doc/reference/utility_variables.rst 2024-01-25 11:19:16.000000000 +0100 +++ new/c-blosc2-2.13.2/doc/reference/utility_variables.rst 2024-02-07 14:22:21.000000000 +0100 @@ -33,6 +33,14 @@ .. doxygenenumvalue:: BLOSC_TRUNC_PREC +.. doxygenenumvalue:: BLOSC_FILTER_NDCELL + +.. doxygenenumvalue:: BLOSC_FILTER_NDMEAN + +.. doxygenenumvalue:: BLOSC_FILTER_BYTEDELTA + +.. doxygenenumvalue:: BLOSC_FILTER_INT_TRUNC + Compressor codecs ----------------- @@ -46,6 +54,18 @@ .. doxygenenumvalue:: BLOSC_ZSTD +.. doxygenenumvalue:: BLOSC_CODEC_NDLZ + +.. doxygenenumvalue:: BLOSC_CODEC_ZFP_FIXED_ACCURACY + +.. doxygenenumvalue:: BLOSC_CODEC_ZFP_FIXED_PRECISION + +.. doxygenenumvalue:: BLOSC_CODEC_ZFP_FIXED_RATE + +.. doxygenenumvalue:: BLOSC_CODEC_OPENHTJ2K + +.. doxygenenumvalue:: BLOSC_CODEC_GROK + Compressor names ---------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/C-Blosc2-2.13.1/examples/CMakeLists.txt new/c-blosc2-2.13.2/examples/CMakeLists.txt --- old/C-Blosc2-2.13.1/examples/CMakeLists.txt 2024-01-25 11:19:16.000000000 +0100 +++ new/c-blosc2-2.13.2/examples/CMakeLists.txt 2024-02-07 14:22:21.000000000 +0100 @@ -1,7 +1,7 @@ # Examples with correspondingly named source files set(EXAMPLES contexts instrument_codec delta_schunk_ex multithread simple frame_metalayers noinit find_roots schunk_simple frame_simple schunk_postfilter urcodecs urfilters frame_vlmetalayers - sframe_simple frame_backed_schunk compress_file frame_offset frame_roundtrip get_set_slice get_blocksize) + sframe_simple frame_backed_schunk compress_file decompress_file frame_offset frame_roundtrip get_set_slice get_blocksize) add_subdirectory(b2nd) @@ -44,8 +44,12 @@ foreach(example ${EXAMPLES}) if(example STREQUAL compress_file) add_test(NAME test_example_${example} - COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:${example}> - "${PROJECT_BINARY_DIR}/CMakeCache.txt" CMakeCache.b2frame) + COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:${example}> + "${PROJECT_BINARY_DIR}/CMakeCache.txt" CMakeCache.b2frame) + elseif(example STREQUAL decompress_file) + add_test(NAME test_example_${example} + COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:${example}> + CMakeCache.b2frame CMakeCache-2.txt) else() add_test(NAME test_example_${example} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:${example}>) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/C-Blosc2-2.13.1/examples/decompress_file.c new/c-blosc2-2.13.2/examples/decompress_file.c --- old/C-Blosc2-2.13.1/examples/decompress_file.c 1970-01-01 01:00:00.000000000 +0100 +++ new/c-blosc2-2.13.2/examples/decompress_file.c 2024-02-07 14:22:21.000000000 +0100 @@ -0,0 +1,89 @@ +/* + Copyright (c) 2024 The Blosc Development Team <[email protected]> + https://blosc.org + License: BSD 3-Clause (see LICENSE.txt) + + Example program demonstrating use of the Blosc filter from C code. + + To compile this program: + + $ gcc decompress_file.c -o decompress_file -lblosc2 + + Example usage for compression/decompression verification: + + $ sha512sum compress_file + 385c93c..feaf38dbec compress_file + $ ./compress_file compress_file compress_file.bl2 + Blosc version info: 2.13.2.dev ($Date:: 2023-01-25 #$) + Compression ratio: 5.1 MB -> 2.0 MB (2.5x) + Compression time: 0.07 s, 72.8 MB/s + $ ./decompress_file compress_file.bl2 compress_file.1 + Blosc version info: 2.13.2.dev ($Date:: 2023-01-25 #$) + Decompression ratio: 2.0 MB -> 5.1 MB (0.4x) + Decompression time: 0.0343 s, 148.5 MB/s + $ sha512sum compress_file.1 + 385c93c..feaf38dbec compress_file.1 + + */ + +#include <stdio.h> +#include <blosc2.h> + +#define KB 1024. +#define MB (1024*KB) +#define GB (1024*MB) + +int main(int argc, char* argv[]) { + blosc2_init(); + static char* data; + int32_t dsize; + int64_t nbytes, cbytes; + blosc_timestamp_t last, current; + double ttotal; + + if (argc != 3) { + fprintf(stderr, "Usage: decompress_file input_file.b2frame output_file\n"); + return -1; + } + + printf("Blosc version info: %s (%s)\n", + BLOSC2_VERSION_STRING, BLOSC2_VERSION_DATE); + + /* Open an existing super-chunk that is on-disk (frame). */ + blosc2_schunk* schunk = blosc2_schunk_open(argv[1]); + + data = (char*)malloc(schunk->chunksize); + + // Decompress the file + blosc_set_timestamp(&last); + FILE* foutput = fopen(argv[2], "wb"); + if (foutput == NULL) { + printf("Output file cannot be open."); + exit(1); + } + for (int nchunk = 0; nchunk < schunk->nchunks; nchunk++) { + dsize = blosc2_schunk_decompress_chunk(schunk, nchunk, data, schunk->chunksize); + if (dsize < 0) { + fprintf(stderr, "Decompression error. Error code: %d\n", dsize); + return dsize; + } + fwrite(data, dsize, 1, foutput); + } + fclose(foutput); + + /* Gather some info */ + nbytes = schunk->nbytes; + cbytes = schunk->cbytes; + blosc_set_timestamp(¤t); + ttotal = blosc_elapsed_secs(last, current); + printf("Decompression ratio: %.1f MB -> %.1f MB (%.1fx)\n", + (float)cbytes / MB, (float)nbytes / MB, (1. * (float)cbytes) / (float)nbytes); + printf("Decompression time: %.3g s, %.1f MB/s\n", + ttotal, (float)nbytes / (ttotal * MB)); + + /* Free resources */ + free(data); + blosc2_schunk_free(schunk); + blosc2_destroy(); + return 0; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/C-Blosc2-2.13.1/include/blosc2/codecs-registry.h new/c-blosc2-2.13.2/include/blosc2/codecs-registry.h --- old/C-Blosc2-2.13.1/include/blosc2/codecs-registry.h 2024-01-25 11:19:16.000000000 +0100 +++ new/c-blosc2-2.13.2/include/blosc2/codecs-registry.h 2024-02-07 14:22:21.000000000 +0100 @@ -19,11 +19,22 @@ enum { BLOSC_CODEC_NDLZ = 32, + //!< Simple Lempel-Ziv compressor for NDim data. Experimental, mainly for teaching purposes. BLOSC_CODEC_ZFP_FIXED_ACCURACY = 33, + //!< ZFP compressor for fixed accuracy mode. The desired accuracy is set in `compcode_meta`. + //!< See https://github.com/Blosc/c-blosc2/blob/main/plugins/codecs/zfp/README.md BLOSC_CODEC_ZFP_FIXED_PRECISION = 34, + //!< ZFP compressor for fixed precision. The desired precision is set in `compcode_meta`. + //!< See https://github.com/Blosc/c-blosc2/blob/main/plugins/codecs/zfp/README.md BLOSC_CODEC_ZFP_FIXED_RATE = 35, + //!< ZFP compressor for fixed precision. The desired rate is set in `compcode_meta`. + //!< See https://github.com/Blosc/c-blosc2/blob/main/plugins/codecs/zfp/README.md BLOSC_CODEC_OPENHTJ2K = 36, + //!< OpenHTJ2K compressor for JPEG 2000 HT. + //!< See https://github.com/Blosc/blosc2_openhtj2k BLOSC_CODEC_GROK = 37, + //!< Grok compressor for JPEG 2000. + //!< See https://github.com/Blosc/blosc2_grok }; void register_codecs(void); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/C-Blosc2-2.13.1/include/blosc2/filters-registry.h new/c-blosc2-2.13.2/include/blosc2/filters-registry.h --- old/C-Blosc2-2.13.1/include/blosc2/filters-registry.h 2024-01-25 11:19:16.000000000 +0100 +++ new/c-blosc2-2.13.2/include/blosc2/filters-registry.h 2024-02-07 14:22:21.000000000 +0100 @@ -17,10 +17,20 @@ enum { BLOSC_FILTER_NDCELL = 32, + //!< Simple filter for grouping NDim cell data together. + //!< See https://github.com/Blosc/c-blosc2/blob/main/plugins/filters/ndcell/README.md BLOSC_FILTER_NDMEAN = 33, - BLOSC_FILTER_BYTEDELTA_BUGGY = 34, // buggy version. See #524 - BLOSC_FILTER_BYTEDELTA = 35, // fixed version - BLOSC_FILTER_INT_TRUNC = 36, // truncate int precision; positive values in cparams.filters_meta will keep bits; negative values will reduce bits. + //!< Simple filter for replacing content of a NDim cell with its mean value. + //!< See https://github.com/Blosc/c-blosc2/blob/main/plugins/filters/ndmean/README.md + BLOSC_FILTER_BYTEDELTA_BUGGY = 34, + // buggy version. See #524 + BLOSC_FILTER_BYTEDELTA = 35, + //!< Byteshuffle + delta. Sometimes this can represent an advantage over + //!< @ref BLOSC_SHUFFLE or @ref BLOSC_BITSHUFFLE. + //!< See https://www.blosc.org/posts/bytedelta-enhance-compression-toolset/ + BLOSC_FILTER_INT_TRUNC = 36, + //!< Truncate int precision; positive values in `filter_meta` will keep bits; negative values will zero bits. + //!< This is similar to @ref BLOSC_TRUNC_PREC, but for integers instead of floating point data. }; void register_filters(void); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/C-Blosc2-2.13.1/include/blosc2.h new/c-blosc2-2.13.2/include/blosc2.h --- old/C-Blosc2-2.13.1/include/blosc2.h 2024-01-25 11:19:16.000000000 +0100 +++ new/c-blosc2-2.13.2/include/blosc2.h 2024-02-07 14:22:21.000000000 +0100 @@ -83,10 +83,10 @@ /* Version numbers */ #define BLOSC2_VERSION_MAJOR 2 /* for major interface/format changes */ #define BLOSC2_VERSION_MINOR 13 /* for minor interface/format changes */ -#define BLOSC2_VERSION_RELEASE 1 /* for tweaks, bug-fixes, or development */ +#define BLOSC2_VERSION_RELEASE 2 /* for tweaks, bug-fixes, or development */ -#define BLOSC2_VERSION_STRING "2.13.1" /* string version. Sync with above! */ -#define BLOSC2_VERSION_DATE "$Date:: 2023-01-25 #$" /* date version */ +#define BLOSC2_VERSION_STRING "2.13.2" /* string version. Sync with above! */ +#define BLOSC2_VERSION_DATE "$Date:: 2023-02-07 #$" /* date version */ /* The maximum number of dimensions for Blosc2 NDim arrays */ @@ -251,7 +251,7 @@ BLOSC_BITSHUFFLE = 2, //!< Bit-wise shuffle. #endif // BLOSC_H BLOSC_DELTA = 3, //!< Delta filter. - BLOSC_TRUNC_PREC = 4, //!< Truncate mantissa precision; positive values in cparams.filters_meta will keep bits; negative values will reduce bits. + BLOSC_TRUNC_PREC = 4, //!< Truncate mantissa precision; positive values in `filters_meta` will keep bits; negative values will zero bits. BLOSC_LAST_FILTER = 5, //!< sentinel BLOSC_LAST_REGISTERED_FILTER = BLOSC2_GLOBAL_REGISTERED_FILTERS_START + BLOSC2_GLOBAL_REGISTERED_FILTERS - 1, //!< Determine the last registered filter. It is used to check if a filter is registered or not. @@ -2505,6 +2505,11 @@ BLOSC_EXPORT int blosc2_get_slice_nchunks(blosc2_schunk* schunk, int64_t *start, int64_t *stop, int64_t **chunks_idx); +/********************************************************************* + Private functions, these are here for convenience, + and are not meant to be included in public docs +*********************************************************************/ + // Private function needed in b2nd.h for deserializing meta static inline void swap_store(void *dest, const void *pa, int size) { uint8_t *pa_ = (uint8_t *) pa; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/C-Blosc2-2.13.1/plugins/filters/bytedelta/bytedelta.c new/c-blosc2-2.13.2/plugins/filters/bytedelta/bytedelta.c --- old/C-Blosc2-2.13.1/plugins/filters/bytedelta/bytedelta.c 2024-01-25 11:19:16.000000000 +0100 +++ new/c-blosc2-2.13.2/plugins/filters/bytedelta/bytedelta.c 2024-02-07 14:22:21.000000000 +0100 @@ -18,7 +18,15 @@ #include <stdint.h> #include <stdio.h> -#if defined __i386__ || defined _M_IX86 || defined __x86_64__ || defined _M_X64 +/* Define the __SSSE3__ symbol if compiling with Visual C++ and + targeting the minimum architecture level. +*/ +#if !defined(__SSSE3__) && defined(_MSC_VER) && \ + (defined(_M_X64) || (defined(_M_IX86) && _M_IX86_FP >= 2)) + #define __SSSE3__ +#endif + +#if defined(__SSSE3__) // SSSE3 code path for x64/x64 #define CPU_HAS_SIMD 1 #include <emmintrin.h>
