Boost logo

Boost-Commit :

From: ramey_at_[hidden]
Date: 2007-12-24 19:57:22


Author: ramey
Date: 2007-12-24 19:57:21 EST (Mon, 24 Dec 2007)
New Revision: 42284
URL: http://svn.boost.org/trac/boost/changeset/42284

Log:
Adjustments for trak tickets - ready for upload as version 1.36.0
Text files modified:
   branches/serialization_next_release/boost/libs/serialization/doc/contents.html | 1 +
   branches/serialization_next_release/boost/libs/serialization/doc/release.html | 38 ++++++++++++++++++++++++++++++++++----
   branches/serialization_next_release/boost/libs/serialization/doc/static_warning.html | 20 +++++++++++++++++++-
   branches/serialization_next_release/boost/libs/serialization/doc/traits.html | 26 ++++++++++++++++++++++++++
   4 files changed, 80 insertions(+), 5 deletions(-)

Modified: branches/serialization_next_release/boost/libs/serialization/doc/contents.html
==============================================================================
--- branches/serialization_next_release/boost/libs/serialization/doc/contents.html (original)
+++ branches/serialization_next_release/boost/libs/serialization/doc/contents.html 2007-12-24 19:57:21 EST (Mon, 24 Dec 2007)
@@ -87,6 +87,7 @@
     <dt><img style="display:none" src="plus.gif" id="release_notes"><a target="detail" href="release.html">Release Notes</a></dt>
     <dd><div id="release_notes_detail"><dl class="page-index">
       <dt><img style="display:none" src="dot.gif"><a target="detail" href="release.html#requirements">Requirements</a></dt>
+ <dt><img style="display:none" src="dot.gif"><a target="detail" href="release.html#difference_1_35">Differences from version 1.35</a></dt>
       <dt><img style="display:none" src="dot.gif"><a target="detail" href="release.html#difference_1_34">Differences from version 1.34</a></dt>
       <dt><img style="display:none" src="dot.gif"><a target="detail" href="release.html#difference_1_32">Differences from version 1.32</a></dt>
       <dt><img style="display:none" src="dot.gif"><a target="detail" href="release.html#difference_1_33">Differences from version 1.33</a></dt>

Modified: branches/serialization_next_release/boost/libs/serialization/doc/release.html
==============================================================================
--- branches/serialization_next_release/boost/libs/serialization/doc/release.html (original)
+++ branches/serialization_next_release/boost/libs/serialization/doc/release.html 2007-12-24 19:57:21 EST (Mon, 24 Dec 2007)
@@ -27,15 +27,18 @@
 <hr>
 <dl class="index">
   <dt>Requirements</dt>
+ <dt>Differences from version 1.35</dt>
   <dt>Differences from version 1.34</dt>
   <dt>Differences from version 1.33</dt>
   <dt>Differences from version 1.32</dt>
   <dt>Pending Issues</dt>
 </dl>
-There are currently no known bugs. However, due to compiler/library quirks and or
+As of this is written, there are no known bugs. However, due to compiler/library quirks and or
 bugs, some tests fail with some combinations of compilers and libraries.
 <h2><a name="requirements"></a>Requirements</h2>
 This library has been tested on Boost version 1.34 and 1.35.
+
+<!--
 <p>
 The serialization library uses the boost spirit package to load XML archives.
 We have found that all tests pass using spirit 1.6x. Spirit 1.8 and higher does not work with
@@ -51,6 +54,36 @@
 If you're not using bjam and the Jamfile to build the library, be sure that
 the directory which contains the version of spirit you plan to use is placed
 at the front of the list of include paths.
+-->
+
+<h2><a name="differences_1_35"></a>Differences from Boost 1.35</h2>
+<ul>
+ <li>The library is now thread safe. That is, multiple archives can be open
+ in different threads. This has been implmented with a lock-free algorithm
+ to avoid any performance bottlenecks.
+ <li>Serialization of types defined in shared libraries is now supported.
+ shared libraries (DLLS) can be loaded/unloaded dynamically at runtime.
+ This includes the serialization of types of abstract base classes so that
+ a program can be written so as to be compatible with as yet undefined
+ and un-implemented code.
+ <li>The extended type info system has been enhanced to in order to implement
+ the above. It is now a general purpose system for creating and casting of
+ types about which is only known a string ID and an abstract base class.
+ <li>All bug reports filed as TRAK tickets have been addressed.
+ <li>As of this writing, the library will fail build on older compilers such
+ as MSVC before version 7.1 and older versions of Borland compilers. This
+ may or maynot change in the future.
+ <li>In previous versions, all types serialized through a pointer were
+ automatically "registered" as a side-effect. This made it unnecessary to
+ explicitly register or export these types if they were subsequently
+ serialized through a pointer to a base class. On rare occasions this
+ created some difficulties by instantiating undesired code and made
+ the requirement for registration and/or export dependent on the sequence
+ of operations. So any type that is to be serialized through a base
+ class pointer must be either explicitly registered or exported. This
+ might break some code and result in the throwing of "unregistered type"
+ exception.
+</ul>
 
 <h2><a name="differences_1_34"></a>Differences from Boost 1.34</h2>
 <ul>
@@ -58,7 +91,6 @@
     <li>Improved implementation of "export" functionality. Removes header ordering
         requirement and eliminates the maintenance of a pre-determined list of "known archives"
         By David Abrahams.
- <li>Library is now thread-safe.
     <li>Improved support for STLPort.
 </ul>
 
@@ -99,8 +131,6 @@
 <h2><a name="todo"></a>Pending issues</h2>
 <ul>
     <li>Compile, and test on more platforms
- <li>implement <code>is_virtual_base&lt;T&gt;</code> to automatically
- eliminate redundancy in virtual base class serialization.
     <li>currently can't serialize through a pointer an object a of class
     that implements its own <code style="white-space: normal">new/delete</code> operators.
     <li>Its possible that <code style="white-space: normal">std::string</code>

Modified: branches/serialization_next_release/boost/libs/serialization/doc/static_warning.html
==============================================================================
--- branches/serialization_next_release/boost/libs/serialization/doc/static_warning.html (original)
+++ branches/serialization_next_release/boost/libs/serialization/doc/static_warning.html 2007-12-24 19:57:21 EST (Mon, 24 Dec 2007)
@@ -25,7 +25,25 @@
   </tr>
 </table>
 <hr>
-To do.
+
+The header <code>&lt;boost/static_warning.hpp&gt;</code> supplies a single macro
+<code style="white-space: normal">BOOST_STATIC_WARNING(x)</code>, which generates a compile time warning message if
+the integral-constant-expression x is not true.
+<p>
+Note that if the condition is true, then the macro will generate neither
+code nor data - and the macro can also be used at either namespace,
+class or function scope. When used in a template, the expression x
+will be evaluated at the time the template is instantiated; this is
+particularly useful for validating template parameters.
+<p>
+It is intended that the functioning of <code style="white-space: normal">BOOST_STATIC_WARNING(x)</code>
+be identical to that of <code style="white-space: normal">BOOST_STATIC_ASSERT(x)</code>
+except that rather than resulting in a compilation error, it will result in
+a compiler warning. In all other respects it should be the same. So
+for more information on using <code style="white-space: normal">BOOST_STATIC_WARNING(x)</code>
+consult the documentation for <code style="white-space: normal">BOOST_STATIC_ASSERT(x)</code>
+here.
+
 <hr>
 <p><i>&copy; Copyright Robert Ramey 2002-2004.
 Distributed under the Boost Software License, Version 1.0. (See

Modified: branches/serialization_next_release/boost/libs/serialization/doc/traits.html
==============================================================================
--- branches/serialization_next_release/boost/libs/serialization/doc/traits.html (original)
+++ branches/serialization_next_release/boost/libs/serialization/doc/traits.html 2007-12-24 19:57:21 EST (Mon, 24 Dec 2007)
@@ -471,6 +471,32 @@
 <tr><td><code>IsWrapper</code></td><td><code></code>is the type a wrapper?</td><td><code>mpl::false_<br>mpl::true_</code></td><td><code>mpl::false_</code></td></tr>
 </table>
 
+
+<h3><a name="tracking">Bitwise serialization</a></h3>
+Some simple classes could be serialized just by directly copying all bits
+of the class. This is, in particular, the case for POD data types containing
+no pointer members, and which are neither versioned nor tracked. Some archives,
+such as non-portable binary archives can make us of this information to
+substantially speed up serialization.
+
+To indicate the possibility of bitwise serialization the type trait defined
+in the header
+file is_bitwise_serializable.hpp
+is used:
+<pre><code>
+namespace boost { namespace serialization {
+ template<class T>
+ struct is_bitwise_serializable
+ : public is_arithmetic<T>
+ {};
+} }
+</code></pre>
+is used, and can be specialized for other classes. The specialization
+is made easy by the corresponding macro:
+<pre><code>
+BOOST_IS_BITWISE_SERIALIZABLE(my_class)
+</code></pre>
+
 <hr>
 <p><i>&copy; Copyright Robert Ramey 2002-2004 and Matthias Troyer 2006.
 Distributed under the Boost Software License, Version 1.0. (See


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk