From: Robert Ramey (ramey_at_[hidden])
Date: 2003-09-03 12:18:08
I have just uploaded a draft version of the serialization library to the files section under the file name serialization10.zip.
I have successfuly compiled, linked, and run all code and tests on MSVC 7.0. I believe that with a few changes, the system could be made work with MSVC 6.0 as well.
I have successfuly compiled all code and tests with GCC version 3.2.1 under cygwin. I am currently attempting to get tests to link and run.
I have only built debug versions. In my experience this is not enough. Release builds and test are required.
Differences from Previous Versions
I believe this version of the serialization library addresses all issues raised in the review of the previous version undertaken in November 2002
Much finer grained modularity. Library consists of 109 source and header files as opposed to a handful before.
More complete testing. 46 different tests are included. The majority are run with each different type of archive.
Archives use templates rather than virtual inheritance for their implementation. This has the following effects:
Code runs measurably faster.
Since primitives are generated from templates, all the non-standard variations such as _int64, long long are taken care of automatically. Before it was a big headache to figure which set of functions should be code for which compilers.
Should permit easier derivation from existing archive classes.
Classes to be serialized can be assigned traits to control serialization . For example, this permits suppression of class information and/or tracking on a class by class basis.
Default runtime typing can be replaced with a custom implementation on a class by class basis.
Polymorphic base classes serialized through a pointers can be related to an external key (e.g. class name), as opposed to "forward declaring" them.
An XML Archive implemention is now included. Othogonality between serialization specification and archive selection has been maintained. That, is any class for which serialization has been specified can be serialized to any archive type without any changes in serialization or archive code.
Full integration into the boost build, and test system via jamfiles.
Please feel free to examine, build and / or test. I look forward to your comments.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk