Solid File System - Version 4.0.103 - Released February 5, 2009


What's new:

	                            [           Legend:          ]
								[ ! Important change         ]
								[ + Added feature            ]
								[ * Improved/changed feature ]
								[ - Bug fixed                ]

^^^^^^^^^^^^^^^^^^^
^^^ Version 4.0 ^^^
^^^             ^^^
^^^^^^^^^^^^^^^^^^^

---
February 5, 2009
v.4.0.0.103     Official release

+ Added "like" command to search syntax.
* Improved speed of SetSize operation.

---
December 21, 2008
v.4.0.0.102     Release Candidate 1

+ Added search by file tag contents. This powerful new feature lets you search files using metadata that you store in file tags.

+ Added Secret file attribute. Secret files and directories are not displayed in directory enumeration. 
  Note, that setting this attribute will automatically upgrade SolFS storage version to 4, thus making it unreadable (at least without patching) by SolFS engine version 3.
  This is done to prevent easy access to Secret files from earlier versions of SolFS engine.

+ [VCL] Added Delphi 2009 and C++Builder 2009 support.

- [VCL] Fixed integration of packages to IDE in Delphi 2007 and C++Builder 2007.



^^^^^^^^^^^^^^^^^^^
^^^ Version 3.2 ^^^
^^^             ^^^
^^^^^^^^^^^^^^^^^^^

---
September 2, 2008
v.3.2.0.101     Minor update

- Fixed the error that happened during Compact operation and could cause StorageCorrupted error. 

---
June 18, 2008
v.3.2.0.100     Minor update

- Fixed the error when handling unicode names of storage files. Previously the OS version was incorrectly determined and due to this the storage file names were corrected to current code page of the OS.


---
June 10, 2008
v.3.2.0.99      Minor update

* During compact operation the storage is flushed after every page operation. 
  This slows down theoperation significantly, however, if the computer or the application crashes during Compact operation, the storage doesn't become corrupted.


---
May 15, 2008
v.3.2.0.98      Internal build


---
May 14, 2008
v.3.2.0.97      Internal build


---
May 12, 2008
v.3.2.0.96      Minor update

- [.NET] Root data could not be written to. Fixed.


---
April 30, 2008
v.3.2.0.95      Minor update

- Fixed handling of the [invalid] symbolic link pointing to itself.
- [.NET] Custom decompression event handler could be invoked with wrong parameters. Fixed.


---
April 16, 2008
v.3.2.0.94      Minor update

* Internal memory consumption on a large number of files significantly reduced.

---
April 8, 2008
v.3.2.0.93      Minor update

- Fixed the minor problem with incorrect behaviour on encrypted storages, when the file is created and the storage password is not set or incorrect

---
April 3, 2008
v.3.2.0.92      Minor update

---
April 2, 2008
v.3.2.0.91      Minor update

- Build 89 has broken storage loading on Windows 98. Fixed. 

---
March 27, 2008
v.3.2.0.90      Minor update
- If file write failed with "Storage Full" error, the file got truncated to 0 bytes. Fixed.

---
March 25, 2008
v.3.2.0.89      Minor update
+ Now the library can handle Unicode storage names in it's default code 
(i.e. all DLLs and in VCL edition) due to automatic detection of CreateFileW() function availability in the system. 
- [CPP] FindFirstEx was missing. Fixed.
- [.NET] DiskSize property setter was missing. Fixed.
- [.NET] Fixed installation of the assembly on systems with .NET 3.5 only (no .NET 2.0 SDK installed)

---
February 18, 2008
v.3.2.0.87      Maintenance update
- Fixed a couple of possible deadlocks

---
January 23, 2008
v.3.2.0.86      Maintenance update
- [.NET] Fixed the seek problems with files over 4Gb.

---
November 16, 2007
v.3.2.0.85      Major update

---
October 18, 2007
v.3.2.0.84      Release Candidate 3
- Various stability fixes

---
September 25, 2007
v.3.2.0.83      Release Candidate 2
- Fixed the issue with AES256_SHA256 encryption mode
- [.NET] Fixed the memory leak

---
September 5, 2007
v.3.2.0.82      Release Candidate 1
+ Now the storages (both fixed-sized and resizeable) can be resized "by hand" by adjusting DiskSize property.


^^^^^^^^^^^^^^^^^^^
^^^ Version 3.1 ^^^
^^^             ^^^
^^^^^^^^^^^^^^^^^^^

---
June 28, 2007
v.3.1.0.81      Maintenance update
- Open method checked for file existence even in callback mode. Fixed.

---
June 13, 2007
v.3.1.0.80      Maintenance update
+ Improved CheckAndRepair procedure to detect certain rarely-appearing (we thought they are impossible :) inconsistencies in file structure.
- [.NET] The exception handler could cause exception itself. Fixed.


---
June 1, 2007
v.3.1.0.79      Maintenance update
* [.NET] Improved behavior of SolFSStream class to correspond to the behavior of .NET framework streams.

---
May 17, 2007
v.3.1.0.78      Maintenance update
- [.NET] Storages of size over 4Gb became corrupted. Fixed.

---
May 7, 2007
v.3.1.0.77      Maintenance update
* Improved CheckAndRepair function to handle the files with corrupted index list
- When the new storage was created, speed could be influenced by variou system factors due to NO_BUFFERING flag used. Now this flag is removed.
- When working with corrupted storage, the Access Violation could happen sometimes. Fixed.

---
April 17, 2007
v.3.1.0.76      Maintenance update
- Fixed the issue with password length in ecAES256_SHA256 encryption mode
- Fixed the issue with root data which occupies more than 16 pages in encrypted storage

---
March 20, 2007
v.3.1.0.75      Maintenance update
- Fixed storage corruption problem, which could happen, when multiple files having additional streams were deleted.


---
March 15, 2007
v.3.1.0.74      Maintenance update


---
March 7, 2007
v.3.1.0.73      Minor update
* [.NET] Garbage collection issues have been solved
* [.NET] Thread synchronization has been reworked 

---
February 20, 2007
v.3.1.0.72      Minor update
* ZLib has been updated to version 1.2.3
* [LIB] SolFS Engine functions are no longer marked as exported. The fix in build 68 mysteriously disappeared, so new fix was required. 

---
February 9, 2007
v.3.1.0.71      Maintenance update
- Fixed handling of a rare situation where the object information was not internally synchronized. 

---
February 5, 2007
v.3.1.0.70      Bugfix
- [.NET] OnProgress callback didn't check for presence of the handler. This could cause NullPointerException. Fixed. 

---
January 31, 2007
v.3.1.0.69      Bugfix
- Some deadlocks happened, when journalling was enabled. Fixed.
- When the storage with journalling was opened, Storage Corrupted error could be reported. Fixed.

---
January 26, 2007
v.3.1.0.68      Bugfix
- [.NET] .NET 2.0 assemblies were not installed to GAC. Fixed.
* [LIB] SolFS Engine functions are no longer marked as exported

---
January 19, 2007 
v.3.1.0.67      Minor update

* [.NET] Added MaxPageCount property.
- Fixed an ocassional bug with compressed files with additional tags.
- Fixed a bug in the Linux version of StoreCreateCriticalSection(PHandleCriticalSection). Without this fix, mutexes under Linux fail randomly. Thanks to Kevin Sorensen. 
- [VCL] Fixed work of IsCorrupted function

---
January 10, 2007 
v.3.1.0.66      Minor update
- Fixed the memory corruption issue, introduced in recent builds. The issue happened when performing Compact operation on the storage with journalling enabled. 

---
December 25, 2006 
v.3.1.0.65      Minor update
- [.NET] Fixed SolFSStream.Read() method, broken in build 64


---
December 12, 2006 
v.3.1.0.64      Minor update
+ Added ActiveX control
- Fixed a problem when closing the storage in read-only mode

^^^^^^^^^^^^^^^^^^^
^^^ Version 3.0 ^^^
^^^             ^^^
^^^^^^^^^^^^^^^^^^^

---
November 24, 2006
v.3.0.0.63      Minor update
* Various improvements for better compatibility with Driver Edition

---
November 17, 2006
v.3.0.0.62      Minor update
+ Added RLE compression support
- Fixed naming issues between .NET assembly and C++.NET

---
October 14, 2006
v.3.0.0.61      Minor update
- Fixed the AV, which could happen when accessing the invalid data in compressed file.

---
September 29, 2006
v.3.0.0.60      Minor update
- Fixed the AV which could happen when the file was deleted from the damaged storage
- Fixed the issue in CheckAndRepair function, when index pages were processed

---
September 23, 2006
v.3.0.0.59      Minor update
- Fixed the nag screen problem

---
August 25, 2006
v.3.0.0.58      Minor update
- [.NET] some recent changes were not included into regular assembly. Fixed.

---
August 18, 2006
v.3.0.0.57      Minor update
- Fixed various minor issues

---
July 19, 2006
v.3.0.0.56      Bugfix
[.NET] license code verification for .NET didn't work. Fixed.

---
July 5, 2006
v.3.0.0.55      Minor update
- Fixed a problem with SetSize equal to PageSize - 32 and writing less one byte. Extremely rare error.

---
June 20, 2006
v.3.0.0.54      Minor update
- [VCL] BPL files for Delphi 2005 and BDS 2006 were missing. Fixed.
- [VCL] SolFSLib.inc was missing from the distribution. Fixed.
- DeleteFile could give an error when the file had multiple streams. Fixed.

---
June 1, 2006
v.3.0.0.53      Official Release


---
May 17, 2006
v.3.0.0.52      Release Candidate
* significantly improved speed of file deletion
* improved error handling when working with corrupted storages

---
April 30, 2006
v.3.0.0.51      Beta version 
+ Added support for Windows/x64 (AMD-based 64-bit versions of Windows XP and Windows 2003) for .NET 2.0 and Visual C++ 8 (VS 2005)
! Now .NET version is shipped with 2 assemblies - one with SolFS engine included and one with SolFS engine linked from SolFS.dll
! Changed FormatFixedSize declaration in .NET

---
April 26, 2006
v.3.0.0.50      Beta version 
+ Added GetStorage*Time functions to retrieve last activity time
- Fixed various minor bugs

---
April 14, 2006
v.3.0.0.49      Beta version 
! File table was added to improve speed of certain operation.

---
April 5, 2006
v.3.0.0.48      Beta version
- Some bugs fixed

---
March 9, 2006
v.3.0.0.47      Beta version
- Some bugs fixed

---
March 9, 2006
v.3.0.0.46      Beta version
- Some bugs fixed
* Improved speed of CheckAndRepair function

---
Feb 12, 2006
v.3.0.0.45      Beta version
- Linux compatibility fixed


---
Feb 6, 2006
v.3.0.0.44      Beta version
! Redesigned journal file. Now it is stored inside the main storage. 
* Page indexing improved. 
* CheckAndRepair() now checks for invalid file names. 
- Fixed various bugs when working with fixed-sized storage.


^^^^^^^^^^^^^^^^^^^
^^^ Version 2.2 ^^^
^^^             ^^^
^^^^^^^^^^^^^^^^^^^

---
Dec 24, 2005   
v.2.2.43        Minor update
+ [.NET] added SetEncryption and SetPassword methods to provide whole-storage encryption. 

---
Dec 5, 2005   
v.2.2.42        Minor update
+ Added Delphi 2006 support

---
Nov 29, 2005   
v.2.2.41        Minor update
* Improved speed of reading of the storage with transactions enabled

---
Nov 25, 2005   
v.2.2.40        Minor update
! Certain problems found with fixed-sized storages with journalling enabled. This will be fixed in next builds.
- Fixed a bug in GetFileTag if the tag is not present.
- Fixed a bug with fixed-sized storages.
- Fixed a problem with SolFSAPP sample application. 
 

---
Oct 21, 2005   
v.2.2.39        Minor update
+ Added GetFileTagInfo function
- Fixed a bug with repairing the fixed-sized storage from journal

---
Sep 14, 2005   
v.2.2.38        Minor update
- Small bugs fixed

---
Sep 6, 2005   
v.2.2.37        Minor update
+ Improved handling of symbolic links - now symbolic links can also refer directories

---
Aug 12, 2005   
v.2.2.36        Minor update
- Fixed an issue with encryption in source-code version

---
July 30, 2005   
v.2.2.35        Minor update
- Fixed an issue with storage encryption after Format operation

---
July 21, 2005   
v.2.2.34        Minor update
- Fixed minor problem with Flush operation
- Fixed the problem with Abstract Class Declaration in VCL wrapper (introduced in the last update)

---
Jun 25, 2005   
v.2.2.33        Minor update
- Fixed various minor problems in Delphi and .NET wrappers

---
Apr 18, 2005   
v.2.2.32        Minor update
- Fixed various minor problems

---
Mar 3, 2005   
v.2.2.31        Minor update
- Fixed a problem with CheckAndRepair, corrupting the metadata for compressed files.
- Fixed a problem with AV when calling FlushFile.

---
Mar 3, 2005   
v.2.2.30        Minor update
- Various bugs fixed. 

---
Feb 15, 2005   
v.2.2.29        Minor update
- Case-insensitive search by mask with FindFirst/FindNext didn't work. Fixed. 
- CheckAndRepair method didn't handle the problem of invalid page size marker. Fixed.

---
Jan 29, 2005   
v.2.2.28        Minor update
+ Now SetRegistrationKey method returns error if the key is invalid
- Fixed a design-time bug of Delphi package (AV every 10 seconds)

---
Jan 15, 2005   
v.2.2.27        Minor update
+ Added case insensitivity support
- Fixed a bug with moving of file to other folder without changing it's name
- Fixed a bug with searching for a file in a folder with many files inside

---
Dec 8, 2004   
v.2.2.26        Minor update
- Fixed a bug with filenames longer than 22 chars
* Now file name may contain semicolon (;)

---
Nov 30, 2004   
v.2.2.25        Minor update
- Fixed a problem with Get*Time methods

---
Nov 23, 2004   
v.2.2.24        Minor update
- Fixed notification mechanism and some small bugs

---
Nov 17, 2004   
v.2.2.23        Minor update
! Improved memory management
- Fixed re-encryption problems

---
Oct 15, 2004   
v.2.2.22        Major update
! Added support for files and streams of over 2Gb (in fact, now size is limited by˙2147483647 * PageSize bytes)
! Added callbacks/events for custom compression functionality
- Fixed an issue with determining free space in storage

^^^^^^^^^^^^^^^^^^^
^^^ Version 2.1 ^^^
^^^             ^^^
^^^^^^^^^^^^^^^^^^^

---
Sep 21, 2004   
v.2.1.21        Major update
! Added support for date/time conversion to/from local time. 
  Now all date/time operations return and accept local time which is automatically converted from/to UTC. 
  SolFS Engine (DLL/Lib) operates with UTC time.
+ Added support for file tags (SetTag/GetTag/DeleteTag functions).
+ (VCL) Added Asynchronous Pluggable Protocol classes
- Fixed an issue with OpenRootData called after setting storage password
- (VCL) Fixed minor issue with one of Create() constructors which has flags as parameter

^^^^^^^^^^^^^^^^^^^
^^^ Version 2.0 ^^^
^^^             ^^^
^^^^^^^^^^^^^^^^^^^

---
Aug 19, 2004   
v.2.0.20        Minor update
- Fixed problem with Open method in .NET and C++ classes
- Fixed problem with performing operations on read-only storage
- Fixed problem with fmOpenRead flag in TSolFSStream.Create
- Fixed problem with fixed-size storage, where amount of free space was reported as 0

---
July 25, 2004   
v.2.0.19        Minor update
- Fixed minor problem with SetFileEncryption
- Fixed possible problem with compiled version of SolFS Explorer

---
July 24, 2004   
v.2.0.18        Official Release
+ Added SolFS Manager (console) and SolFS Explorer (GUI) applications for storage management
- Fixed certain C++ wrapper class errors

---
July 16, 2004   
v.2.0.17        Release Candidate
+ Added C++ wrapper class for easier use of SolFS
+ Added sample for .NET
- Fixed various problems in .NET wrapper
- Fixed problems with file names with length of 22 bytes.

---
July 8, 2004   Beta version
v.2.0.16        + Added storage encryption (the one that encrypts the whole storage instead of individual files)
+ Added unnamed root data repository. This repository is accessible via OpenRootData() method and is not encrypted. 
- Fixed a problem in FormatFixedSize method.
- Fixed problems that happened when fixed-sized storage was full.
- CheckFilePassword crashed on non-encrypted files. Fixed.
- SolFS could create files with relative names, and those files could not be read after creation. Fixed.

---
June 30, 2004   Beta version
v.2.0.15        - VCL units didn't accept registration key. Fixed.

---
June 28, 2004   Beta version
v.2.0.14        - VCL units didn't include static version of the code (i.e. DLL was required). Fixed.

---
June 15, 2004   Beta version
v.2.0.13        + Added compression support
+ Added some caching of pages
+ Added support for custom tags for files
+ Added IsSolFSStorage, CheckAndRepair methods
+ Now SolFSStorage is a component that can be placed to the form in design-time
! The library has been rewritten in ANSI C
* Now the library can be statically linked to Delphi
* Improved speed


^^^^^^^^^^^^^^^^^^^
^^^ Version 1.6 ^^^
^^^             ^^^
^^^^^^^^^^^^^^^^^^^

---
Mar 21, 2004
v.1.6.12        - Final edition of the hotfix ;)

---
Mar 15, 2004
v.1.6.11        - Hot-fix for 1.6.10

---
Mar 12, 2004
v.1.6.10        - Fixed possible problem with encrypted streams.

---
Jan 22, 2004
v.1.6.9         - Fixed a bug with Sharing Violation error happening in journalling mode.
- Fixed a bug with MoveFile method when moving non-existing file

---
Jan 21, 2004
v.1.6.8         - Fixed a bug in SetRegistrationKey that caused Stack Overflow.


---
Jan 18, 2004
v.1.6.7         + Added support for symbolic links
* Added custom encryption callbacks (undocumented yet)
- Fixed problems with encryption.
- DeleteFileW function used in the library prevented it from loading on Win9x. Fixed. 

---
Jan 2, 2004
v.1.5.6         + Added StorageOpenReadOnly function to force opening the storage in read-only mode
+ Added callback support
! Changed registration scheme. Now the same DLL is used for evaluation and registered versions
- Fixed problems with Compact function when files with names longer than 22 characters were used

---
Dec 23, 2003
v.1.3.5         - Fixed an issue with files larger than one page and exactly equal to page size * X
- Fixed an issue with re-opening the file, which was not gracefully closed when used not in journalling mode.

---
Dec 5, 2003
v.1.3.4         + Added MoveFile method to SolFSStorage
- Fixed FindFirst/FindNext/FindClose .NET edition
! Now it is not necessary to call FindClose unless last call to FindFirstFindNext returned true
* Improved documentation a bit

---
Oct 9, 2003
v.1.2.3         + Added Flush method to SolFSStream
+ Added Close method to SolFSStream class in .NET edition
- Fixed broken documentation
- Fixed .NET problems with abstract SolFSStream class

---
Sep 15, 2003
v.1.1.2         .NET and DLL/Library versions released
! Encryption format changed. If you use encrypted files, you 
will need to decrypt them using version 1.0 of SolFS and then
encrypt using version 1.1. The change has been done to conform 
to AES standard.

---
Aug 15, 2003
v.1.0.1 First public release
