###

# Serialization

## History

1. 26 Feb 2002 initial version uploaded to boost
2. 27 Feb 2002
   - divide interface from implementation for class serialization to permit compilation on gcc
   - improved template instantantation for type templates
3. 18 Mar 2002 - draft #2 uploaded to boost
   - elminated locale effects on archives
   - added signature and library version to archive header
   - improved detection of errors when objects are serialized as pointers and subsequently serialized as objects
   - permit non-portable binary archives
   - implement workaround for systems such as MSVC 6.0 that don't support partial ordering
4. 16 May 2002 - draft #3 uploaded to boost
   - Ability to specify serialization of other templates in a non-intrusive way.
   - Included an example which uses boost::shared_ptr.
   - improved documentation
   - More test cases
   - More testing and documentation of obscure situtations
   - Better code organization for transparency
   - Wide character support implemented and tested with unicode.
5. 28 Jun 2002 - #4 library submission
   - minor corrections
   - replaced erroneous shared_ptr example with std::auto_ptr example
   - prevention of memory leaks when exceptions are invoked
6. 30 Aug 2002 - #5 library submission
   - minor corrections
   - Additions to documentation to explicitly address issues of exception safety.
   - More test cases/demos to illustrate handling of the above issues.
   - Additions to documentation to include rationale for not depending on type_id
   - Implementation of serialization of boost::shared_ptr. This is included as a demo as it depends upon a minor alteration of boost::shared_count.
7. 08 Nov 2002 - #6 library submission
   - minor corrections
   - corrected error which manifested itself when serializing polymorphic pointers to obects derived from multiple base classes
   - minor adjustments to support plug-ins via virtual save/load/version functions
   - test cases to support the above
8. 08 September 2003- version # 12 library submission
   - attempts to address all issues raised during the November 2002 review
9. November 2003 - draft #13 uploaded
   - corrections, enhancements, change in api for pointer overload
10. 28 December 2003
    - implementation of save/loadbinary
    - enhancements included archives to permit derivation
11. 1 March 2004 - draft # 17 upload
    - portability to intel 8.0, and VC 6.0
    - Alter archive implementation to permit derivation. Make tests.
    - Implement serialize/save/load binary for text and XML archives using `base64` character encoding.
    - Added documentation and test for serialization of large binary objects.
    - Added "Derivation from an Existing Archive Class" to documentation along with example program.
    - Added PIMPL example
    - certain special situations are now detected and addressed at compile time to generate all in-line code. For example, for types serialized without class information, and without memory tracking, the serialization process can be reduced to a minimal amount of inline code.
    - All tests have been run in release as well as debug mode
    - Many improvements in code and documentation to improve accuracy and completeness.
12. 11 April 2004 - draft # 18 upload
    - Reorganization of header and template files.
    - Enhanced documentation to help explain implementation issues.
    - Adjustments to improve support for less conformant compilers.
    - A few bug fixes.
13. 31 May 2004 - draft # 20 upload
    - Polymorphic archives.
    - A few bug fixes.
14. 1 November 2004 - final changes for first boost official release 1.32 .
    - Adjustments to address package compatible with two-phase lookup.
    - Many small adjustments to accommodate quirks of various compilers.
    - A few bug fixes.

© Copyright Robert Ramey 2002-2004. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)