Update NEWS, README, and docs
authorEric Biggers <ebiggers3@gmail.com>
Mon, 16 Feb 2015 05:16:23 +0000 (23:16 -0600)
committerEric Biggers <ebiggers3@gmail.com>
Mon, 16 Feb 2015 06:18:11 +0000 (00:18 -0600)
NEWS
README
doc/man1/wimlib-imagex-capture.1
include/wimlib.h

diff --git a/NEWS b/NEWS
index 14c128b..1ce8e39 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,14 +1,32 @@
 Version 1.7.5-BETA:
-       The performance of LZX compression has been improved by 15-20%.  This is
-       the default compression mode of wimlib-imagex.
+       Improved the LZX compressor.  It is now 15-20% faster than before and
+       provides a slightly better compression ratio.
 
-       The file list printed by 'wimdir' is now sorted by the platform-specific
-       case sensitivity setting, rather than always case sensitively.  This
-       also affects the library function wimlib_iterate_dir_tree().
+       Improved the LZMS compressor.  It now provides a compression ratio
+       slightly better than WIMGAPI while still being faster and using slightly
+       less memory.
+
+       The compression chunk size in solid resources, e.g. when capturing or
+       exporting a WIM file using the '--solid' option, now defaults to 64 MiB
+       (67108864 bytes) instead of 32 MiB (33554432 bytes).  This provides a
+       better compression ratio and is the same value that WIMGAPI uses.  The
+       memory usage is less than 50% higher than wimlib v1.7.4 and is slightly
+       lower than WIMGAPI's memory usage, but if it is too much, it is still
+       possible to choose a lower value, e.g. with the '--solid-chunk-size'
+       option to wimlib-imagex.
+
+       The '--chunk-size' and '--solid-chunk-size' options to wimlib-imagex now
+       accept the 'K', 'M', and 'G' suffixes.
+
+       Files are now sorted by name extension when creating a solid WIM file.
 
        Fixed various issues related to capture/apply of EFS-encrypted files on
        Windows.
 
+       The file list printed by 'wimdir' is now sorted by the platform-specific
+       case sensitivity setting, rather than always case sensitively.  This
+       also affects the library function wimlib_iterate_dir_tree().
+
        On Windows, some error and warning messages have been improved.
 
 Version 1.7.4:
diff --git a/README b/README
index 4baeedc..966ec45 100644 (file)
--- a/README
+++ b/README
@@ -68,8 +68,8 @@ wimlib (and wimlib-imagex) can create XPRESS, LZX, or LZMS compressed WIM files.
 wimlib includes its own compression codecs and does not use the compression API
 available on some versions of Windows.
 
-I have gradually been improving the compression codecs in wimlib.  For XPRESS
-and LZX, they now usually outperform and outcompress the equivalent Microsoft
+I have gradually been improving the compression codecs in wimlib.  For all three
+codecs, they now usually outperform and outcompress the equivalent Microsoft
 implementations.  Although results will vary depending on the data being
 compressed, in the table below I present the results for a common use case:
 compressing an x86 Windows PE image.  Each row displays the compression type,
@@ -86,8 +86,8 @@ implementation in WIMGAPI is included.
   | LZX (quick)      [4]   ||  130,207,195 in 3.8s   |  N/A                   |
   | LZX (normal)     [5]   ||  126,522,539 in 10.4s  |  127,293,240 in 19.2s  |
   | LZX (slow)       [6]   ||  126,042,313 in 17.3s  |  N/A                   |
-  | LZMS (non-solid) [7]   ||  121,909,792 in 11.9s  |  N/A                   |
-  | LZMS (solid)     [8]   ||  93,650,936  in 45.0s  |  88,771,192 in 109.2   |
+  | LZMS (non-solid) [7]   ||  116,150,682 in 25.3s  |  N/A                   |
+  | LZMS (solid)     [8]   ||  88,107,484  in 61.7s  |  88,769,830 in 102.3s  |
   | "WIMBoot"        [9]   ||  167,023,719 in 3.5s   |  169,109,211 in 10.4s  |
   | "WIMBoot" (slow) [10]  ||  165,027,583 in 7.9s   |  N/A                   |
   =============================================================================
@@ -116,8 +116,7 @@ Notes:
 
    [8] '--solid' for wimlib-imagex.  Should be '/compress:recovery' for DISM,
        but only works for /Export-Image, not /Capture-Image.  Compression chunk
-       size in solid resources defaults to 33554432 for wimlib, 67108864 for
-       DISM.
+       size in solid resources defaults to 67108864 bytes in both cases.
 
    [9] '--wimboot' for wimlib-imagex; '/wimboot' for DISM.
        This is really XPRESS compression with 4096 byte chunks, so the same as
@@ -140,7 +139,7 @@ Testing environment:
 
 The compression ratio provided by wimlib is also competitive with commonly used
 archive formats.  Below are file sizes that result when the Canterbury corpus is
-compressed with wimlib (v1.7.2), WIMGAPI (Windows 8.1), and some other
+compressed with wimlib (v1.7.5), WIMGAPI (Windows 8.1), and some other
 formats/programs:
 
      =====================================================
@@ -159,15 +158,11 @@ formats/programs:
      | WIM (WIMGAPI, LZX)                 | 651,866      |
      | WIM (wimlib, LZX normal)           | 624,634      |
      | WIM (wimlib, LZX slow)             | 620,728      |
-     | WIM (wimlib, LZMS non-solid)       | 581,960      |
+     | WIM (wimlib, LZMS non-solid)       | 581,046      |
      | tar.bz2 (bzip, default)            | 565,008      |
      | tar.bz2 (bzip, -9)                 | 565,008      |
-     | WIM (wimlib, LZX solid)            | 527,688      |
-     | WIM (wimlib, LZMS solid)           | 525,990      |
-     | WIM (wimlib, LZMS solid, slow)     | 523,728      |
-     | WIM (wimlib, LZX solid, slow)      | 522,042      |
      | WIM (WIMGAPI, LZMS solid)          | 521,366      |
-     | WIM (wimlib, LZX solid, very slow) | 519,546      |
+     | WIM (wimlib, LZMS solid)           | 515,800      |
      | tar.xz (xz, default)               | 486,916      |
      | tar.xz (xz, -9)                    | 486,904      |
      | 7z  (7-zip, default)               | 484,700      |
index 8c18a27..98ff26b 100644 (file)
@@ -256,9 +256,10 @@ compression, as these are two different things.
 .TP
 \fB--solid-chunk-size\fR=\fISIZE\fR
 Like \fB--chunk-size\fR, but set the chunk size used in solid resources.  The
-default, assuming LZMS compression, is 64MiB (67108864).  This option only has
-an effect when \fB--solid\fR is also specified.  For maximum compatibility with
-the Microsoft implementation, do not use this option.
+default, assuming LZMS compression, is 64MiB (67108864); this requires about
+640MiB of memory per thread.  This option only has an effect when \fB--solid\fR
+is also specified.  For maximum compatibility with the Microsoft implementation,
+do not use this option.
 .TP
 \fB--solid-compress\fR=\fITYPE\fR[:\fILEVEL\fR]
 Like \fB--compress\fR, but set the compression type used in solid resources.
index 47630bc..9a5e4a3 100644 (file)
@@ -511,9 +511,11 @@ enum wimlib_compression_type {
         * later.  Also, chunk sizes larger than <c>2^26</c> are not compatible
         * with the Microsoft implementation.
         *
-        * wimlib's LZMS compressor is currently faster but will usually not
-        * compress as much as the implementation in Microsoft's WIMGAPI
-        * (Windows 8.1).
+        * wimlib's LZMS compressor will, with the default settings, usually
+        * produce a better compression ratio, and work more quickly, than the
+        * implementation in Microsoft's WIMGAPI (as of Windows 8.1).  There is
+        * limited support for non-default compression levels, but compression
+        * will be noticably faster if you choose a level < 35.
         *
         * If using wimlib_create_compressor() to create an LZMS compressor
         * directly, the @p max_block_size parameter may be any positive value