Skip to content
Browse files

Updated to Blosc 1.1.3. Preparing for 1.0.3 release.

  • Loading branch information...
1 parent ec8c223 commit 51bdcc3cfcb912961731a1a51d300e10a6e6982b @FrancescAlted FrancescAlted committed
Showing with 156 additions and 12 deletions.
  1. +38 −0 RELEASE_NOTES.txt
  2. +99 −0 RELEASING
  3. +1 −1 VERSION
  4. +13 −6 c-blosc/blosc.c
  5. +4 −4 c-blosc/blosc.h
  6. +1 −1 c-blosc/blosclz.c
View
38 RELEASE_NOTES.txt
@@ -0,0 +1,38 @@
+======================================
+ Release notes for python-blosc 1.0.3
+======================================
+
+:Author: Francesc Alted i Abad
+:Contact: faltet@pytables.org
+:URL: http://blosc.pytables.org
+
+
+Changes from 1.0.2 to 1.0.3
+===========================
+
+- Updated to Blosc 1.1.3. Much improved compression ratio when using
+ large blocks (> 64 KB) and high compression levels (> 6) under some
+ circumstances (special data distribution).
+
+
+Changes from 1.0.1 to 1.0.2
+===========================
+
+- Updated to Blosc 1.1.2. Fixes some bugs when dealing with very small
+ buffers (typically smaller than specified typesizes). Closes #1.
+
+
+1.0.1
+=====
+
+- First public release.
+
+
+
+
+
+.. Local Variables:
+.. mode: rst
+.. coding: utf-8
+.. fill-column: 72
+.. End:
View
99 RELEASING
@@ -0,0 +1,99 @@
+=======================
+Releasing python-blosc
+=======================
+
+:Author: Francesc Alted
+:Contact: faltet@pytables.org
+:Date: 2010-11-16
+
+Following are notes useful for releasing python-blosc.
+
+Preliminaries
+-------------
+
+- Make sure that ``RELEASE_NOTES.txt`` and ``ANNOUNCE.txt`` are up to
+ date with the latest news in the release.
+
+- Check that ``VERSION`` file contains the correct number.
+
+Testing
+-------
+
+- After compiling, run:
+
+$ PYTHONPATH=. (or "set PYTHONPATH=." on Win)
+$ export PYTHONPATH=. (not needed on Win)
+$ python blosc/toplevel.py (add -v for verbose mode)
+
+- Run the test suite in different platforms (at least Linux and
+ Windows) and make sure that all tests passes.
+
+Packaging
+---------
+
+- Make the tarball with the command:
+
+ $ python setup.py sdist
+
+ Do a quick check that the tarball is sane.
+
+- Make the binary packages for supported Python versions (2.6 and 2.7
+ currently). Check that installer works correctly.
+
+Uploading
+---------
+
+- Go to the downloads section of the python-blosc project in github
+ and upload the source tarball and the binary packages.
+
+- Upload it also in the PyPi repository.
+
+ * First, register the new version with:
+ $ python setup.py register
+
+ * Then upload the files manually using the PyPI web interface.
+
+Announcing
+----------
+
+- Update the release notes in the python-blosc site:
+
+ https://github.com/FrancescAlted/python-blosc/wiki/Release-notes
+
+ *WARNING*: Remember that the syntax for github pages is "markdown"
+ and not "RestructuredText" (not well supported, apparently). When
+ copying the text from ``RELEASE_NOTES.txt`` to the wiki, double
+ chek that it reads as it should (the ``Preview`` button is your
+ friend!).
+
+- Send an announcement to the NumPy list and python-announce list.
+ Use the ``ANNOUNCE.txt`` file as skeleton (or possibly as the
+ definitive version).
+
+Post-release actions
+--------------------
+
+- Create a tag ``X.Y`` from ``master``. Use the next message::
+
+ Created X.Y tag for python-blosc X.Y.
+
+- Edit ``VERSION`` in master to increment the version to the next
+ minor one (i.e. X.Y --> X.(Y+1)).
+
+Do the next actions in master or any new branch (if applicable):
+
+- Create new headers for adding new features in ``RELEASE_NOTES.txt``
+ and empty the release-specific information in ``ANNOUNCE.txt`` and
+ add this place-holder instead:
+
+ #XXX version-specific blurb XXX#
+
+
+That's all folks!
+
+
+.. Local Variables:
+.. mode: rst
+.. coding: utf-8
+.. fill-column: 70
+.. End:
View
2 VERSION
@@ -1 +1 @@
-1.0.3.dev
+1.0.3
View
19 c-blosc/blosc.c
@@ -577,6 +577,13 @@ int32_t compute_blocksize(int32_t clevel, uint32_t typesize, int32_t nbytes)
blocksize = blocksize / typesize * typesize;
}
+ /* blocksize must not exceed (64 KB * typesize) in order to allow
+ BloscLZ to achieve better compression ratios (the ultimate reason
+ for this is that hash_log in BloscLZ cannot be larger than 15) */
+ if ((blocksize / typesize) > 64*KB) {
+ blocksize = 64 * KB * typesize;
+ }
+
return blocksize;
}
@@ -621,6 +628,12 @@ int blosc_compress(int clevel, int doshuffle, size_t typesize, size_t nbytes,
return -10;
}
+ /* Check typesize limits */
+ if (typesize > BLOSC_MAX_TYPESIZE) {
+ /* If typesize is too large, treat buffer as an 1-byte stream. */
+ typesize = 1;
+ }
+
/* Get the blocksize */
blocksize = compute_blocksize(clevel, (uint32_t)typesize, nbytes_);
@@ -629,12 +642,6 @@ int blosc_compress(int clevel, int doshuffle, size_t typesize, size_t nbytes,
leftover = nbytes_ % blocksize;
nblocks = (leftover>0)? nblocks+1: nblocks;
- /* Check typesize limits */
- if (typesize > BLOSC_MAX_TYPESIZE) {
- /* If typesize is too large, treat buffer as an 1-byte stream. */
- typesize = 1;
- }
-
_dest = (uint8_t *)(dest);
/* Write header for this block */
_dest[0] = BLOSC_VERSION_FORMAT; /* blosc format version */
View
8 c-blosc/blosc.h
@@ -14,11 +14,11 @@
/* Version numbers */
#define BLOSC_VERSION_MAJOR 1 /* for major interface/format changes */
#define BLOSC_VERSION_MINOR 1 /* for minor interface/format changes */
-#define BLOSC_VERSION_RELEASE 2 /* for tweaks, bug-fixes, or development */
+#define BLOSC_VERSION_RELEASE 3 /* for tweaks, bug-fixes, or development */
-#define BLOSC_VERSION_STRING "1.1.2" /* string version. Sync with above! */
-#define BLOSC_VERSION_REVISION "$Rev: 292 $" /* revision version */
-#define BLOSC_VERSION_DATE "$Date:: 2010-11-04 #$" /* date version */
+#define BLOSC_VERSION_STRING "1.1.3" /* string version. Sync with above! */
+#define BLOSC_VERSION_REVISION "$Rev: 296 $" /* revision version */
+#define BLOSC_VERSION_DATE "$Date:: 2010-11-16 #$" /* date version */
/* The *_VERS_FORMAT should be just 1-byte long */
#define BLOSC_VERSION_FORMAT 2 /* Blosc format version, starting at 1 */
View
2 c-blosc/blosclz.c
@@ -109,7 +109,7 @@ int blosclz_compress(int opt_level, const void* input,
uint8_t* op = (uint8_t*) output;
/* Hash table depends on the opt level. Hash_log cannot be larger than 15. */
- uint8_t hash_log_[10] = {-1, 8, 9, 9, 11, 11, 11, 12, 12, 13};
+ uint8_t hash_log_[10] = {-1, 8, 9, 9, 11, 11, 12, 13, 14, 15};
uint8_t hash_log = hash_log_[opt_level];
uint16_t hash_size = 1 << hash_log;
uint16_t *htab;

0 comments on commit 51bdcc3

Please sign in to comment.
Something went wrong with that request. Please try again.