mirror of
https://github.com/boostorg/serialization.git
synced 2026-01-22 05:42:17 +00:00
void cast added dll tests simplified VC7IDE configurations and set up test for DLLS [SVN r54757]
189 lines
9.9 KiB
HTML
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<T></code>.
|
|
This is compatible with public interface of <code style="white-space: normal">shared_ptr<T></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<T></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>© 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>
|