Files
serialization/doc/release.html
Robert Ramey 282057729e Fixed misc bugs
void cast
added dll tests
simplified VC7IDE configurations and set up test for DLLS

[SVN r54757]
2009-07-07 04:08:30 +00:00

189 lines
9.9 KiB
HTML

<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!--
(C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
Use, modification and distribution is subject to 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)
-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Serialization - Release Notes</title>
</head>
<body link="#0000ff" vlink="#800080">
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
<tr>
<td valign="top" width="300">
<h3>
<a href="../../../index.htm">
<img height="86" width="277" alt="C++ Boost" src="../../../boost.png" border="0"></a></h3>
</td>
<td valign="top">
<h1 align="center">
Serialization</h1>
<h2 align="center">
Release Notes</h2>
</td>
</tr>
</table>
<hr>
<dl class="index">
<dt><a href="#requirements">Requirements</a></dt>
<dt><a href="#differences_1_39">Differences from version 1.37</a></dt>
<dt><a href="#differences_1_37">Differences from version 1.37</a></dt>
<dt><a href="#differences_1_35">Differences from version 1.35</a></dt>
<dt><a href="#differences_1_34">Differences from version 1.34</a></dt>
<dt><a href="#differences_1_33">Differences from version 1.33</a></dt>
<dt><a href="#differences_1_32">Differences from version 1.32</a></dt>
<dt><a href="#todo">Pending Issues</a></dt>
</dl>
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 against Boost version 1.39.
<!--
<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
older compilers - specifically MSVC 6, Borland and GCC < 3.0.
If you are using one of these compilers, you may download a version
of spirit 1.6 <a href="http://spirit.sourceforge.net/index.php?doc=download/index.html">here</a>.
To use this downloaded version rather than the one included with boost,
set an environmental variable SPIRIT_ROOT to be equal to the root
directory where the downloaded copy of spirit has been placed. E. G.
<pre><code>
set SPIRIT_ROOT=c:/spirit16
</code></pre>
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_39"></a>Differences from Boost 1.39</h2>
<ul>
<li>It is now possible to serialize an object through a pointer to a class which implements
its own <code style="white-space: normal">new/delete</code> operators. This functionaly
is not available on some compilers.
<li>serialization of polymorphic objects has been sped up considerably.
</ul>
As of this writing, all bug reports filed
as TRAK tickets have been addressed. There are some TRAK tickets pending which
would best be described as feature requests. See <a href="#todo">Pending Issues</a>.
<h2>
<a name="differences_1_37"></a>Differences from Boost 1.37</h2>
There are no new features in this version. As of this writing, all bug reports filed
as TRAK tickets have been addressed. There are some TRAK tickets pending which
would best be described as feature requests. See <a href="#todo">Pending Issues</a>.
<h2>
<a name="differences_1_36"></a>Differences from Boost 1.36</h2>
There are no new features in this version. As of this writing, all bug reports filed
as TRAK tickets have been addressed.
<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 instances 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 might or might
not change in the future.
</ul>
<h2>
<a name="differences_1_34"></a>Differences from Boost 1.34</h2>
<ul>
<li>
Enhanced support for fast serialization for native binary archives. By Mattias Troyer.
<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>
Improved support for STLPort.
</ul>
<h2>
<a name="differences_1_33"></a>Differences from Boost 1.33</h2>
<ul>
<li>Native Binary archives use the <code style="white-space: normal">std::streambuf</code>
interface. This should result in noticeably faster execution in many cases.
</ul>
<h2>
<a name="differences_1_32"></a>Differences from Boost 1.32</h2>
<ul>
<li>Dynamic Linking Library (DLLs and shared libraries) for platforms which support
them. See <a href="../../../more/getting_started/windows.html#auto-linking">Automatic
Linking on Windows</a>.
<li>
Implementation of auto-link for compilers which can support this.
<li>Better support for <em>Argument Dependent Lookup</em>
and two-phase lookup. This results in simpler rules regarding the placing of serialization
specializations namespaces.
<li>
Enhanced documentation to help explain usage of the above.
<li>
Adjustments to improve support for less conformant compilers.
<li>Improved <code>const</code> correctness for save/load operators. Note that this
may produce compile time errors in code which compiled without problem in earlier
boost releases. In most cases the fix is trivial. In other cases, code should be
scrutinized to be sure that it doesn't use the serialization system in a way which
may introduce subtle bugs in to the program. A fuller explanation of this issue
can be found <a target="detail" href="traits.html#tracking">here</a>.
<li>A new implementation of serialization for <code style="white-space: normal">shared_ptr&lt;T&gt;</code>.
This is compatible with public interface of <code style="white-space: normal">shared_ptr&lt;T&gt;</code>
so it should be more robust and not have to change in the future. The implementation
optionally includes code to load <code style="white-space: normal">shared_ptr&lt;T&gt;</code>
stored in archives created with boost 1.32. This code is stored in the header: <code
style="white-space: normal">boost/serialization/shared_ptr_132.hpp</code>. If
your application needs to load archives created with boost 1.32 libraries, include
the above header before each inclusion of <code style="white-space: normal">boost/serialization/shared_ptr.hpp</code>.
<li>
More compilers tested and supported.
<li>
Miscellaneous bug fixes.
</ul>
<h2>
<a name="todo"></a>Pending issues</h2>
<ul>
<li>Rvalues cannot be serialized. It would be possible to implement this for
untracked types, but this has not been done.
<li>
Pointers to pointers cannot currently be serialized
<li>Its possible that <code style="white-space: normal">std::string</code> and <code
style="white-space: normal">std::wstring</code>
contain characters such as '\0' and -1 (EOF) which cannot be rendered in text and
XML archives without an escape mechanism. Currently there is no such escape mechanism
implemented.
<li>A subtle error in the implementation of serializaton of <code style="white-space: normal">
std::map</code> is fixed in this version. Unfortunately, the fix breaks serialization
of <code style="white-space: normal">std::map</code>
for those compilers which do not support partial template specialization. Also,
types which contain pointers or tracked types might not work correctly.
</ul>
<p>
Aside from the above, there are a number of issues related to specific platforms.
These are listed in <a href="implementation.html#othercompilerissues">Specific Compiler/Library
Issues</a>.
<hr>
<p>
<i>&copy; Copyright <a href="http://www.rrsd.com">Robert Ramey</a> 2002-2009. 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) </i>
</p>
</body>
</html>