Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r84576 - in website/public_html/live: generated generated/state users/history
From: dnljms_at_[hidden]
Date: 2013-05-31 13:17:35


Author: danieljames
Date: 2013-05-31 13:17:34 EDT (Fri, 31 May 2013)
New Revision: 84576
URL: http://svn.boost.org/trac/boost/changeset/84576

Log:
Rebuild
Text files modified:
   website/public_html/live/generated/dev.rss | 188 +++++++++++++++++++++++++++++++++++++++
   website/public_html/live/generated/state/feed-pages.txt | 6
   website/public_html/live/generated/state/rss-items.txt | 190 +++++++++++++++++++++++++++++++++++++++
   website/public_html/live/users/history/version_1_54_0.html | 188 +++++++++++++++++++++++++++++++++++++++
   4 files changed, 568 insertions(+), 4 deletions(-)

Modified: website/public_html/live/generated/dev.rss
==============================================================================
--- website/public_html/live/generated/dev.rss (original)
+++ website/public_html/live/generated/dev.rss 2013-05-31 13:17:34 EDT (Fri, 31 May 2013)
@@ -180,6 +180,194 @@
       </li>
       <li>
         <div>
+ <span class="library"><a href="http://www.boost.org/libs/asio/">Asio</a>:</span>
+ <ul>
+ <li>
+ <div>
+ Added new traits classes, <code><span class="identifier">handler_type</span></code>
+ and <code><span class="identifier">async_result</span></code>,
+ that allow the customisation of the return type of an initiating
+ function.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added the <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">spawn</span><span class="special">()</span></code>
+ function, a high-level wrapper for running stackful coroutines, based
+ on the Boost.Coroutine library. The <code><span class="identifier">spawn</span><span class="special">()</span></code> function enables programs to implement
+ asynchronous logic in a synchronous manner. For example: <code><span class="identifier">size_t</span> <span class="identifier">n</span>
+ <span class="special">=</span> <span class="identifier">my_socket</span><span class="special">.</span><span class="identifier">async_read_some</span><span class="special">(</span><span class="identifier">my_buffer</span><span class="special">,</span> <span class="identifier">yield</span><span class="special">);</span></code>.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added the <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">use_future</span></code> special value, which
+ provides first-class support for returning a C++11 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">future</span></code> from an asynchronous operation's
+ initiating function. For example: <code><span class="identifier">future</span><span class="special"><</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">n</span>
+ <span class="special">=</span> <span class="identifier">my_socket</span><span class="special">.</span><span class="identifier">async_read_some</span><span class="special">(</span><span class="identifier">my_buffer</span><span class="special">,</span> <span class="identifier">asio</span><span class="special">::</span><span class="identifier">use_future</span><span class="special">);</span></code>.
+ </div>
+ </li>
+ <li>
+ <div>
+ Promoted the stackless coroutine class and macros to be part of Asio's
+ documented interface, rather than part of the HTTP server 4 example.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added a new handler hook called <code><span class="identifier">asio_handler_is_continuation</span></code>.
+ Asynchronous operations may represent a continuation of the asynchronous
+ control flow associated with the current executing handler. The
+ <code><span class="identifier">asio_handler_is_continuation</span></code>
+ hook can be customised to return <code><span class="keyword">true</span></code>
+ if this is the case, and Asio's implementation can use this knowledge
+ to optimise scheduling of the new handler. To cover common cases,
+ Asio customises the hook for strands, <code><span class="identifier">spawn</span><span class="special">()</span></code> and composed asynchronous operations.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added four new generic protocol classes, <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">datagram_protocol</span></code>,
+ <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">raw_protocol</span></code>, <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">seq_packet_protocol</span></code>
+ and <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">stream_protocol</span></code>, which implement
+ the <code><span class="identifier">Protocol</span></code> type
+ requirements, but allow the user to specify the address family (e.g.
+ <code><span class="identifier">AF_INET</span></code>) and protocol
+ type (e.g. <code><span class="identifier">IPPROTO_TCP</span></code>)
+ at runtime.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added C++11 move constructors that allow the conversion of a socket
+ (or acceptor) into a more generic type. For example, an <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">socket</span></code> can be converted into a
+ <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">stream_protocol</span><span class="special">::</span><span class="identifier">socket</span></code> via move construction.
+ </div>
+ </li>
+ <li>
+ <div>
+ Extended the <code><span class="identifier">basic_socket_acceptor</span><span class="special"><></span></code> class's <code><span class="identifier">accept</span><span class="special">()</span></code> and <code><span class="identifier">async_accept</span><span class="special">()</span></code> functions to allow a new connection
+ to be accepted directly into a socket of a more generic type. For
+ example, an <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">acceptor</span></code> can be used to accept
+ into a <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">stream_protocol</span><span class="special">::</span><span class="identifier">socket</span></code> object.
+ </div>
+ </li>
+ <li>
+ <div>
+ Moved existing examples into a C++03-specific directory, and added
+ a new directory for C++11-specific examples. A limited subset of
+ the C++03 examples have been converted to their C++11 equivalents.
+ </div>
+ </li>
+ <li>
+ <div>
+ Various SSL enhancements. Thanks go to Nick Jones, on whose work
+ these changes are based.
+ <ul>
+ <li>
+ <div>
+ Added support for SSL handshakes with re-use of data already
+ read from the wire. New overloads of the <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special"><></span></code> class's <code><span class="identifier">handshake</span><span class="special">()</span></code>
+ and <code><span class="identifier">async_handshake</span><span class="special">()</span></code> functions have been added.
+ These accept a <code><span class="identifier">ConstBufferSequence</span></code>
+ to be used as initial input to the ssl engine for the handshake
+ procedure.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added support for creation of TLSv1.1 and TLSv1.2 <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> objects.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added a <code><span class="identifier">set_verify_depth</span><span class="special">()</span></code> function to the <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> and <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special"><></span></code>
+ classes.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added the ability to load SSL certificate and key data from
+ memory buffers. New functions, <code><span class="identifier">add_certificate_authority</span><span class="special">()</span></code>, <code><span class="identifier">use_certificate</span><span class="special">()</span></code>, <code><span class="identifier">use_certificate_chain</span><span class="special">()</span></code>, <code><span class="identifier">use_private_key</span><span class="special">()</span></code>, <code><span class="identifier">use_rsa_private_key</span><span class="special">()</span></code> and <code><span class="identifier">use_tmp_dh</span><span class="special">()</span></code>, have been added to the
+ <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> class.
+ </div>
+ </li>
+ <li>
+ <div>
+ Changed <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code>
+ to automatically disable SSL compression by default. To enable,
+ use the new <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span><span class="special">::</span><span class="identifier">clear_options</span><span class="special">()</span></code> function, as in <code><span class="identifier">my_context</span><span class="special">.</span><span class="identifier">clear_options</span><span class="special">(</span><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span><span class="special">::</span><span class="identifier">no_compression</span><span class="special">)</span></code&g
t;.
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed a potential deadlock in <code><span class="identifier">signal_set</span></code>
+ implementation.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed an error in acceptor example in documentation <a href="https://svn.boost.org/trac/boost/ticket/8421">#8421</a>.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed copy-paste errors in waitable timer documentation <a href="https://svn.boost.org/trac/boost/ticket/8602">#8602</a>.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added assertions to satisfy some code analysis tools <a href="https://svn.boost.org/trac/boost/ticket/7739">#7739</a>.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed a malformed <code><span class="preprocessor">#warning</span></code>
+ directive <a href="https://svn.boost.org/trac/boost/ticket/7939">#7939</a>.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed a potential data race in the Linux <code><span class="identifier">epoll</span></code>
+ implementation.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed a Windows-specific bug, where certain operations might generate
+ an <code><span class="identifier">error_code</span></code> with
+ an invalid (i.e. <code><span class="identifier">NULL</span></code>)
+ <code><span class="identifier">error_category</span></code> <a href="https://svn.boost.org/trac/boost/ticket/8613">#8613</a>.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed <code><span class="identifier">basic_waitable_timer</span></code>'s
+ underlying implementation so that it can handle any <code><span class="identifier">time_point</span></code> value without overflowing
+ the intermediate duration objects.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed a problem with lost thread wakeups that can occur when making
+ concurrent calls to <code><span class="identifier">run</span><span class="special">()</span></code> and <code><span class="identifier">poll</span><span class="special">()</span></code> on the same <code><span class="identifier">io_service</span></code>
+ object <a href="https://svn.boost.org/trac/boost/ticket/8354">#8354</a>.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed implementation of asynchronous connect operation so that it
+ can cope with spurious readiness notifications from the reactor <a href="https://svn.boost.org/trac/boost/ticket/7961">#7961</a>.
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li>
+ <div>
           <span class="library"><a href="http://www.boost.org/libs/chrono/">Chrono</a>:</span>
           <ul>
             <li>

Modified: website/public_html/live/generated/state/feed-pages.txt
==============================================================================
--- website/public_html/live/generated/state/feed-pages.txt (original)
+++ website/public_html/live/generated/state/feed-pages.txt 2013-05-31 13:17:34 EDT (Fri, 31 May 2013)
@@ -2004,7 +2004,7 @@
 -id
 "version_1_54_0
 -last_modified
-.1369689360.51
+.1370020600.11
 -location
 "users/history/version_1_54_0.html
 -notice
@@ -2015,12 +2015,12 @@
 -purpose
 "
 " New Libraries: Log, TTI, Type Erasure. Updated Libraries: Accumulators, Algorithm,
-" Any, Chrono, Circular Buffer, Context, Coroutine, Geometry, Graph, Iostreams,
+" Any, Asio, Chrono, Circular Buffer, Context, Coroutine, Geometry, Graph, Iostreams,
 " Lexical Cast, Math, Multiprecision, Polygon, Property Map, Thread, Type Traits,
 " Unordered, Utility, Variant, Wave, xpressive
 "
 -qbk_hash
-"27061e96f946bb136efdca57d5d6eba0cd562a45c8b3346e03118170bc0244f1
+"d07ae0085ce523afd20b48df2b62d2d3c5b6beeb9a7c6564b8003c1d0369629d
 -release_status
 "dev
 -title

Modified: website/public_html/live/generated/state/rss-items.txt
==============================================================================
--- website/public_html/live/generated/state/rss-items.txt (original)
+++ website/public_html/live/generated/state/rss-items.txt 2013-05-31 13:17:34 EDT (Fri, 31 May 2013)
@@ -18804,6 +18804,194 @@
 " </li>
 " <li>
 " <div>
+" <span class="library"><a href="http://www.boost.org/libs/asio/">Asio</a>:</span>
+" <ul>
+" <li>
+" <div>
+" Added new traits classes, <code><span class="identifier">handler_type</span></code>
+" and <code><span class="identifier">async_result</span></code>,
+" that allow the customisation of the return type of an initiating
+" function.
+" </div>
+" </li>
+" <li>
+" <div>
+" Added the <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">spawn</span><span class="special">()</span></code>
+" function, a high-level wrapper for running stackful coroutines, based
+" on the Boost.Coroutine library. The <code><span class="identifier">spawn</span><span class="special">()</span></code> function enables programs to implement
+" asynchronous logic in a synchronous manner. For example: <code><span class="identifier">size_t</span> <span class="identifier">n</span>
+" <span class="special">=</span> <span class="identifier">my_socket</span><span class="special">.</span><span class="identifier">async_read_some</span><span class="special">(</span><span class="identifier">my_buffer</span><span class="special">,</span> <span class="identifier">yield</span><span class="special">);</span></code>.
+" </div>
+" </li>
+" <li>
+" <div>
+" Added the <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">use_future</span></code> special value, which
+" provides first-class support for returning a C++11 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">future</span></code> from an asynchronous operation's
+" initiating function. For example: <code><span class="identifier">future</span><span class="special"><</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">n</span>
+" <span class="special">=</span> <span class="identifier">my_socket</span><span class="special">.</span><span class="identifier">async_read_some</span><span class="special">(</span><span class="identifier">my_buffer</span><span class="special">,</span> <span class="identifier">asio</span><span class="special">::</span><span class="identifier">use_future</span><span class="special">);</span></code>.
+" </div>
+" </li>
+" <li>
+" <div>
+" Promoted the stackless coroutine class and macros to be part of Asio's
+" documented interface, rather than part of the HTTP server 4 example.
+" </div>
+" </li>
+" <li>
+" <div>
+" Added a new handler hook called <code><span class="identifier">asio_handler_is_continuation</span></code>.
+" Asynchronous operations may represent a continuation of the asynchronous
+" control flow associated with the current executing handler. The
+" <code><span class="identifier">asio_handler_is_continuation</span></code>
+" hook can be customised to return <code><span class="keyword">true</span></code>
+" if this is the case, and Asio's implementation can use this knowledge
+" to optimise scheduling of the new handler. To cover common cases,
+" Asio customises the hook for strands, <code><span class="identifier">spawn</span><span class="special">()</span></code> and composed asynchronous operations.
+" </div>
+" </li>
+" <li>
+" <div>
+" Added four new generic protocol classes, <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">datagram_protocol</span></code>,
+" <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">raw_protocol</span></code>, <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">seq_packet_protocol</span></code>
+" and <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">stream_protocol</span></code>, which implement
+" the <code><span class="identifier">Protocol</span></code> type
+" requirements, but allow the user to specify the address family (e.g.
+" <code><span class="identifier">AF_INET</span></code>) and protocol
+" type (e.g. <code><span class="identifier">IPPROTO_TCP</span></code>)
+" at runtime.
+" </div>
+" </li>
+" <li>
+" <div>
+" Added C++11 move constructors that allow the conversion of a socket
+" (or acceptor) into a more generic type. For example, an <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">socket</span></code> can be converted into a
+" <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">stream_protocol</span><span class="special">::</span><span class="identifier">socket</span></code> via move construction.
+" </div>
+" </li>
+" <li>
+" <div>
+" Extended the <code><span class="identifier">basic_socket_acceptor</span><span class="special"><></span></code> class's <code><span class="identifier">accept</span><span class="special">()</span></code> and <code><span class="identifier">async_accept</span><span class="special">()</span></code> functions to allow a new connection
+" to be accepted directly into a socket of a more generic type. For
+" example, an <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">acceptor</span></code> can be used to accept
+" into a <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">stream_protocol</span><span class="special">::</span><span class="identifier">socket</span></code> object.
+" </div>
+" </li>
+" <li>
+" <div>
+" Moved existing examples into a C++03-specific directory, and added
+" a new directory for C++11-specific examples. A limited subset of
+" the C++03 examples have been converted to their C++11 equivalents.
+" </div>
+" </li>
+" <li>
+" <div>
+" Various SSL enhancements. Thanks go to Nick Jones, on whose work
+" these changes are based.
+" <ul>
+" <li>
+" <div>
+" Added support for SSL handshakes with re-use of data already
+" read from the wire. New overloads of the <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special"><></span></code> class's <code><span class="identifier">handshake</span><span class="special">()</span></code>
+" and <code><span class="identifier">async_handshake</span><span class="special">()</span></code> functions have been added.
+" These accept a <code><span class="identifier">ConstBufferSequence</span></code>
+" to be used as initial input to the ssl engine for the handshake
+" procedure.
+" </div>
+" </li>
+" <li>
+" <div>
+" Added support for creation of TLSv1.1 and TLSv1.2 <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> objects.
+" </div>
+" </li>
+" <li>
+" <div>
+" Added a <code><span class="identifier">set_verify_depth</span><span class="special">()</span></code> function to the <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> and <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special"><></span></code>
+" classes.
+" </div>
+" </li>
+" <li>
+" <div>
+" Added the ability to load SSL certificate and key data from
+" memory buffers. New functions, <code><span class="identifier">add_certificate_authority</span><span class="special">()</span></code>, <code><span class="identifier">use_certificate</span><span class="special">()</span></code>, <code><span class="identifier">use_certificate_chain</span><span class="special">()</span></code>, <code><span class="identifier">use_private_key</span><span class="special">()</span></code>, <code><span class="identifier">use_rsa_private_key</span><span class="special">()</span></code> and <code><span class="identifier">use_tmp_dh</span><span class="special">()</span></code>, have been added to the
+" <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> class.
+" </div>
+" </li>
+" <li>
+" <div>
+" Changed <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code>
+" to automatically disable SSL compression by default. To enable,
+" use the new <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span><span class="special">::</span><span class="identifier">clear_options</span><span class="special">()</span></code> function, as in <code><span class="identifier">my_context</span><span class="special">.</span><span class="identifier">clear_options</span><span class="special">(</span><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span><span class="special">::</span><span class="identifier">no_compression</span><span class="special">)</span></code&
gt;.
+" </div>
+" </li>
+" </ul>
+" </div>
+" </li>
+" <li>
+" <div>
+" Fixed a potential deadlock in <code><span class="identifier">signal_set</span></code>
+" implementation.
+" </div>
+" </li>
+" <li>
+" <div>
+" Fixed an error in acceptor example in documentation <a href="https://svn.boost.org/trac/boost/ticket/8421">#8421</a>.
+" </div>
+" </li>
+" <li>
+" <div>
+" Fixed copy-paste errors in waitable timer documentation <a href="https://svn.boost.org/trac/boost/ticket/8602">#8602</a>.
+" </div>
+" </li>
+" <li>
+" <div>
+" Added assertions to satisfy some code analysis tools <a href="https://svn.boost.org/trac/boost/ticket/7739">#7739</a>.
+" </div>
+" </li>
+" <li>
+" <div>
+" Fixed a malformed <code><span class="preprocessor">#warning</span></code>
+" directive <a href="https://svn.boost.org/trac/boost/ticket/7939">#7939</a>.
+" </div>
+" </li>
+" <li>
+" <div>
+" Fixed a potential data race in the Linux <code><span class="identifier">epoll</span></code>
+" implementation.
+" </div>
+" </li>
+" <li>
+" <div>
+" Fixed a Windows-specific bug, where certain operations might generate
+" an <code><span class="identifier">error_code</span></code> with
+" an invalid (i.e. <code><span class="identifier">NULL</span></code>)
+" <code><span class="identifier">error_category</span></code> <a href="https://svn.boost.org/trac/boost/ticket/8613">#8613</a>.
+" </div>
+" </li>
+" <li>
+" <div>
+" Fixed <code><span class="identifier">basic_waitable_timer</span></code>'s
+" underlying implementation so that it can handle any <code><span class="identifier">time_point</span></code> value without overflowing
+" the intermediate duration objects.
+" </div>
+" </li>
+" <li>
+" <div>
+" Fixed a problem with lost thread wakeups that can occur when making
+" concurrent calls to <code><span class="identifier">run</span><span class="special">()</span></code> and <code><span class="identifier">poll</span><span class="special">()</span></code> on the same <code><span class="identifier">io_service</span></code>
+" object <a href="https://svn.boost.org/trac/boost/ticket/8354">#8354</a>.
+" </div>
+" </li>
+" <li>
+" <div>
+" Fixed implementation of asynchronous connect operation so that it
+" can cope with spurious readiness notifications from the reactor <a href="https://svn.boost.org/trac/boost/ticket/7961">#7961</a>.
+" </div>
+" </li>
+" </ul>
+" </div>
+" </li>
+" <li>
+" <div>
 " <span class="library"><a href="http://www.boost.org/libs/chrono/">Chrono</a>:</span>
 " <ul>
 " <li>
@@ -19878,7 +20066,7 @@
 " </div>
 "</description></item>
 -last_modified
-.1369689360.51
+.1370020600.11
 -quickbook
 "feed/history/boost_1_54_0.qbk
 )

Modified: website/public_html/live/users/history/version_1_54_0.html
==============================================================================
--- website/public_html/live/users/history/version_1_54_0.html (original)
+++ website/public_html/live/users/history/version_1_54_0.html 2013-05-31 13:17:34 EDT (Fri, 31 May 2013)
@@ -216,6 +216,194 @@
       </li>
       <li>
         <div>
+ <span class="library">Asio:</span>
+ <ul>
+ <li>
+ <div>
+ Added new traits classes, <code><span class="identifier">handler_type</span></code>
+ and <code><span class="identifier">async_result</span></code>,
+ that allow the customisation of the return type of an initiating
+ function.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added the <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">spawn</span><span class="special">()</span></code>
+ function, a high-level wrapper for running stackful coroutines, based
+ on the Boost.Coroutine library. The <code><span class="identifier">spawn</span><span class="special">()</span></code> function enables programs to implement
+ asynchronous logic in a synchronous manner. For example: <code><span class="identifier">size_t</span> <span class="identifier">n</span>
+ <span class="special">=</span> <span class="identifier">my_socket</span><span class="special">.</span><span class="identifier">async_read_some</span><span class="special">(</span><span class="identifier">my_buffer</span><span class="special">,</span> <span class="identifier">yield</span><span class="special">);</span></code>.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added the <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">use_future</span></code> special value, which
+ provides first-class support for returning a C++11 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">future</span></code> from an asynchronous operation's
+ initiating function. For example: <code><span class="identifier">future</span><span class="special">&lt;</span><span class="identifier">size_t</span><span class="special">&gt;</span> <span class="identifier">n</span>
+ <span class="special">=</span> <span class="identifier">my_socket</span><span class="special">.</span><span class="identifier">async_read_some</span><span class="special">(</span><span class="identifier">my_buffer</span><span class="special">,</span> <span class="identifier">asio</span><span class="special">::</span><span class="identifier">use_future</span><span class="special">);</span></code>.
+ </div>
+ </li>
+ <li>
+ <div>
+ Promoted the stackless coroutine class and macros to be part of Asio's
+ documented interface, rather than part of the HTTP server 4 example.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added a new handler hook called <code><span class="identifier">asio_handler_is_continuation</span></code>.
+ Asynchronous operations may represent a continuation of the asynchronous
+ control flow associated with the current executing handler. The
+ <code><span class="identifier">asio_handler_is_continuation</span></code>
+ hook can be customised to return <code><span class="keyword">true</span></code>
+ if this is the case, and Asio's implementation can use this knowledge
+ to optimise scheduling of the new handler. To cover common cases,
+ Asio customises the hook for strands, <code><span class="identifier">spawn</span><span class="special">()</span></code> and composed asynchronous operations.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added four new generic protocol classes, <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">datagram_protocol</span></code>,
+ <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">raw_protocol</span></code>, <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">seq_packet_protocol</span></code>
+ and <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">stream_protocol</span></code>, which implement
+ the <code><span class="identifier">Protocol</span></code> type
+ requirements, but allow the user to specify the address family (e.g.
+ <code><span class="identifier">AF_INET</span></code>) and protocol
+ type (e.g. <code><span class="identifier">IPPROTO_TCP</span></code>)
+ at runtime.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added C++11 move constructors that allow the conversion of a socket
+ (or acceptor) into a more generic type. For example, an <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">socket</span></code> can be converted into a
+ <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">stream_protocol</span><span class="special">::</span><span class="identifier">socket</span></code> via move construction.
+ </div>
+ </li>
+ <li>
+ <div>
+ Extended the <code><span class="identifier">basic_socket_acceptor</span><span class="special">&lt;&gt;</span></code> class's <code><span class="identifier">accept</span><span class="special">()</span></code> and <code><span class="identifier">async_accept</span><span class="special">()</span></code> functions to allow a new connection
+ to be accepted directly into a socket of a more generic type. For
+ example, an <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">acceptor</span></code> can be used to accept
+ into a <code><span class="identifier">generic</span><span class="special">::</span><span class="identifier">stream_protocol</span><span class="special">::</span><span class="identifier">socket</span></code> object.
+ </div>
+ </li>
+ <li>
+ <div>
+ Moved existing examples into a C++03-specific directory, and added
+ a new directory for C++11-specific examples. A limited subset of
+ the C++03 examples have been converted to their C++11 equivalents.
+ </div>
+ </li>
+ <li>
+ <div>
+ Various SSL enhancements. Thanks go to Nick Jones, on whose work
+ these changes are based.
+ <ul>
+ <li>
+ <div>
+ Added support for SSL handshakes with re-use of data already
+ read from the wire. New overloads of the <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code> class's <code><span class="identifier">handshake</span><span class="special">()</span></code>
+ and <code><span class="identifier">async_handshake</span><span class="special">()</span></code> functions have been added.
+ These accept a <code><span class="identifier">ConstBufferSequence</span></code>
+ to be used as initial input to the ssl engine for the handshake
+ procedure.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added support for creation of TLSv1.1 and TLSv1.2 <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> objects.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added a <code><span class="identifier">set_verify_depth</span><span class="special">()</span></code> function to the <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> and <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code>
+ classes.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added the ability to load SSL certificate and key data from
+ memory buffers. New functions, <code><span class="identifier">add_certificate_authority</span><span class="special">()</span></code>, <code><span class="identifier">use_certificate</span><span class="special">()</span></code>, <code><span class="identifier">use_certificate_chain</span><span class="special">()</span></code>, <code><span class="identifier">use_private_key</span><span class="special">()</span></code>, <code><span class="identifier">use_rsa_private_key</span><span class="special">()</span></code> and <code><span class="identifier">use_tmp_dh</span><span class="special">()</span></code>, have been added to the
+ <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> class.
+ </div>
+ </li>
+ <li>
+ <div>
+ Changed <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code>
+ to automatically disable SSL compression by default. To enable,
+ use the new <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span><span class="special">::</span><span class="identifier">clear_options</span><span class="special">()</span></code> function, as in <code><span class="identifier">my_context</span><span class="special">.</span><span class="identifier">clear_options</span><span class="special">(</span><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span><span class="special">::</span><span class="identifier">no_compression</span><span class="special">)</span></code>.
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed a potential deadlock in <code><span class="identifier">signal_set</span></code>
+ implementation.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed an error in acceptor example in documentation #8421.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed copy-paste errors in waitable timer documentation #8602.
+ </div>
+ </li>
+ <li>
+ <div>
+ Added assertions to satisfy some code analysis tools #7739.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed a malformed <code><span class="preprocessor">#warning</span></code>
+ directive #7939.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed a potential data race in the Linux <code><span class="identifier">epoll</span></code>
+ implementation.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed a Windows-specific bug, where certain operations might generate
+ an <code><span class="identifier">error_code</span></code> with
+ an invalid (i.e. <code><span class="identifier">NULL</span></code>)
+ <code><span class="identifier">error_category</span></code> #8613.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed <code><span class="identifier">basic_waitable_timer</span></code>'s
+ underlying implementation so that it can handle any <code><span class="identifier">time_point</span></code> value without overflowing
+ the intermediate duration objects.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed a problem with lost thread wakeups that can occur when making
+ concurrent calls to <code><span class="identifier">run</span><span class="special">()</span></code> and <code><span class="identifier">poll</span><span class="special">()</span></code> on the same <code><span class="identifier">io_service</span></code>
+ object #8354.
+ </div>
+ </li>
+ <li>
+ <div>
+ Fixed implementation of asynchronous connect operation so that it
+ can cope with spurious readiness notifications from the reactor #7961.
+ </div>
+ </li>
+ </ul>
+ </div>
+ </li>
+ <li>
+ <div>
           <span class="library">Chrono:</span>
           <ul>
             <li>


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