Releases: Blosc/c-blosc2
Release 2.6.0
Changes from 2.5.0 to 2.6.0
-
[API] Now it is possible to pass filter ID to a User Defined Filter.
-
Unified convention for BLOSC_SPLITMODE environment variable in Blosc
and Blosc2. The list of valid values is "ALWAYS", "NEVER", "AUTO" and
"FORWARD_COMPAT" now. -
Unified convention for BLOSC_SPLITMODE enum in Blosc and Blosc2 headers.
Release 2.5.0
Changes from 2.4.3 to 2.5.0
-
Fixed a nasty bug that prevented retriving data correctly with large super-chunks (> 2^31 elements).
-
Fixed an issue in
blosc2_schunk_get_slice_buffer()
in the interpretation of thestop
param.
Nowstop
is not part of the selected slice (as advertised). -
Now
blosc2_create_cctx()
supports the same environment variables thanblosc2_compress()
. -
Now
blosc2_create_dctx()
supports the same environment variables thanblosc2_decompress()
. -
Added support for the split mode to be serialized in cframes/sframes.
-
A new
splitmode
field has been added to theblosc2_schunk
structure. -
Changed some fields in
blosc2_preparams
andblosc2_postparams
structs:in
->input
out
->output
out_size
->output_size
out_typesize
->output_typesize
out_offset
->output_offset
This was needed to allow Cython to map the fields (in
is a reserved word in Python).
-
Disabled maskout reads in
blosc2_schunk_get_slice_buffer()
as they are not faster than getitem there. -
Add an intermediate block size in its automatic calculation based on
clevel
.
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.