========== WinRK file archiver version 3.1.2 ==========

1. Description

WinRK is a new high performance file archiver. Built from the ground up for better compression and security, it provides the best platform for managing and creating file archives.

WinRK is distributed as Shareware, and this means that you will be given 30 days in which to trial the software, after which time a licence key may be purchased to unlock the full version of WinRK.

NB. Archives created with v3.0.2beta are no longer supported within this release. 
NB. Audio (WAV, MOD etc.) files compressed with v3.0.3b are not compatible with this release and cannot be decoded.
              

2. Release Notes

The following changes have been made:
v3.1.2 - 9/9/2008:
* Fixed a bug in the code decompress handler causing a crash when decompressing a subset of fragments from a block.
* Fixed a bug causing a CRC error in rare cases when decompressing with fast code compression (eg. fastest profile).
* Modified the trial period warning code to ensure warning is always displayed. Required so that product key may be entered even if trial has not ended.
* Fixed bug in field validation of audio order in compression profile page, causing text entry to be essentially impossible.
* Updated tool tips for compression profile page to reflect new audio order, and to provide more information about ranges.
* Modified the calculation of compression memory sizes in order to more correctly reflect large model sizes.
* Updated plugins for x64 build, including iso_plugin.dll and rar_plugin.dll.
* Fixed synchronisation error in tree control causing pure virtual function call error occasionally, especially when applying large modifications.
* Replaced SMP queues with new lock-free version which is easier to verify correctness. Should improve stability for SMP encoding/decoding.
* Modified file open routine to remove potential timing conflicts between threads during SMP extraction of fragments from the same file.
* Modified overwrite prompt logic for SMP so that prompts are not needlessly repeated for each worker thread.
* Improved cancel button support for SMP decoding (NB. encoding and update still need further work).
* Now throw error when disk write fails due to low disk space.
* Fixed bug causing drag and drop extraction to an outside explorer window to fail.
* Switched to a lightweight reader-writer lock to improve speed and reduce windows API HANDLE usage.
* Fixed major stability bug (memory corruption) caused by incorrect destruction of a window object. (Potentially the cause of all remaining stability issues.)
* Replaced skip-list collection with simpler and more robust map collection synchronised by reader writer lock.
* Modified create archive script command to create new folders if they don't exist.
* Fixed bug in shell extension where archive container was being deleted twice, causing heap corruption.
* Fixed memory leak when closing an archive.
* Fixed rare synchronisation issue where thread object was deleted whilst the thread was still running.
* Fixed thread handle leak.
* Improved lightweight mutex to reduce Event handle usage.
* Fixed rare synchronisation issue where ref counted object was grabbed by another thread while being deleted, causing heap corruption.
* Replaced large block allocator in Win64 build to reduce virtual memory usage over time.
* Modified all singleton objects to use thread safe initialisation.
* Fixed bug in font rendering (Device Context handle issue) leading to occasional missing text with the Shell Extension.

v3.1.1 - 17/3/2008:
* Fixed bug with benchmark when choosing 100kb size.
* Fixed bug in archive volume processing which caused hang when writing >4GB sections to archive.
* Fixed bug causing no CRCs to be generated when choosing Store compression method.
* Modified PDF handler to correctly store compressed data when option is set in profile (eg. Fastest).
* Ported to Win64 platform.
* Improved tabset control user interface.
* Fixed bugs with drag and drop support causing WinRK to freeze.
* Created Win64 sfx stubs.
* Included Win64 asm to speed up PWCM and FPW codecs.
* Fixed bug in shell extension causing property page to be displayed incorrectly first time it is used.
* Changed audio codec block type due to changes in fp model in compiler leading to incompatibility with earlier versions.
* Created PocketPC/Windows Mobile self extractor stub. (NB. Doesn't support PWCM or FPW codecs.)
* Created new audio codec which is faster and more portable. No longer dependant on FP meaning it is portable to all platforms.
* Fixed bug in GZIP decoding where eof sometimes wasn't recognised, leading to WinRK hanging when decoding a gzip file.

v3.0.3 beta - 7/3/2006:
* Bitstream order now taken correctly from the profile for PDF compression.
* Fixed bugs in PWCM causing crash when compressing very large files.
* Fixed bug in memory allocator causing general instability.
* Replaced FPW and PWCM with new versions capable of faster and better compression. NB. NOT COMPATIBLE with v3.0.2!
* Modified ZIP analysis to correctly cope with Zip64 format archives.
* Fixed bug in reading v3.0 format fragment and file indexes with large numbers of files/fragments.
* Restricted model size for LZ77 to 128MB to avoid memory overflows.
* Fixed Archive Contents shell menu item, now works correctly.
* Fixed progress display when compressing compressed data - no more overflows.
* Optimised ROLZ2 gaining up to 20% more speed in some cases.
* Modified the Normal profile to provide quicker compression in most cases (now uses fast analysis).
* Modified block grouping for EXEs to improve compression slightly in some cases.
* Added 16bit x86 code filter for improved compression.
* Modified SMP block scheduling algorithm to be more efficient, providing faster compression speeds.
* Fixed bug in EXE update handler, where removing an exe/dll from an archive with several exes/dlls left a corrupt archive.
* Improved the EXE handler for slightly more speed and compression. NB. NOT COMPATIBLE WITH v3.0.2 Beta!!!
* Added new ROLZ3 method, and associated profiles.
* Changed WinRK to correctly retain persistant state for explorer panel hide status.
* Fixed minor bug in remembering the key size chosen for WinRK encryption.
* Modified shell extension to correctly show 'add to new' for folders and selections of multiple folders.
* Fixed bug in Benchmark Dialog, now correctly supports all archive types.
* Modified image compression to cope with very large images (up to about 10,000 pixels wide RGB).
* Added a new standardised benchmark (the Data Compression Index) to compare systems based on data compression speed.
* Modified the ZIP and XM analysers to better cope with corrupt archives.

v3.0.2 beta - 21/12/2005:
* Fixed failure in zip Modify Properties when WinRK has created dummy directories.
* Fixed bug in navigation into drives on the drive pane didn't always work.
* Fixed minor memory leak in ZIP deflate compression.
* Stopped WinRK shell extension from showing when right clicking on Start Menu button (avoids inconsistant Windows XP behaviour).
* Modified shell extension so no cascaded menu item is shown if no menu items are inside it.
* Optimised WinRK startup, improving startup speed.
* Improved file add speed.
* Defered icon generation (asynchronous using background thread) to hide slow Windows Shell performance.
* Significantly improved speed of processing done by GUI after adding files (~1s vs ~20s for 100k files).
* GUI speed verified as usable for all actions with 1/4 million files.
* Improved support for reading locked files when modifying WinRK archives.
* Fixed bug in text processing leading to one character error in specific corner case in short text files.
* Added Ctrl+A select all support to text edit controls.
* Included new algorithms LZ77, ROLZ2, FPWx and PWCM.
* Deprecating all older algorithms, only new algorithms supported for v3.x archives. Old algorithms available for backwards compatibility only.
* Implemented new global compression profiles system. Compression profiles are first class and apply to all archive types.
* Added ListView view to File Open dialog box. Now the default view for the dialog box.
* Worked around bug in DVD browsing caused by inconsistent Windows Shell API behaviour.
* Sped up browsing in File dialog box when browsing large folders on a physical drive.
* Removed the file properties tab in the explorer panel to simplify user interface.
* Added support for real time (on the fly) GUI updates for font and language changes.
* Rewrote font rendering to use windows TrueType glyph outlines instead of Freetype, removed freetype dependance.
* Implemented new high quality font anti-aliasing, including LCD subpixel AA. Result competitive with ClearType.
* Changed fallback font mechanism to be simpler and based on Windows WGL4 and Unicode character set split.
* WinRK font rendering now capable of good readable results with more CJK fonts than earlier versions.
* Added skin system to GUI, allowing a number of different look and feel choices.
* Created a WinXP Classic skin reproducing the standard WinXP look and feel.
* Created an Aqua skin reproducing the Mac OS/X Aqua look and feel.
* Updated TAR handler to better detect directory entries, and cope properly with very long names.
* Modified windows state and rollup handling to avoid possible window size confusion.
* Fixed bug in GZIP TAR and BZIP TAR handlers which caused intermittant crash when opening archive.
* Added new Add Dialog box which allows complex add operations (wilcdards, filtering etc.).
* Added SMP support for WinRK archive modification and extraction. Provides nearly 2x speedup with 2 processors.
* Added a internal benchmark, providing the ability to benchmark profiles in a completely repeatable manner.
* Added a batch extract function, supporting unattended extraction of an arbitrary number of archives.
* Added a batch conversion function, allowing unattended conversion of archives from one type to another.
* Modified the file associations to preserve file associations for alternative archivers.
* Added fully customisable shell menu items, allowing user defined scripted events.
* Modified WinRK archive to detect compressed data and store it to avoid archives growing larger than the source data.
* Added PPMd varI as option for text files. Enabled by default for Fastest and Normal profiles.
* Added support for automatic extraction in v3.0 SFX stub.
* Many more bug fixes...

v2.1.6 - 3/8/2005:
* Fixed bug in text decompression where in small number of cases will miss decoding the last eol of a text file.
* Changed string IDs for toolbar button captions to make translations easier.
* Moved apply and revert buttons to the main toolbar, to make the interface more 'conventional'.
* Added apply and revert menu items in the commands menu.
* Fixed the commands menu so it updates correctly when tabbing between open archives.
* Fixed grid control so that it no longer swallows function key presses (eg. F1, F10).
* Fixed new archive to correctly size the archive split panel.
* Fixed BMP analyser, so that <8bit images are ignored (caused problems with FPW methods).

v2.1.5 - 2/8/2005:
* Updated ace_plugin.dll to v1.12.
* Added new bzip2_plugin.dll which provides a BZIP2 codec for use in WinRK.
* Fixed bug in file reference handling leading to duplication of desktop node in drive tree control.
* Improved ROLZ compression ratio.
* Fixed bug in text handler introduced in build 3, affecting compression of Russian text. 
* Fixed bug where archive panel is not redrawn after apply is selected.
* Apply and revert buttons now correctly deactivated when adding files.
* Drag and drop extract to explorer no longer asks permission to overwrite temp files.
* Added captions to main toolbar buttons to make it easier for newbies to understand the buttons.

v2.1.4 beta - 13/7/2005:
* Modified string class to better cope with an empty string, when converting to API strings.
* Fixed critical bug in text compression caused by modifications in v2.1.3.

v2.1.3 beta - 6/7/2005:
* Added version information to Shell Extension and WinRK.exe.
* Added property sheet handler to WinRK Shell Extension to provide access to display archive properties.
* Moved SFX Stub string tables to the resources so that localisation is easier.
* Fixed bugs with root folder handling (desktop).
* Fixed bug in SFX stubs which leads to crash during extraction.
* Optimised SFX stubs to reduce size.
* Added support for Win32 exceptions (Access Violation etc.) to standard WinRK exception handling.
* Added an exception log to rk_errors.log in the WinRK home directory for Win32 exceptions.
* Shell Extension now catches all exceptions it can cause. Exceptions no longer cause explorer to crash.
* Modified zip handler to accept zip files with unknown extensions.
* Fixed minor bug when opening archive from drive pane fails, will not work again.
* Changed property lists and grid controls to speed up GUI updates and refreshes.
* New PWCM plugin - faster, and slightly better compression.
* New FPW modes in PWCM plugin: Hybrid PWCM and LZP modes with varying compression levels. Experimental.
* Added analysis for HTTP log files, improves compression.
* Fixed drag and drop extract between archive grid and drive grid.
* Fixed bug in shell extension causing file error to be displayed when right clicking on drives or some special folders.
* Now correctly support decimal point in volume size text entry.
* Fixed bug in x86 code compress handler leading to assert on some EXE files.
* Added support to installer for more friendly library installation. Now asks for reboot if necessary.
* Fixed bug where after answering no to experimental codec warning, archive panel stay deactivated.
* Fixed bug where open archive does nothing if the archive was previously opened and closed, and was the only archive open.
* Fixed bug where archive grid couldn't add or remove columns.
* Fixed redraw issue in grid control when removing column causes scrollbar to dissappear.
* Command line scripting now correctly run on separate thread.
* Modified text handler to provide slightly better results with complex text files.
* Added some more file analysis for different text types.

v2.1.2 beta - 17/6/2005:
* Fixed bug in shell extension causing crash when trying to extract from zip file.
* Fixed bug in installer leading to wrong working directory for WinRK shortcuts.
* Modified installer to set home path upon install.
* Fixed bug in shell extension causing explorer to crash when command chosen after hibernation.
* Fixed bug with logging where some logged strings did not appear.
* Fixed main icon for shell extension, now shows correct icon in all dialog boxes and windows.
* Fixed bug in shell extension causing crash when trying to use the extract to command.

v2.1.1 beta - 13/6/2005:
* Zip handler can now correctly cope with zip files containing unix file permissions.
* Shell extension fixed to correctly ignore verbs it doesn't understand - fixes New Folder bug.
* Fixed crash during modify archive properties when archive modifications are pending.
* Added support for dropping (drag and drop) onto the archive tree.
* Added support for moving and renaming files within an archive.
* Added support for moving files within archive through drag and drop.
* Modified string class to avoid unnecessary assertion failures.
* Implemented new heap to replace system heap. Faster, and less fragmented than system heap (should help large memory PWCM tests).
* Extensive internal changes to increase stability and reduce memory leaks.
* Extensive rewrite of archive handling code to enable multiple open archives.
* Added support for multiple open archives.
* Complete rewrite of the WinRK shell extension to be standalone for most shell functions.
* Shell extension supports cascaded menu.
* Script extended with new commands and options.
* Updated ace_plugin.dll to v1.12 submitted by HAL. Thanks HAL! Fixes crash when trying to open plugin archive types.
* Many more bug fixes...

v2.0.6 - 29/3/2005:
* Fixed bug causing MakeDir to fail on Win98.
* Fixed crash with extracting files from some archives using text dictionaries.
* Fixed bug with loosing SFX stub when modifying Zip self extracting files.
* Updated ace_plugin.dll to v1.1 submitted by HAL. Thanks HAL!

v2.0.5 - 27/1/2005:
* Fixed bug in pwcm_plugin.dll causing crash on some large test files.
* Rewrote memory allocator to guarantee allocation performance up to 1GB model size.
* Fixed memory leak in file splitter analyser.
* Modified type handlers to remove leaks when interrupted by user.
* Fixed bug in shell tree control.

v2.0.4 - 20/1/2005:
* Fixed bug in setting compression model size.

v2.0.3 - 19/1/2005:
* Modified ace_plugin.dll to fix bug with extracting paths.
* Modified ace_plugin.dll so CRC for directories is NULL.
* Cleaned up pwcm_plugin.dll to avoid loading error on some peoples computers.
* Rebuilt WinRK icon to try to be more compatible.
* Updated more memory allocation calls to be exception safe (avoids more crashes when memory allocation fails).
* Updated the PluginAPI SDK to force the use of exception safe new/delete handling.
* Modified the minimum model size restriction to be less annoying when entering a model size.

v2.0.2 - 14/1/2005:
* Fixed encryption bug when using new password key generation.
* Modified the drive panel folder tree to order drives by drive letter and before virtual folders.
* Modified the notepad control to render correctly at small sizes.
* Fixed keyboard entry to correctly accept AltGr (Alt + Ctrl) text entry for some locales.
* Added support for Alt + nnn, Alt + 0nnn, and Alt +xnnnn for entering OEM, ANSI and Unicode characters respectively.
* New memory manager for compression models which should reduce virtual memory fragmentation with the standard Windows heap.
* Adjusted parameters on the file splitter for better speed and potentially slightly better performance in extreme cases.
* Fixed bug in '-create <filename>' script handling.
* Fixed bug in setting Shell file associations.
* Fixed word wrap for CJK languages without spaces.
* Fixed bug so that New Archive while modifications pending correctly clears the modification flag.
* Fixed bug where drop down list didn't dissappear when focus was changed for recently used drop down lists.
* Modified PPMZ/PPMD compression to not use non-stationary adaption to improve compression in several cases (some quite significantly).
* Modified analysis to recognise more file types and group files better.
* Model size now uniformly limited to >= 64Kb to avoid pathologically small model sizes.
* Added more checks for out of memory condition within PPMD/PPMZ model to avoid crash in exceptional case.
* Shell extension now recognises plugin archive types by extension (eg. RAR and ISO).
* Pre-load the text dictionaries for speed and to avoid allocation failures when using very large model sizes.
* Added estimated remaining time to progress dialog.
* Added support for PGM, PPM, PBM, XPM, XBM etc. to image analysis. Not done TIFF yet though...
* Fixed System Tray icon to work with earlier versions of shell32.dll.
* Modified SFX to use use new style browse for folder where available - allows creating new folder.
* Modified SFX to correctly report errors.
* Added warnings for using text dictionary and plugin codecs with SFX archives.
* Switched to PECompact for SFX stub exe compression.

v2.0:
* Many changes!

v1.1.3 - 24/8/2004:
* Added missing progress start and end to themes customisation list.
* Fixed analysis bug in text compression leading to sub-optimimal choices in some cases (eg. world95.txt).
* Fixed buffer overrun bug in text compression that caused random crash with some files.
* Added synchronisation to windows message queues.
* Fixed bugs in zip, rar and tar analysers where analysis failed for fragments not starting at 0.
* Re-tuned file grouping heuristic for minor mean compression gain.
* Modified out of memory exception to avoid all memory allocation (causing stack overflow in some cases).
* Added check for pending modifications when closing WinRK.
* Added new localised strings for Shell Integration page for '<archive name>' and '<folder name>'.
* Fixed bug in text update handler that caused data corruption during an update in some exceptional cases.
* Added early negative to text analyser to speed up large file analysis.
* Added early out to fragment analysis to speed up analysis.
* Strings 16 and 17 had two strings defined each, so the 'Find First' and 'Find Next' strings are now 18 and 19.
* Fixed crash when dragging '<.>' directory to explorer pane.
* Fixed bug where files from the archive root directory fail to extract when dragged to the explorer pane.
* Fixed a bug in the TAR handler that caused corrupt TAR archives to be created in some circumstances.

v1.1.2 - 20/8/2004:
* Fixed crash with New Archive dialog when fresh/empty INI file used.

v1.1 - 19/8/2004:
* Zip multi-volumes support.
* Zip encryption support.
* WinZIP 9.0 AES encryption standard support.
* Zip SFX module support.
* Zip archive comment support.
* Modify Zip archive encryption, volume size and SFX.
* WinRK SFX support.
* WinRK archive comment support.
* Modify WinRK archive encryption, volume size and SFX.
* Fixed Asian font support (more compatible with Microsoft Asian fonts).
* Fixed Japanese Windows incompatibility.
* New GUI color themes support.
* Full drag and drop support for both add and extract.
* Shell integration with right click menu.
* Many small GUI enhancements.
* Tuned WinRK compression for slightly better performance with large filesets (still compatible with v1.0).
* ... and heaps more ...

v1.0.6 - 21/5/2004:
* Fixed a bug in shell folder access causing crash when opening some virtual folders (eg. some Network folders).
* Restricted file dialog so it no longer accepts paths including virtual folders.
* Fixed crash if log fails to be written.
* Implemented more robust search for fonts directory, and an ini variable override. Work-around for some Windows versions mis-reporting the path.
* Improved script extract command to accept source and destination directories.
* Implemented a quit script command.
* Updated the documentation to add in the missing explanation of the extract script command.
* Reverted to standard heap routines. Should avoid crashes happenning on some computers.
* Changed exported strings to be sorted by id# not alphabetical.
* Reworked font support internally to be potentially more robust.
* Implemented a default pointsize setting for the user interface.
* Tested Chinese and Japanese font support again.
* Modified the shell integration options page to only update if changed.
* Created a new spin-number control used for font pointsize.
* Modified volume-size calculations to account for extra volume header fields, now creates volumes exactly the size requested.

v1.0.5 - 12/5/2004:
* Fallback correctly to default font if selected font doesn't exist.
* Throw exception if font not loaded correctly, avoids messy crash.
* Disabled debug logging (should not be present in release version).

v1.0.4 - 11/5/2004:
* Fixed version number in about dialog box.

v1.0.3 - 11/5/2004:
* Fixed bug in script command create (confused over winrk or rk type).
* Modified EXE handler code to support multiple EXE files in a solid block. Much improved compression.
* Fixed a few more missing localised strings.
* Fixed bug in file split analyser.
* Modified file split analyser to support arbitrarily large files.
* Fixed bug in ROLZ algorithm when compressing file size 4GB.
* Modified memory allocation in PPM algorithms to better cope with very large model sizes.
* Fixed intermittant crash when compressing structured file types.
* Added support for cut and paste in text edit controls.
* Open up options dialog when creating new archive.
* Fixed bug causing new tar.bz2 or tar.gz archive to fail.
* Fixed bug with empty recent files list in reading/writing ini file.
* Correctly disable controls and drag and drop while loading a directory contents into the explorer pane.
* Horizontal scrollbar displays correctly when necessary in options dialog tree control.
* Grid, tree and edit controls now provide subtle visual feedback when busy.
* Explorer pane tree update thread priority lowered to lowest possible.
* Filenames displayed in progress dialog are now displayed with '...' in the middle when too long.
* Tested on >10GB of data and removed many bugs in text and exe compression.

v1.0b2 - 16/3/2004:
* Command line batch scripting added.
* WinRK X86 EXE code handler added (improves EXE performance).
* WinRK TAR file analyser.
* WinRK ZIP file analyser.
* Language file naming scheme added.
* Internationalisation strings added for all strings in GUI.
* Documentation added.
* Win98 & Win98SE bug fixed.
* Support for CJK fonts added.
* Support for changing GUI fonts added.
* Japanese codepages added - EUC-JP, SHIFT-JIS, ISO-2022-JP. 
* Chinese codepages added - GB2312, EUC-CN, BIG5, EUC-TW, ISO-2022-CN.
* Korean codepages added - EUC-KR, ISO-2022-KR.
* Fixed UTF8 bug in filename handling.
* Fixed title bar font unicode support.
* Fixed bug in file split analyser leading to incomplete coverage.
* Fixed bug in file split analyser leading to occasional poor performance.
* Fixed bug in structured file analyser leading to many false positives (and poor performance).
* Modified file split analyser to better find text fragments.
* Fixed memory leak in toolbar buttons.
* Fixed bug in text compression that caused bad CRC in extreme case.
* Fixed bug in text compression that caused data corruption for words longer than 250 characters.
* Fixed accelerator key assignments in WinRK settings page.
* Fixed bug in ZIP compression method setting when selecting BZIP.
* Reduced help tip timeout.
* Fixed bug with File Dialog focus being lost sometimes.
* Added overall ratio to WinRK archive properties.
* Added PPM model order setting.
* Fixed names of log and errors when failing compression (used to be referring to extraction).
* Fixed directory up button causing crash after add files.
* Save state of all panels in main window.
* Changed to open explorer pane by default unless opening archive from explorer association.
* Changed defaults for compression settings.
* Fixed trailing backslash problems on extract to directory.
* Fixed intermittant decode error when using large memory ROLZ compression.


3. Bugs!??

If you find any bugs, or have any problems using WinRK, then please email your reports to malcolm@msoftware.biz. Your reports will help us make WinRK a solid and reliable product.


4. What's Next?

The most likely features planned for the next release is 7zip archive support. We may also look at developing compression algorithms further for more specialised data types, and to improve overall speed.


We welcome your input and feedback on new features. If you have any requests or suggestions, please feel free to email them to us, or post them on the forum.



			Copyright (c) 2003-2008 M Software Ltd.
			website:  www.msoftware.biz
			email:  malcolm@msoftware.biz
				