1 | =========================== |
---|
2 | Release notes for C-Blosc |
---|
3 | =========================== |
---|
4 | |
---|
5 | :Author: Francesc Alted |
---|
6 | :Contact: [email protected] |
---|
7 | :URL: http://www.blosc.org |
---|
8 | |
---|
9 | |
---|
10 | Changes from 1.10.0 to 1.10.1 |
---|
11 | ============================= |
---|
12 | |
---|
13 | #XXX version-specific blurb XXX# |
---|
14 | |
---|
15 | |
---|
16 | Changes from 1.9.3 to 1.10.0 |
---|
17 | ============================ |
---|
18 | |
---|
19 | - Initial support for Zstandard (0.7.4). Zstandard (or Zstd for short) is a new |
---|
20 | compression library that allows better compression than Zlib, but that works |
---|
21 | typically faster (and some times much faster), making of it a good match for |
---|
22 | Blosc. |
---|
23 | |
---|
24 | Although the Zstd format is considered stable |
---|
25 | (http://fastcompression.blogspot.com.es/2016_07_03_archive.html), its API is |
---|
26 | maturing very fast, and despite passing the extreme test suite for C-Blosc, |
---|
27 | this codec should be considered in beta for C-Blosc usage purposes. Please |
---|
28 | test it and report back any possible issues you may get. |
---|
29 | |
---|
30 | |
---|
31 | Changes from 1.9.2 to 1.9.3 |
---|
32 | =========================== |
---|
33 | |
---|
34 | - Reverted a mistake introduced in 1.7.1. At that time, bit-shuffling |
---|
35 | was enabled for typesize == 1 (i.e. strings), but the change also |
---|
36 | included byte-shuffling accidentally. This only affected performance, |
---|
37 | but in a quite bad way (a copy was needed). This has been fixed and |
---|
38 | byte-shuffling is not active when typesize == 1 anymore. |
---|
39 | |
---|
40 | |
---|
41 | Changes from 1.9.1 to 1.9.2 |
---|
42 | =========================== |
---|
43 | |
---|
44 | - Check whether Blosc is actually initialized before blosc_init(), |
---|
45 | blosc_destroy() and blosc_free_resources(). This makes the library |
---|
46 | more resistant to different initialization cycles |
---|
47 | (e.g. https://github.com/stevengj/Blosc.jl/issues/19). |
---|
48 | |
---|
49 | |
---|
50 | Changes from 1.9.0 to 1.9.1 |
---|
51 | =========================== |
---|
52 | |
---|
53 | - The internal copies when clevel=0 are made now via memcpy(). At the |
---|
54 | beginning of C-Blosc development, benchmarks where saying that the |
---|
55 | internal, multi-threaded copies inside C-Blosc were faster than |
---|
56 | memcpy(), but 6 years later, memcpy() made greats strides in terms |
---|
57 | of efficiency. With this, you should expect an slight speed |
---|
58 | advantage (10% ~ 20%) when C-Blosc is used as a replacement of |
---|
59 | memcpy() (which should not be the most common scenario out there). |
---|
60 | |
---|
61 | - Added a new DEACTIVATE_AVX2 cmake option to explicitly disable AVX2 |
---|
62 | at build-time. Thanks to James Bird. |
---|
63 | |
---|
64 | - The ``make -jN`` for parallel compilation should work now. Thanks |
---|
65 | to James Bird. |
---|
66 | |
---|
67 | |
---|
68 | Changes from 1.8.1 to 1.9.0 |
---|
69 | =========================== |
---|
70 | |
---|
71 | * New blosc_get_nthreads() function to get the number of threads that |
---|
72 | will be used internally during compression/decompression (set by |
---|
73 | already existing blosc_set_nthreads()). |
---|
74 | |
---|
75 | * New blosc_get_compressor() function to get the compressor that will |
---|
76 | be used internally during compression (set by already existing |
---|
77 | blosc_set_compressor()). |
---|
78 | |
---|
79 | * New blosc_get_blocksize() function to get the internal blocksize to |
---|
80 | be used during compression (set by already existing |
---|
81 | blosc_set_blocksize()). |
---|
82 | |
---|
83 | * Now, when the BLOSC_NOLOCK environment variable is set (to any |
---|
84 | value), the calls to blosc_compress() and blosc_decompress() will |
---|
85 | call blosc_compress_ctx() and blosc_decompress_ctx() under the hood |
---|
86 | so as to avoid the internal locks. See blosc.h for details. This |
---|
87 | allows multi-threaded apps calling the non _ctx() functions to avoid |
---|
88 | the internal locks in C-Blosc. For the not multi-threaded app |
---|
89 | though, it is in general slower to call the _ctx() functions so the |
---|
90 | use of BLOSC_NOLOCK is discouraged. |
---|
91 | |
---|
92 | * In the same vein, from now on, when the BLOSC_NTHREADS environment |
---|
93 | variable is set to an integer, every call to blosc_compress() and |
---|
94 | blosc_decompress() will call blosc_set_nthreads(BLOSC_NTHREADS) |
---|
95 | before the actuall compression/decompression process. See blosc.h |
---|
96 | for details. |
---|
97 | |
---|
98 | * Finally, if BLOSC_CLEVEL, BLOSC_SHUFFLE, BLOSC_TYPESIZE and/or |
---|
99 | BLOSC_COMPRESSOR variables are set in the environment, these will be |
---|
100 | also honored before calling blosc_compress(). |
---|
101 | |
---|
102 | * Calling blosc_init() before any other Blosc call, although |
---|
103 | recommended, is not necessary anymore. The idea is that you can use |
---|
104 | just the basic blosc_compress() and blosc_decompress() and control |
---|
105 | other parameters (nthreads, compressor, blocksize) by using |
---|
106 | environment variables (see above). |
---|
107 | |
---|
108 | |
---|
109 | Changes from 1.8.0 to 1.8.1 |
---|
110 | =========================== |
---|
111 | |
---|
112 | * Disable the use of __builtin_cpu_supports() for GCC 5.3.1 |
---|
113 | compatibility. Details in: |
---|
114 | https://lists.fedoraproject.org/archives/list/[email protected]/thread/ZM2L65WIZEEQHHLFERZYD5FAG7QY2OGB/ |
---|
115 | |
---|
116 | |
---|
117 | Changes from 1.7.1 to 1.8.0 |
---|
118 | =========================== |
---|
119 | |
---|
120 | * The code is (again) compatible with VS2008 and VS2010. This is |
---|
121 | important for compatibility with Python 2.6/2.7/3.3/3.4. |
---|
122 | |
---|
123 | * Introduced a new global lock during blosc_decompress() operation. |
---|
124 | As the blosc_compress() was already guarded by a global lock, this |
---|
125 | means that the compression/decompression is again thread safe. |
---|
126 | However, when using C-Blosc from multi-threaded environments, it is |
---|
127 | important to keep using the *_ctx() functions for performance |
---|
128 | reasons. NOTE: _ctx() functions will be replaced by more powerful |
---|
129 | ones in C-Blosc 2.0. |
---|
130 | |
---|
131 | |
---|
132 | Changes from 1.7.0 to 1.7.1 |
---|
133 | =========================== |
---|
134 | |
---|
135 | * Fixed a bug preventing bitshuffle to work correctly on getitem(). |
---|
136 | Now, everything with bitshuffle seems to work correctly. |
---|
137 | |
---|
138 | * Fixed the thread initialization for blosc_decompress_ctx(). Issue |
---|
139 | #158. Thanks to Chris Webers. |
---|
140 | |
---|
141 | * Fixed a bug in the blocksize computation introduced in 1.7.0. This |
---|
142 | could have been creating segfaults. |
---|
143 | |
---|
144 | * Allow bitshuffle to run on 1-byte typesizes. |
---|
145 | |
---|
146 | * New parametrization of the blocksize to be independent of the |
---|
147 | typesize. This allows a smoother speed throughout all typesizes. |
---|
148 | |
---|
149 | * lz4 and lz4hc codecs upgraded to 1.7.2 (from 1.7.0). |
---|
150 | |
---|
151 | * When calling set_nthreads() but not actually changing the number of |
---|
152 | threads in the internal pool does not teardown and setup it anymore. |
---|
153 | PR #153. Thanks to Santi Villalba. |
---|
154 | |
---|
155 | |
---|
156 | Changes from 1.6.1 to 1.7.0 |
---|
157 | =========================== |
---|
158 | |
---|
159 | * Added a new 'bitshuffle' filter so that the shuffle takes place at a |
---|
160 | bit level and not just at a byte one, which is what it does the |
---|
161 | previous 'shuffle' filter. |
---|
162 | |
---|
163 | For activating this new bit-level filter you only have to pass the |
---|
164 | symbol BLOSC_BITSHUFFLE to `blosc_compress()`. For the previous |
---|
165 | byte-level one, pass BLOSC_SHUFFLE. For disabling the shuffle, pass |
---|
166 | BLOSC_NOSHUFFLE. |
---|
167 | |
---|
168 | This is a port of the existing filter in |
---|
169 | https://github.com/kiyo-masui/bitshuffle. Thanks to Kiyo Masui for |
---|
170 | changing the license and allowing its inclusion here. |
---|
171 | |
---|
172 | * New acceleration mode for LZ4 and BloscLZ codecs that enters in |
---|
173 | operation with complevel < 9. This allows for an important boost in |
---|
174 | speed with minimal compression ratio loss. Francesc Alted. |
---|
175 | |
---|
176 | * LZ4 codec updated to 1.7.0 (r130). |
---|
177 | |
---|
178 | * PREFER_EXTERNAL_COMPLIBS cmake option has been removed and replaced |
---|
179 | by the more fine grained PREFER_EXTERNAL_LZ4, PREFER_EXTERNAL_SNAPPY |
---|
180 | and PREFER_EXTERNAL_ZLIB. In order to allow the use of the new API |
---|
181 | introduced in LZ4 1.7.0, PREFER_EXTERNAL_LZ4 has been set to OFF by |
---|
182 | default, whereas PREFER_EXTERNAL_SNAPPY and PREFER_EXTERNAL_ZLIB |
---|
183 | continues to be ON. |
---|
184 | |
---|
185 | * Implemented SSE2 shuffle support for buffers containing a number of |
---|
186 | elements which is not a multiple of (typesize * vectorsize). Jack |
---|
187 | Pappas. |
---|
188 | |
---|
189 | * Added SSE2 shuffle/unshuffle routines for types larger than 16 |
---|
190 | bytes. Jack Pappas. |
---|
191 | |
---|
192 | * 'test_basic' suite has been split in components for a much better |
---|
193 | granularity on what's a possibly failing test. Also, lots of new |
---|
194 | tests have been added. Jack Pappas. |
---|
195 | |
---|
196 | * Fixed compilation on non-Intel archs (tested on ARM). Zbyszek |
---|
197 | Szmek. |
---|
198 | |
---|
199 | * Modifyied cmake files in order to inform that AVX2 on Visual Studio |
---|
200 | is supported only in 2013 update 2 and higher. |
---|
201 | |
---|
202 | * Added a replacement for stdbool.h for Visual Studio < 2013. |
---|
203 | |
---|
204 | * blosclz codec adds Win64/Intel as a platform supporting unaligned |
---|
205 | addressing. That leads to a speed-up of 2.2x in decompression. |
---|
206 | |
---|
207 | * New blosc_get_version_string() function for retrieving the version |
---|
208 | of the c-blosc library. Useful when linking with dynamic libraries |
---|
209 | and one want to know its version. |
---|
210 | |
---|
211 | * New example (win-dynamic-linking.c) that shows how to link a Blosc |
---|
212 | DLL dynamically in run-time (Windows only). |
---|
213 | |
---|
214 | * The `context.threads_started` is initialized now when decompressing. |
---|
215 | This could cause crashes in case you decompressed before compressing |
---|
216 | (e.g. directly deserializing blosc buffers). @atchouprakov. |
---|
217 | |
---|
218 | * The HDF5 filter has been removed from c-blosc and moved into its own |
---|
219 | repo at: https://github.com/Blosc/hdf5 |
---|
220 | |
---|
221 | * The MS Visual Studio 2008 has been tested with c-blosc for ensuring |
---|
222 | compatibility with extensions for Python 2.6 and up. |
---|
223 | |
---|
224 | |
---|
225 | Changes from 1.6.0 to 1.6.1 |
---|
226 | =========================== |
---|
227 | |
---|
228 | * Support for *runtime* detection of AVX2 and SSE2 SIMD instructions. |
---|
229 | These changes make it possible to compile one single binary that |
---|
230 | runs on a system that supports SSE2 or AVX2 (or neither), so the |
---|
231 | redistribution problem is fixed (see #101). Thanks to Julian Taylor |
---|
232 | and Jack Pappas. |
---|
233 | |
---|
234 | * Added support for MinGW and TDM-GCC compilers for Windows. Thanks |
---|
235 | to yasushima-gd. |
---|
236 | |
---|
237 | * Fixed a bug in blosclz that could potentially overwrite an area |
---|
238 | beyond the output buffer. See #113. |
---|
239 | |
---|
240 | * New computation for blocksize so that larger typesizes (> 8 bytes) |
---|
241 | would benefit of much better compression ratios. Speed is not |
---|
242 | penalized too much. |
---|
243 | |
---|
244 | * New parametrization of the hash table for blosclz codec. This |
---|
245 | allows better compression in many scenarios, while slightly |
---|
246 | increasing the speed. |
---|
247 | |
---|
248 | |
---|
249 | Changes from 1.5.4 to 1.6.0 |
---|
250 | =========================== |
---|
251 | |
---|
252 | * Support for AVX2 is here! The benchmarks with a 4-core Intel |
---|
253 | Haswell machine tell that both compression and decompression are |
---|
254 | accelerated around a 10%, reaching peaks of 9.6 GB/s during |
---|
255 | compression and 26 GB/s during decompression (memcpy() speed for |
---|
256 | this machine is 7.5 GB/s for writes and 11.7 GB/s for reads). Many |
---|
257 | thanks to @littlezhou for this nice work. |
---|
258 | |
---|
259 | * Support for HPET (high precision timers) for the `bench` program. |
---|
260 | This is particularly important for microbenchmarks like bench is |
---|
261 | doing; since they take so little time to run, the granularity of a |
---|
262 | less-accurate timer may account for a significant portion of the |
---|
263 | runtime of the benchmark itself, skewing the results. Thanks to |
---|
264 | Jack Pappas. |
---|
265 | |
---|
266 | |
---|
267 | Changes from 1.5.3 to 1.5.4 |
---|
268 | =========================== |
---|
269 | |
---|
270 | * Updated to LZ4 1.6.0 (r128). |
---|
271 | |
---|
272 | * Fix resource leak in t_blosc. Jack Pappas. |
---|
273 | |
---|
274 | * Better checks during testing. Jack Pappas. |
---|
275 | |
---|
276 | * Dynamically loadable HDF5 filter plugin. Kiyo Masui. |
---|
277 | |
---|
278 | |
---|
279 | Changes from 1.5.2 to 1.5.3 |
---|
280 | =========================== |
---|
281 | |
---|
282 | * Use llabs function (where available) instead of abs to avoid |
---|
283 | truncating the result. Jack Pappas. |
---|
284 | |
---|
285 | * Use C11 aligned_alloc when it's available. Jack Pappas. |
---|
286 | |
---|
287 | * Use the built-in stdint.h with MSVC when available. Jack Pappas. |
---|
288 | |
---|
289 | * Only define the __SSE2__ symbol when compiling with MS Visual C++ |
---|
290 | and targeting x64 or x86 with the correct /arch flag set. This |
---|
291 | avoids re-defining the symbol which makes other compilers issue |
---|
292 | warnings. Jack Pappas. |
---|
293 | |
---|
294 | * Reinitializing Blosc during a call to set_nthreads() so as to fix |
---|
295 | problems with contexts. Francesc Alted. |
---|
296 | |
---|
297 | |
---|
298 | |
---|
299 | Changes from 1.5.1 to 1.5.2 |
---|
300 | =========================== |
---|
301 | |
---|
302 | * Using blosc_compress_ctx() / blosc_decompress_ctx() inside the HDF5 |
---|
303 | compressor for allowing operation in multiprocess scenarios. See: |
---|
304 | https://github.com/PyTables/PyTables/issues/412 |
---|
305 | |
---|
306 | The drawback of this quick fix is that the Blosc filter will be only |
---|
307 | able to use a single thread until another solution can be devised. |
---|
308 | |
---|
309 | |
---|
310 | Changes from 1.5.0 to 1.5.1 |
---|
311 | =========================== |
---|
312 | |
---|
313 | * Updated to LZ4 1.5.0. Closes #74. |
---|
314 | |
---|
315 | * Added the 'const' qualifier to non SSE2 shuffle functions. Closes #75. |
---|
316 | |
---|
317 | * Explicitly call blosc_init() in HDF5 blosc_filter.c, fixing a |
---|
318 | segfault. |
---|
319 | |
---|
320 | * Quite a few improvements in cmake files for HDF5 support. Thanks to |
---|
321 | Dana Robinson (The HDF Group). |
---|
322 | |
---|
323 | * Variable 'class' caused problems compiling the HDF5 filter with g++. |
---|
324 | Thanks to Laurent Chapon. |
---|
325 | |
---|
326 | * Small improvements on docstrings of c-blosc main functions. |
---|
327 | |
---|
328 | |
---|
329 | Changes from 1.4.1 to 1.5.0 |
---|
330 | =========================== |
---|
331 | |
---|
332 | * Added new calls for allowing Blosc to be used *simultaneously* |
---|
333 | (i.e. lock free) from multi-threaded environments. The new |
---|
334 | functions are: |
---|
335 | |
---|
336 | - blosc_compress_ctx(...) |
---|
337 | - blosc_decompress_ctx(...) |
---|
338 | |
---|
339 | See the new docstrings in blosc.h for how to use them. The previous |
---|
340 | API should be completely unaffected. Thanks to Christopher Speller. |
---|
341 | |
---|
342 | * Optimized copies during BloscLZ decompression. This can make BloscLZ |
---|
343 | to decompress up to 1.5x faster in some situations. |
---|
344 | |
---|
345 | * LZ4 and LZ4HC compressors updated to version 1.3.1. |
---|
346 | |
---|
347 | * Added an examples directory on how to link apps with Blosc. |
---|
348 | |
---|
349 | * stdlib.h moved from blosc.c to blosc.h as suggested by Rob Lathm. |
---|
350 | |
---|
351 | * Fix a warning for {snappy,lz4}-free compilation. Thanks to Andrew Schaaf. |
---|
352 | |
---|
353 | * Several improvements for CMakeLists.txt (cmake). |
---|
354 | |
---|
355 | * Fixing C99 compatibility warnings. Thanks to Christopher Speller. |
---|
356 | |
---|
357 | |
---|
358 | Changes from 1.4.0 to 1.4.1 |
---|
359 | =========================== |
---|
360 | |
---|
361 | * Fixed a bug in blosc_getitem() introduced in 1.4.0. Added a test for |
---|
362 | blosc_getitem() as well. |
---|
363 | |
---|
364 | |
---|
365 | Changes from 1.3.6 to 1.4.0 |
---|
366 | =========================== |
---|
367 | |
---|
368 | * Support for non-Intel and non-SSE2 architectures has been added. In |
---|
369 | particular, the Raspberry Pi platform (ARM) has been tested and all |
---|
370 | tests pass here. |
---|
371 | |
---|
372 | * Architectures requiring strict access alignment are supported as well. |
---|
373 | Due to this, arquitectures with a high penalty in accessing unaligned |
---|
374 | data (e.g. Raspberry Pi, ARMv6) can compress up to 2.5x faster. |
---|
375 | |
---|
376 | * LZ4 has been updated to r119 (1.2.0) so as to fix a possible security |
---|
377 | breach. |
---|
378 | |
---|
379 | |
---|
380 | Changes from 1.3.5 to 1.3.6 |
---|
381 | =========================== |
---|
382 | |
---|
383 | * Updated to LZ4 r118 due to a (highly unlikely) security hole. For |
---|
384 | details see: |
---|
385 | |
---|
386 | http://fastcompression.blogspot.fr/2014/06/debunking-lz4-20-years-old-bug-myth.html |
---|
387 | |
---|
388 | |
---|
389 | Changes from 1.3.4 to 1.3.5 |
---|
390 | =========================== |
---|
391 | |
---|
392 | * Removed a pointer from 'pointer from integer without a cast' compiler |
---|
393 | warning due to a bad macro definition. |
---|
394 | |
---|
395 | |
---|
396 | Changes from 1.3.3 to 1.3.4 |
---|
397 | =========================== |
---|
398 | |
---|
399 | * Fixed a false buffer overrun condition. This bug made c-blosc to |
---|
400 | fail, even if the failure was not real. |
---|
401 | |
---|
402 | * Fixed the type of a buffer string. |
---|
403 | |
---|
404 | |
---|
405 | Changes from 1.3.2 to 1.3.3 |
---|
406 | =========================== |
---|
407 | |
---|
408 | * Updated to LZ4 1.1.3 (improved speed for 32-bit platforms). |
---|
409 | |
---|
410 | * Added a new `blosc_cbuffer_complib()` for getting the compression |
---|
411 | library for a compressed buffer. |
---|
412 | |
---|
413 | |
---|
414 | Changes from 1.3.1 to 1.3.2 |
---|
415 | =========================== |
---|
416 | |
---|
417 | * Fix for compiling Snappy sources against MSVC 2008. Thanks to Mark |
---|
418 | Wiebe! |
---|
419 | |
---|
420 | * Version for internal LZ4 and Snappy are now supported. When compiled |
---|
421 | against the external libraries, this info is not available because |
---|
422 | they do not support the symbols (yet). |
---|
423 | |
---|
424 | |
---|
425 | Changes from 1.3.0 to 1.3.1 |
---|
426 | =========================== |
---|
427 | |
---|
428 | * Fixes for a series of issues with the filter for HDF5 and, in |
---|
429 | particular, a problem in the decompression buffer size that made it |
---|
430 | impossible to use the blosc_filter in combination with other ones |
---|
431 | (e.g. fletcher32). See |
---|
432 | https://github.com/PyTables/PyTables/issues/21. |
---|
433 | |
---|
434 | Thanks to Antonio Valentino for the fix! |
---|
435 | |
---|
436 | |
---|
437 | Changes from 1.2.4 to 1.3.0 |
---|
438 | =========================== |
---|
439 | |
---|
440 | A nice handful of compressors have been added to Blosc: |
---|
441 | |
---|
442 | * LZ4 (http://code.google.com/p/lz4/): A very fast |
---|
443 | compressor/decompressor. Could be thought as a replacement of the |
---|
444 | original BloscLZ, but it can behave better is some scenarios. |
---|
445 | |
---|
446 | * LZ4HC (http://code.google.com/p/lz4/): This is a variation of LZ4 |
---|
447 | that achieves much better compression ratio at the cost of being |
---|
448 | much slower for compressing. Decompression speed is unaffected (and |
---|
449 | sometimes better than when using LZ4 itself!), so this is very good |
---|
450 | for read-only datasets. |
---|
451 | |
---|
452 | * Snappy (http://code.google.com/p/snappy/): A very fast |
---|
453 | compressor/decompressor. Could be thought as a replacement of the |
---|
454 | original BloscLZ, but it can behave better is some scenarios. |
---|
455 | |
---|
456 | * Zlib (http://www.zlib.net/): This is a classic. It achieves very |
---|
457 | good compression ratios, at the cost of speed. However, |
---|
458 | decompression speed is still pretty good, so it is a good candidate |
---|
459 | for read-only datasets. |
---|
460 | |
---|
461 | With this, you can select the compression library with the new |
---|
462 | function:: |
---|
463 | |
---|
464 | int blosc_set_complib(char* complib); |
---|
465 | |
---|
466 | where you pass the library that you want to use (currently "blosclz", |
---|
467 | "lz4", "lz4hc", "snappy" and "zlib", but the list can grow in the |
---|
468 | future). |
---|
469 | |
---|
470 | You can get more info about compressors support in you Blosc build by |
---|
471 | using these functions:: |
---|
472 | |
---|
473 | char* blosc_list_compressors(void); |
---|
474 | int blosc_get_complib_info(char *compressor, char **complib, char **version); |
---|
475 | |
---|
476 | |
---|
477 | Changes from 1.2.2 to 1.2.3 |
---|
478 | =========================== |
---|
479 | |
---|
480 | - Added a `blosc_init()` and `blosc_destroy()` so that the global lock |
---|
481 | can be initialized safely. These new functions will also allow other |
---|
482 | kind of initializations/destructions in the future. |
---|
483 | |
---|
484 | Existing applications using Blosc do not need to start using the new |
---|
485 | functions right away, as long as they calling `blosc_set_nthreads()` |
---|
486 | previous to anything else. However, using them is highly recommended. |
---|
487 | |
---|
488 | Thanks to Oscar Villellas for the init/destroy suggestion, it is a |
---|
489 | nice idea! |
---|
490 | |
---|
491 | |
---|
492 | Changes from 1.2.1 to 1.2.2 |
---|
493 | =========================== |
---|
494 | |
---|
495 | - All important warnings removed for all tested platforms. This will |
---|
496 | allow less intrusiveness compilation experiences with applications |
---|
497 | including Blosc source code. |
---|
498 | |
---|
499 | - The `bench/bench.c` has been updated so that it can be compiled on |
---|
500 | Windows again. |
---|
501 | |
---|
502 | - The new web site has been set to: http://www.blosc.org |
---|
503 | |
---|
504 | |
---|
505 | Changes from 1.2 to 1.2.1 |
---|
506 | ========================= |
---|
507 | |
---|
508 | - Fixed a problem with global lock not being initialized. This |
---|
509 | affected mostly to Windows platforms. Thanks to Christoph |
---|
510 | Gohlke for finding the cure! |
---|
511 | |
---|
512 | |
---|
513 | Changes from 1.1.5 to 1.2 |
---|
514 | ========================= |
---|
515 | |
---|
516 | - Now it is possible to call Blosc simultaneously from a parent threaded |
---|
517 | application without problems. This has been solved by setting a |
---|
518 | global lock so that the different calling threads do not execute Blosc |
---|
519 | routines at the same time. Of course, real threading work is still |
---|
520 | available *inside* Blosc itself. Thanks to Thibault North. |
---|
521 | |
---|
522 | - Support for cmake is now included. Linux, Mac OSX and Windows |
---|
523 | platforms are supported. Thanks to Thibault North, Antonio Valentino |
---|
524 | and Mark Wiebe. |
---|
525 | |
---|
526 | - Fixed many compilers warnings (specially about unused variables). |
---|
527 | |
---|
528 | - As a consequence of the above, as minimal change in the API has been |
---|
529 | introduced. That is, the previous API:: |
---|
530 | |
---|
531 | void blosc_free_resources(void) |
---|
532 | |
---|
533 | has changed to:: |
---|
534 | |
---|
535 | int blosc_free_resources(void) |
---|
536 | |
---|
537 | Now, a return value of 0 means that the resources have been released |
---|
538 | successfully. If the return value is negative, then it is not |
---|
539 | guaranteed that all the resources have been freed. |
---|
540 | |
---|
541 | - Many typos were fixed and docs have been improved. The script for |
---|
542 | generating nice plots for the included benchmarks has been improved |
---|
543 | too. Thanks to Valetin Haenel. |
---|
544 | |
---|
545 | |
---|
546 | Changes from 1.1.4 to 1.1.5 |
---|
547 | =========================== |
---|
548 | |
---|
549 | - Fix compile error with msvc compilers (Christoph Gohlke) |
---|
550 | |
---|
551 | |
---|
552 | Changes from 1.1.3 to 1.1.4 |
---|
553 | =========================== |
---|
554 | |
---|
555 | - Redefinition of the BLOSC_MAX_BUFFERSIZE constant as (INT_MAX - |
---|
556 | BLOSC_MAX_OVERHEAD) instead of just INT_MAX. This prevents to produce |
---|
557 | outputs larger than INT_MAX, which is not supported. |
---|
558 | |
---|
559 | - `exit()` call has been replaced by a ``return -1`` in blosc_compress() |
---|
560 | when checking for buffer sizes. Now programs will not just exit when |
---|
561 | the buffer is too large, but return a negative code. |
---|
562 | |
---|
563 | - Improvements in explicit casts. Blosc compiles without warnings |
---|
564 | (with GCC) now. |
---|
565 | |
---|
566 | - Lots of improvements in docs, in particular a nice ascii-art diagram |
---|
567 | of the Blosc format (Valentin Haenel). |
---|
568 | |
---|
569 | - Improvements to the plot-speeds.py (Valentin Haenel). |
---|
570 | |
---|
571 | - [HDF5 filter] Adapted HDF5 filter to use HDF5 1.8 by default |
---|
572 | (Antonio Valentino). |
---|
573 | |
---|
574 | - [HDF5 filter] New version of H5Z_class_t definition (Antonio Valentino). |
---|
575 | |
---|
576 | |
---|
577 | Changes from 1.1.2 to 1.1.3 |
---|
578 | =========================== |
---|
579 | |
---|
580 | - Much improved compression ratio when using large blocks (> 64 KB) and |
---|
581 | high compression levels (> 6) under some circumstances (special data |
---|
582 | distribution). Closes #7. |
---|
583 | |
---|
584 | |
---|
585 | Changes from 1.1.1 to 1.1.2 |
---|
586 | =========================== |
---|
587 | |
---|
588 | - Fixes for small typesizes (#6 and #1 of python-blosc). |
---|
589 | |
---|
590 | |
---|
591 | Changes from 1.1 to 1.1.1 |
---|
592 | ========================= |
---|
593 | |
---|
594 | - Added code to avoid calling blosc_set_nthreads more than necessary. |
---|
595 | That will improve performance up to 3x or more, specially for small |
---|
596 | chunksizes (< 1 MB). |
---|
597 | |
---|
598 | |
---|
599 | Changes from 1.0 to 1.1 |
---|
600 | ======================= |
---|
601 | |
---|
602 | - Added code for emulating pthreads API on Windows. No need to link |
---|
603 | explicitly with pthreads lib on Windows anymore. However, performance |
---|
604 | is a somewhat worse because the new emulation layer does not support |
---|
605 | the `pthread_barrier_wait()` call natively. But the big improvement |
---|
606 | in installation easiness is worth this penalty (most specially on |
---|
607 | 64-bit Windows, where pthreads-win32 support is flaky). |
---|
608 | |
---|
609 | - New BLOSC_MAX_BUFFERSIZE, BLOSC_MAX_TYPESIZE and BLOSC_MAX_THREADS |
---|
610 | symbols are available in blosc.h. These can be useful for validating |
---|
611 | parameters in clients. Thanks to Robert Smallshire for suggesting |
---|
612 | that. |
---|
613 | |
---|
614 | - A new BLOSC_MIN_HEADER_LENGTH symbol in blosc.h tells how many bytes |
---|
615 | long is the minimum length of a Blosc header. `blosc_cbuffer_sizes()` |
---|
616 | only needs these bytes to be passed to work correctly. |
---|
617 | |
---|
618 | - Removed many warnings (related with potentially dangerous type-casting |
---|
619 | code) issued by MSVC 2008 in 64-bit mode. |
---|
620 | |
---|
621 | - Fixed a problem with the computation of the blocksize in the Blosc |
---|
622 | filter for HDF5. |
---|
623 | |
---|
624 | - Fixed a problem with large datatypes. See |
---|
625 | http://www.pytables.org/trac/ticket/288 for more info. |
---|
626 | |
---|
627 | - Now Blosc is able to work well even if you fork an existing process |
---|
628 | with a pool of threads. Bug discovered when PyTables runs in |
---|
629 | multiprocess environments. See http://pytables.org/trac/ticket/295 |
---|
630 | for details. |
---|
631 | |
---|
632 | - Added a new `blosc_getitem()` call to allow the retrieval of items in |
---|
633 | sizes smaller than the complete buffer. That is useful for the carray |
---|
634 | project, but certainly for others too. |
---|
635 | |
---|
636 | |
---|
637 | Changes from 0.9.5 to 1.0 |
---|
638 | ========================= |
---|
639 | |
---|
640 | - Added a filter for HDF5 so that people can use Blosc outside PyTables, |
---|
641 | if they want to. |
---|
642 | |
---|
643 | - Many small improvements, specially in README files. |
---|
644 | |
---|
645 | - Do not assume that size_t is uint_32 for every platform. |
---|
646 | |
---|
647 | - Added more protection for large buffers or in allocation memory |
---|
648 | routines. |
---|
649 | |
---|
650 | - The src/ directory has been renamed to blosc/. |
---|
651 | |
---|
652 | - The `maxbytes` parameter in `blosc_compress()` has been renamed to |
---|
653 | `destsize`. This is for consistency with the `blosc_decompress()` |
---|
654 | parameters. |
---|
655 | |
---|
656 | |
---|
657 | Changes from 0.9.4 to 0.9.5 |
---|
658 | =========================== |
---|
659 | |
---|
660 | - Now, compression level 0 is allowed, meaning not compression at all. |
---|
661 | The overhead of this mode will be always BLOSC_MAX_OVERHEAD (16) |
---|
662 | bytes. This mode actually represents using Blosc as a basic memory |
---|
663 | container. |
---|
664 | |
---|
665 | - Supported a new parameter `maxbytes` for ``blosc_compress()``. It |
---|
666 | represents a maximum of bytes for output. Tests unit added too. |
---|
667 | |
---|
668 | - Added 3 new functions for querying different metadata on compressed |
---|
669 | buffers. A test suite for testing the new API has been added too. |
---|
670 | |
---|
671 | |
---|
672 | Changes from 0.9.3 to 0.9.4 |
---|
673 | =========================== |
---|
674 | |
---|
675 | - Support for cross-platform big/little endian compatibility in Blosc |
---|
676 | headers has been added. |
---|
677 | |
---|
678 | - Fixed several failures exposed by the extremesuite. The problem was a |
---|
679 | bad check for limits in the buffer size while compressing. |
---|
680 | |
---|
681 | - Added a new suite in bench.c called ``debugsuite`` that is |
---|
682 | appropriate for debugging purposes. Now, the ``extremesuite`` can be |
---|
683 | used for running the complete (and extremely long) suite. |
---|
684 | |
---|
685 | |
---|
686 | Changes from 0.9.0 to 0.9.3 |
---|
687 | =========================== |
---|
688 | |
---|
689 | - Fixed several nasty bugs uncovered by the new suites in bench.c. |
---|
690 | Thanks to Tony Theodore and Gabriel Beckers for their (very) |
---|
691 | responsive beta testing and feedback. |
---|
692 | |
---|
693 | - Added several modes (suites), namely ``suite``, ``hardsuite`` and |
---|
694 | ``extremehardsuite`` in bench.c so as to allow different levels of |
---|
695 | testing. |
---|
696 | |
---|
697 | |
---|
698 | Changes from 0.8.0 to 0.9 |
---|
699 | ========================= |
---|
700 | |
---|
701 | - Internal format version bumped to 2 in order to allow an easy way to |
---|
702 | indicate that a buffer is being saved uncompressed. This is not |
---|
703 | supported yet, but it might be in the future. |
---|
704 | |
---|
705 | - Blosc can use threads now for leveraging the increasing number of |
---|
706 | multi-core processors out there. See README-threaded.txt for more |
---|
707 | info. |
---|
708 | |
---|
709 | - Added a protection for MacOSX so that it has to not link against |
---|
710 | posix_memalign() funtion, which seems not available in old versions of |
---|
711 | MacOSX (for example, Tiger). At nay rate, posix_memalign() is not |
---|
712 | necessary on Mac because 16 bytes alignment is ensured by default. |
---|
713 | Thanks to Ivan Vilata. Fixes #3. |
---|