From 9f8ed23b5bb95786bb7fafb0db213136ea14732f Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Sat, 27 Jan 2018 22:23:26 -0800 Subject: [PATCH] bumped version number to v1.3.4 also added a paragraph on using compression level with training mode as this is a recurrent question (see for example #1004) --- doc/zstd_manual.html | 12 +++++++++--- lib/dictBuilder/zdict.h | 8 ++++---- lib/zstd.h | 2 +- programs/zstd.1 | 10 +++++++--- programs/zstd.1.md | 14 +++++++++----- 5 files changed, 30 insertions(+), 16 deletions(-) diff --git a/doc/zstd_manual.html b/doc/zstd_manual.html index 473d5be8b..4dcf5a58a 100644 --- a/doc/zstd_manual.html +++ b/doc/zstd_manual.html @@ -1,10 +1,10 @@ -zstd 1.3.3 Manual +zstd 1.3.4 Manual -

zstd 1.3.3 Manual

+

zstd 1.3.4 Manual


Contents

    @@ -582,10 +582,16 @@ size_t ZSTD_initCStream_usingCDict_advanced(ZSTD_CStream* zcs, const ZSTD_CDict* If pledgedSrcSize is not known at reset time, use macro ZSTD_CONTENTSIZE_UNKNOWN. If pledgedSrcSize > 0, its value must be correct, as it will be written in header, and controlled at the end. For the time being, pledgedSrcSize==0 is interpreted as "srcSize unknown" for compatibility with older programs, - but it may change to mean "empty" in some future version, so prefer using macro ZSTD_CONTENTSIZE_UNKNOWN. + but it will change to mean "empty" in future version, so use macro ZSTD_CONTENTSIZE_UNKNOWN instead. @return : 0, or an error code (which can be tested using ZSTD_isError())


    +
    typedef struct {
    +    unsigned long long ingested;
    +    unsigned long long consumed;
    +    unsigned long long produced;
    +} ZSTD_frameProgression;
    +

    Advanced Streaming decompression functions

    typedef enum { DStream_p_maxWindowSize } ZSTD_DStreamParameter_e;
     size_t ZSTD_setDStreamParameter(ZSTD_DStream* zds, ZSTD_DStreamParameter_e paramType, unsigned paramValue);   /* obsolete : this API will be removed in a future version */
     size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dict, size_t dictSize); /**< note: no dictionary will be used if dict == NULL or dictSize < 8 */
    diff --git a/lib/dictBuilder/zdict.h b/lib/dictBuilder/zdict.h
    index 92f66415f..ad459c2d7 100644
    --- a/lib/dictBuilder/zdict.h
    +++ b/lib/dictBuilder/zdict.h
    @@ -104,9 +104,9 @@ typedef struct {
      *        It's recommended that total size of all samples be about ~x100 times the target size of dictionary.
      */
     ZDICTLIB_API size_t ZDICT_trainFromBuffer_cover(
    -    void *dictBuffer, size_t dictBufferCapacity,
    +          void *dictBuffer, size_t dictBufferCapacity,
         const void *samplesBuffer, const size_t *samplesSizes, unsigned nbSamples,
    -    ZDICT_cover_params_t parameters);
    +          ZDICT_cover_params_t parameters);
     
     /*! ZDICT_optimizeTrainFromBuffer_cover():
      * The same requirements as above hold for all the parameters except `parameters`.
    @@ -125,9 +125,9 @@ ZDICTLIB_API size_t ZDICT_trainFromBuffer_cover(
      * Note: ZDICT_optimizeTrainFromBuffer_cover() requires about 8 bytes of memory for each input byte and additionally another 5 bytes of memory for each byte of memory for each thread.
      */
     ZDICTLIB_API size_t ZDICT_optimizeTrainFromBuffer_cover(
    -    void* dictBuffer, size_t dictBufferCapacity,
    +          void* dictBuffer, size_t dictBufferCapacity,
         const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples,
    -    ZDICT_cover_params_t* parameters);
    +          ZDICT_cover_params_t* parameters);
     
     /*! ZDICT_finalizeDictionary():
      * Given a custom content as a basis for dictionary, and a set of samples,
    diff --git a/lib/zstd.h b/lib/zstd.h
    index a1b8ea19b..5b0ce7e87 100644
    --- a/lib/zstd.h
    +++ b/lib/zstd.h
    @@ -59,7 +59,7 @@ extern "C" {
     /*------   Version   ------*/
     #define ZSTD_VERSION_MAJOR    1
     #define ZSTD_VERSION_MINOR    3
    -#define ZSTD_VERSION_RELEASE  3
    +#define ZSTD_VERSION_RELEASE  4
     
     #define ZSTD_VERSION_NUMBER  (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE)
     ZSTDLIB_API unsigned ZSTD_versionNumber(void);   /**< useful to check dll version */
    diff --git a/programs/zstd.1 b/programs/zstd.1
    index d253124fd..6d772d32e 100644
    --- a/programs/zstd.1
    +++ b/programs/zstd.1
    @@ -1,5 +1,5 @@
     .
    -.TH "ZSTD" "1" "December 2017" "zstd 1.3.3" "User Commands"
    +.TH "ZSTD" "1" "2018-01-27" "zstd 1.3.3" "User Commands"
     .
     .SH "NAME"
     \fBzstd\fR \- zstd, zstdmt, unzstd, zstdcat \- Compress or decompress \.zst files
    @@ -136,7 +136,7 @@ force write to standard output, even if it is the console
     .
     .TP
     \fB\-\-[no\-]sparse\fR
    -enable / disable sparse FS support, to make files with many zeroes smaller on disk\. Creating sparse files may save disk space and speed up decompression by reducing the amount of disk I/O\. default : enabled when output is into a file, and disabled when output is stdout\. This setting overrides default and can force sparse mode over stdout\.
    +enable / disable sparse FS support, to make files with many zeroes smaller on disk\. Creating sparse files may save disk space and speed up decompression by reducing the amount of disk I/O\. default: enabled when output is into a file, and disabled when output is stdout\. This setting overrides default and can force sparse mode over stdout\.
     .
     .TP
     \fB\-\-rm\fR
    @@ -179,7 +179,7 @@ add integrity check computed from uncompressed data (default: enabled)
     All arguments after \fB\-\-\fR are treated as files
     .
     .SH "DICTIONARY BUILDER"
    -\fBzstd\fR offers \fIdictionary\fR compression, useful for very small files and messages\. It\'s possible to train \fBzstd\fR with some samples, the result of which is saved into a file called a \fBdictionary\fR\. Then during compression and decompression, reference the same dictionary\. It will improve compression ratio of small files\. Typical gains range from 10% (at 64KB) to x5 better (at <1KB)\.
    +\fBzstd\fR offers \fIdictionary\fR compression, which greatly improves efficiency on small files and messages\. It\'s possible to train \fBzstd\fR with a set of samples, the result of which is saved into a file called a \fBdictionary\fR\. Then during compression and decompression, reference the same dictionary, using command \fB\-D dictionaryFileName\fR\. Compression of small files similar to the sample set will be greatly improved\.
     .
     .TP
     \fB\-\-train FILEs\fR
    @@ -197,6 +197,10 @@ Dictionary saved into \fBfile\fR (default name: dictionary)\.
     Limit dictionary to specified size (default: 112640)\.
     .
     .TP
    +\fB\-#\fR
    +Use \fB#\fR compression level during training (optional)\. Will generate statistics more tuned for selected compression level, resulting in a \fIsmall\fR compression ratio improvement for this level\.
    +.
    +.TP
     \fB\-B#\fR
     Split input files in blocks of size # (default: no split)
     .
    diff --git a/programs/zstd.1.md b/programs/zstd.1.md
    index c5ff53567..4d9ec2fce 100644
    --- a/programs/zstd.1.md
    +++ b/programs/zstd.1.md
    @@ -171,12 +171,12 @@ the last one takes effect.
     DICTIONARY BUILDER
     ------------------
     `zstd` offers _dictionary_ compression,
    -useful for very small files and messages.
    -It's possible to train `zstd` with some samples,
    +which greatly improves efficiency on small files and messages.
    +It's possible to train `zstd` with a set of samples,
     the result of which is saved into a file called a `dictionary`.
    -Then during compression and decompression, reference the same dictionary.
    -It will improve compression ratio of small files.
    -Typical gains range from 10% (at 64KB) to x5 better (at <1KB).
    +Then during compression and decompression, reference the same dictionary,
    +using command `-D dictionaryFileName`.
    +Compression of small files similar to the sample set will be greatly improved.
     
     * `--train FILEs`:
         Use FILEs as training set to create a dictionary.
    @@ -192,6 +192,10 @@ Typical gains range from 10% (at 64KB) to x5 better (at <1KB).
         Dictionary saved into `file` (default name: dictionary).
     * `--maxdict=#`:
         Limit dictionary to specified size (default: 112640).
    +* `-#`:
    +    Use `#` compression level during training (optional).
    +    Will generate statistics more tuned for selected compression level,
    +    resulting in a _small_ compression ratio improvement for this level.
     * `-B#`:
         Split input files in blocks of size # (default: no split)
     * `--dictID=#`: