Skip to content

Releases: Blosc/c-blosc2

Release 2.4.3

23 Oct 12:06
Compare
Choose a tag to compare

Changes from 2.4.2 to 2.4.3

  • Disable automatic split of blocks when not using shuffle. Experiments are showing that cratio is suffering too much, specially when using BloscLZ.

  • Changed xxhash.h and xxhash.c to the newest version. Thanks to Dimitri Papadopoulos.

Release 2.4.2

30 Sep 08:07
Compare
Choose a tag to compare

Changes from 2.4.1 to 2.4.2

  • Fixed BLOSC1_COMPAT mode. If the symbol BLOSC1_COMPAT is defined, one should actually get a correct map for the BLOSC1 API now. Thanks to @MehdiChinoune for pointing this out.

  • Optimizations for blosc2_schunk_get_slice_buffer(). Now more caution has been put in avoiding memcpy's as much as possible.

  • Now blosc2_set_nthreads() also modifies the schunk compression and decompression defaults.

  • Several other fixes, specially when converting schunks to cframe format.

Release 2.4.1

16 Sep 12:40
Compare
Choose a tag to compare

Changes from 2.4.0 to 2.4.1

  • New blosc2_schunk_avoid_cframe_free() for avoiding the free of a cframe when destroying a super-chunk. Mainly useful for situations where you build a super-chunk out of an existing cframe, so you don't want it to be freed automatically.

Release 2.4.0

16 Sep 09:21
Compare
Choose a tag to compare

Changes from 2.3.1 to 2.4.0

  • New blosc2_schunk_get_slice_buffer() and blosc2_schunk_set_slice_buffer()
    functions for getting and setting slices from/to a super-chunk.

Release 2.3.1

24 Aug 12:26
Compare
Choose a tag to compare

Changes from 2.3.0 to 2.3.1

  • Support for negative values for BLOSC_TRUNC_PREC filter. Negatives values mean reduce mantissa precision bits, whereas positive values mean keep precision bits.

  • Re-add the check for small buffers and a new test (see Blosc/python-blosc2#46).

  • Make static a couple of funcs to avoid collisions. This can be useful in case someone tries to compile both C-Blosc and C-Blosc2 in the same name space (however, don't do that unless you know what you are doing; better use dynamic libraries which allow for a much better name space separation).

Release 2.3.0

18 Aug 17:29
Compare
Choose a tag to compare

Changes from 2.2.0 to 2.3.0

  • [API change] In order to allow to compile with both C-Blosc and C-Blosc2 libraries, a new API has been created for the symbols and function names that had collisions. Here are the changed symbols and functions:

    • Blosc2 symbols that take different values than in Blosc1:

      • BLOSC_VERSION_MAJOR -> BLOSC2_VERSION_MAJOR
      • BLOSC_VERSION_MINOR -> BLOSC2_VERSION_MINOR
      • BLOSC_VERSION_RELEASE -> BLOSC2_VERSION_RELEASE
      • BLOSC_VERSION_STRING -> BLOSC2_VERSION_STRING
      • BLOSC_VERSION_DATE -> BLOSC2_VERSION_DATE
      • BLOSC_MAX_OVERHEAD -> BLOSC2_MAX_OVERHEAD
      • BLOSC_MAX_BUFFERSIZE -> BLOSC2_MAX_BUFFERSIZE
    • Original Blosc1 API that takes the blosc1_ prefix:

      • blosc_compress -> blosc1_compress
      • blosc_decompress -> blosc1_decompress
      • blosc_getitem -> blosc1_getitem
      • blosc_get_compressor -> blosc1_get_compressor
      • blosc_set_compressor -> blosc_set_compressor
      • blosc_cbuffer_sizes -> blosc1_cbuffer_sizes
      • blosc_cbuffer_validate -> blosc1_cbuffer_validate
      • blosc_cbuffer_metainfo -> blosc1_cbuffer_metainfo
      • blosc_get_blocksize -> blosc1_get_blocksize
      • blosc_set_blocksize -> blosc1_set_blocksize
      • blosc_set_splitmode -> blosc1_set_splitmode
    • API that has been migrated to blosc2_ prefix

      • blosc_init -> blosc2_init
      • blosc_destroy -> blosc2_destroy
      • blosc_free_resources -> blosc2_free_resources
      • blosc_get_nthreads -> blosc2_get_nthreads
      • blosc_set_nthreads -> blosc2_set_nthreads
      • blosc_compcode_to_compname -> blosc2_compcode_to_compname
      • blosc_compname_to_compcode -> blosc2_compname_to_compcode
      • blosc_list_compressors -> blosc2_list_compressors
      • blosc_get_version_string -> blosc2_get_version_string
      • blosc_get_complib_info -> blosc2_get_complib_info
      • blosc_cbuffer_versions -> blosc2_cbuffer_versions
      • blosc_cbuffer_complib -> blosc2_cbuffer_complib

    It is recommended to migrate to the new API as soon as possible. In the meanwhile, you can still compile with the previous API (corresponding to C-Blosc2 pre-2.3.0), by defining the BLOSC1_COMPAT symbol in your C-Blosc2 app (before including the 'blosc2.h' header).

  • Fixed some issues in converting from super-chunks to frames and back. Now it is possible to do a rountrip without (known) problems.

  • LZ4 codec has been bumped to 1.9.4.

Release 2.2.0

05 Jul 09:14
Compare
Choose a tag to compare

Changes from 2.1.1 to 2.2.0

  • Added new blosc2_schunk_open_offset() and blosc2_schunk_append_file() functions for being able to open a super-chunk inside of file, and append a super-chunk to the end of an existing file. See #409.

  • Protect the update of a field in compression/decompression context. Fixes issues when compressing/decompressing super-chunks in multi-thread mode.

  • Fix issue when inserting a chunk in a super-chunk. See #408.

  • Fix issue when appending a special chunk in a super-chunk. See #407.

  • Optimized the blockshape calculation when using the ZFP plugin in BLOSC_CODEC_ZFP_FIXED_RATE mode. See #406.

  • New blosc2_unidim_to_multidim and blosc2_multidim_to_unidim which are useful for codecs that are meant to deal with multidimensional arrays (like ZFP).

  • Another round of squashing warnings has been carried out. Thanks to Marta Iborra.

  • Added locks in situations where different threads were trying to update the same variable. Thanks to Marta Iborra (and helgrind!).

  • Use proper types for native zlib-ng interface. This allows for linking with zlib-ng native API. Thanks to Klaus Zimmermann.

Release 2.1.1

07 May 10:55
Compare
Choose a tag to compare

Changes from 2.1.0 to 2.1.1

  • Fixed a nasty bug introduced in 2.1.0 that affects to the blosclz codec in ARM arch. See #392.

  • Added support for external zlib-ng (see #393). Thanks to Mark Harfouche.

  • Fixed more compiler warnings (#394). Now C-Blosc2 should be relatively free of them.

  • Fixed more fuzzer issues.

Release 2.1.0

09 Apr 09:22
Compare
Choose a tag to compare

Changes from 2.0.4 to 2.1.0

  • Support of the ZFP lossy codec as a plugin. This is mainly meant for compressing multidimensional arrays of floating point data, so it is better used in combination with Caterva. More info at our blog: https://www.blosc.org/posts/support-lossy-zfp/. Thanks to Oscar Guiñon and Francesc Alted. We are grateful to NumFOCUS for providing a grant for doing this work.

  • Massive cleanup of warnings. Thanks to Marta Iborra.

  • Fixed some bugs in test updates and insertions in 64-bit super chunks. Thanks to Francesc Alted.

  • Fixed the build on FreeBSD/powerpc64le. Thanks to @pkubaj.

  • Updated internal zstd sources to 1.5.2.

  • Updated internal zlib-ng to 2.0.6.

Release 2.0.4

02 Oct 12:21
Compare
Choose a tag to compare

Changes from 2.0.3 to 2.0.4

  • Restored support for type size that is not a divisor of a buffer size for more info. See #356.

  • Implemented a blosc2_rename_urlpath, a portable function to rename a file or a full directory. See #355.

  • Several improvements for packaging. See #354, #357, #359.

  • Fixed a bug in BloscLZ codec (bumped to 2.5.1).