Releases: Blosc/c-blosc2
Release 2.4.3
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
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
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
Changes from 2.3.1 to 2.4.0
- New
blosc2_schunk_get_slice_buffer()
andblosc2_schunk_set_slice_buffer()
functions for getting and setting slices from/to a super-chunk.
Release 2.3.1
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
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
Changes from 2.1.1 to 2.2.0
-
Added new
blosc2_schunk_open_offset()
andblosc2_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
andblosc2_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
Changes from 2.1.0 to 2.1.1
Release 2.1.0
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.