2
0
mirror of https://github.com/boostorg/website.git synced 2026-01-19 04:42:17 +00:00

Rebuild in progress release notes

This commit is contained in:
Automated Commit
2024-11-01 17:26:04 +00:00
parent 7ba543aa04
commit 9b598f7edf
2 changed files with 373 additions and 1 deletions

View File

@@ -43106,6 +43106,192 @@
" </li>
" <li>
" <div>
" <span class="library"><a href="/libs/mysql/">MySQL</a>:</span>
" <ul>
" <li>
" <div>
" <strong>Breaking changes to experimental APIs</strong>:
" <ul>
" <li>
" <div>
" The thread-safety feature in <code><span class="identifier">connection_pool</span></code>
" has been redesigned to overcome some design flaws found by
" user experience. The boolean option <code><span class="identifier">thread_safe</span></code>
" has been added to <code><span class="identifier">pool_params</span></code>
" (set to <code><span class="keyword">false</span></code>
" by default). When set, some pool functions change behavior
" so they can be safely used concurrently. This works by internally
" creating a strand, dispatching to it when required, and re-wiring
" cancellation signals. When <code><span class="identifier">pool_params</span><span class="special">::</span><span class="identifier">thread_safe</span></code>
" is <code><span class="keyword">false</span></code>, the
" usual Asio executor semantics apply, with no overhead.
" </div>
" </li>
" <li>
" <div>
" <code><span class="identifier">pool_executor_params</span></code>
" has been removed, replaced by <code><span class="identifier">pool_params</span><span class="special">::</span><span class="identifier">connection_executor</span></code>
" and <code><span class="identifier">pool_params</span><span class="special">::</span><span class="identifier">thread_safe</span></code>.
" </div>
" </li>
" <li>
" <div>
" The built-in timeout functionality in <code><span class="identifier">connection_pool</span><span class="special">::</span><span class="identifier">async_get_connection</span></code>
" has been completely removed. This function now supports per-operation
" cancellation, so the same functionality can be achieved by
" using <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">cancel_after</span></code>.
" </div>
" </li>
" <li>
" <div>
" Destroying a <code><span class="identifier">connection_pool</span></code>
" now cancels outstanding async operations, as other Asio I/O
" objects do. This prevents resource leaks: an outstanding <code><span class="identifier">async_run</span></code> operation extends
" the pool's lifetime until the operation completes, which could
" cause the pool object to never get destroyed.
" </div>
" </li>
" <li>
" <div>
" When an <code><span class="identifier">async_get_connection</span></code>
" operation is cancelled before a connection is available, the
" operation now consistently fails with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">pool_not_running</span></code>,
" <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">no_connection_available</span></code>
" or <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">pool_cancelled</span></code>,
" depending on the pool state (previously, it would fail with
" either <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">timeout</span></code>
" or the last error code encountered by the internal <code><span class="identifier">async_connect</span></code> operations
" performed by the pool). This information is now included in
" the output diagnostics object.
" </div>
" </li>
" <li>
" <div>
" <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">timeout</span></code>
" and <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">cancelled</span></code>
" have been removed.
" </div>
" </li>
" <li>
" <div>
" Calling <code><span class="identifier">async_get_connection</span></code>
" on a pool that is not running no longer fails immediately,
" but waits for <code><span class="identifier">async_run</span></code>
" to be called.
" </div>
" </li>
" <li>
" <div>
" <code><span class="identifier">sequence</span></code> now
" returns an owning type. This makes it safe use with <code><span class="identifier">with_params</span></code> in deferred async
" operations. <code><span class="identifier">format_sequence_view</span></code>
" has been renamed to <code><span class="identifier">format_sequence</span></code>.
" </div>
" </li>
" <li>
" <div>
" <code><span class="identifier">sequence</span></code> has
" been moved to a separate header, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">mysql</span><span class="special">/</span><span class="identifier">sequence</span><span class="special">.</span><span class="identifier">hpp</span></code>.
" </div>
" </li>
" </ul>
" </div>
" </li>
" <li>
" <div>
" <code><span class="identifier">any_connection</span></code>, client-side
" SQL formatting (including <code><span class="identifier">format_sql</span></code>
" and <code><span class="identifier">with_params</span></code>)
" and <code><span class="identifier">connection_pool</span></code>
" have been promoted to stable APIs.
" </div>
" </li>
" <li>
" <div>
" <code><span class="identifier">any_connection</span></code> is
" now recommended for new code, instead of <code><span class="identifier">connection</span></code>
" and its aliases <code><span class="identifier">tcp_connection</span></code>,
" <code><span class="identifier">tcp_ssl_connection</span></code>
" and <code><span class="identifier">unix_connection</span></code>.
" </div>
" </li>
" <li>
" <div>
" Added <code><span class="identifier">with_params</span></code>,
" a new <code><span class="identifier">ExecutionRequest</span></code>
" encapsulating a query template string and parameters to expand the
" query. When executed, it expands the query using client-side SQL
" formatting and sends it to the server for execution. This is the
" new recommended way to run simple queries with parameters.
" </div>
" </li>
" <li>
" <div>
" Added <code><span class="identifier">with_diagnostics</span></code>,
" an adapter completion token that transforms exceptions thrown by
" async functions to include <code><span class="identifier">diagnostics</span></code>
" objects, matching how sync throwing functions work.
" </div>
" </li>
" <li>
" <div>
" <code><span class="identifier">with_diagnostics</span><span class="special">(</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">deferred</span><span class="special">)</span></code> is now the default completion token
" for all operations in <code><span class="identifier">any_connection</span></code>
" and <code><span class="identifier">connection_pool</span></code>.
" This causes expressions like <code><span class="identifier">co_await</span>
" <span class="identifier">conn</span><span class="special">.</span><span class="identifier">async_connect</span><span class="special">(</span><span class="identifier">params</span><span class="special">)</span></code>
" to behave identically to <code><span class="identifier">conn</span><span class="special">.</span><span class="identifier">connect</span><span class="special">(</span><span class="identifier">params</span><span class="special">)</span></code>. Note that <code><span class="identifier">connection</span></code>
" and its type aliases haven't been updated to match this behavior.
" </div>
" </li>
" <li>
" <div>
" Async functions in <code><span class="identifier">connection_pool</span></code>
" now support per-operation cancellation.
" </div>
" </li>
" <li>
" <div>
" All async operations now support <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">cancel_after</span></code>,
" <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">cancel_at</span></code> and similar completion
" tokens that require a bound executor to initiations passed to <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">async_initiate</span></code>.
" </div>
" </li>
" <li>
" <div>
" <code><span class="identifier">connection</span></code> and <code><span class="identifier">any_connection</span></code> now dispatch immediate
" completions through the token's immediate executor.
" </div>
" </li>
" <li>
" <div>
" Fixed an issue that caused a crash when trying to use an <code><span class="identifier">any_connection</span></code> that hasn't been
" previously connected.
" </div>
" </li>
" <li>
" <div>
" Removed an incorrect <code><span class="keyword">noexcept</span></code>
" specifier from a potentially throwing constructor in <code><span class="identifier">field</span></code>.
" </div>
" </li>
" <li>
" <div>
" Fixed an issue that could cause the write buffer size to exceed the
" configured buffer size limit.
" </div>
" </li>
" <li>
" <div>
" Heavily updated the documentation and examples to be more relevant
" and reflect the new recommended best practices.
" </div>
" </li>
" </ul>
" </div>
" </li>
" <li>
" <div>
" <span class="library"><a href="/libs/smart_ptr/">SmartPtr</a>:</span>
" <ul>
" <li>
@@ -43426,7 +43612,7 @@
" </div>
"
-hash
"a3390260615eb75a33190e3c78bdd6cb09f82ccf4b870f6f602c3b657eb25500
"427652c689e93aabd62ab25256d6d56fdc771f84f0d2f7cb1513e848755ace92
-id
"version_1_87_x
-notice_url

View File

@@ -385,6 +385,192 @@
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/mysql/">MySQL</a>:</span>
<ul>
<li>
<div>
<strong>Breaking changes to experimental APIs</strong>:
<ul>
<li>
<div>
The thread-safety feature in <code><span class="identifier">connection_pool</span></code>
has been redesigned to overcome some design flaws found by
user experience. The boolean option <code><span class="identifier">thread_safe</span></code>
has been added to <code><span class="identifier">pool_params</span></code>
(set to <code><span class="keyword">false</span></code>
by default). When set, some pool functions change behavior
so they can be safely used concurrently. This works by internally
creating a strand, dispatching to it when required, and re-wiring
cancellation signals. When <code><span class="identifier">pool_params</span><span class="special">::</span><span class="identifier">thread_safe</span></code>
is <code><span class="keyword">false</span></code>, the
usual Asio executor semantics apply, with no overhead.
</div>
</li>
<li>
<div>
<code><span class="identifier">pool_executor_params</span></code>
has been removed, replaced by <code><span class="identifier">pool_params</span><span class="special">::</span><span class="identifier">connection_executor</span></code>
and <code><span class="identifier">pool_params</span><span class="special">::</span><span class="identifier">thread_safe</span></code>.
</div>
</li>
<li>
<div>
The built-in timeout functionality in <code><span class="identifier">connection_pool</span><span class="special">::</span><span class="identifier">async_get_connection</span></code>
has been completely removed. This function now supports per-operation
cancellation, so the same functionality can be achieved by
using <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">cancel_after</span></code>.
</div>
</li>
<li>
<div>
Destroying a <code><span class="identifier">connection_pool</span></code>
now cancels outstanding async operations, as other Asio I/O
objects do. This prevents resource leaks: an outstanding <code><span class="identifier">async_run</span></code> operation extends
the pool's lifetime until the operation completes, which could
cause the pool object to never get destroyed.
</div>
</li>
<li>
<div>
When an <code><span class="identifier">async_get_connection</span></code>
operation is cancelled before a connection is available, the
operation now consistently fails with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">pool_not_running</span></code>,
<code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">no_connection_available</span></code>
or <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">pool_cancelled</span></code>,
depending on the pool state (previously, it would fail with
either <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">timeout</span></code>
or the last error code encountered by the internal <code><span class="identifier">async_connect</span></code> operations
performed by the pool). This information is now included in
the output diagnostics object.
</div>
</li>
<li>
<div>
<code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">timeout</span></code>
and <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">cancelled</span></code>
have been removed.
</div>
</li>
<li>
<div>
Calling <code><span class="identifier">async_get_connection</span></code>
on a pool that is not running no longer fails immediately,
but waits for <code><span class="identifier">async_run</span></code>
to be called.
</div>
</li>
<li>
<div>
<code><span class="identifier">sequence</span></code> now
returns an owning type. This makes it safe use with <code><span class="identifier">with_params</span></code> in deferred async
operations. <code><span class="identifier">format_sequence_view</span></code>
has been renamed to <code><span class="identifier">format_sequence</span></code>.
</div>
</li>
<li>
<div>
<code><span class="identifier">sequence</span></code> has
been moved to a separate header, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">mysql</span><span class="special">/</span><span class="identifier">sequence</span><span class="special">.</span><span class="identifier">hpp</span></code>.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<code><span class="identifier">any_connection</span></code>, client-side
SQL formatting (including <code><span class="identifier">format_sql</span></code>
and <code><span class="identifier">with_params</span></code>)
and <code><span class="identifier">connection_pool</span></code>
have been promoted to stable APIs.
</div>
</li>
<li>
<div>
<code><span class="identifier">any_connection</span></code> is
now recommended for new code, instead of <code><span class="identifier">connection</span></code>
and its aliases <code><span class="identifier">tcp_connection</span></code>,
<code><span class="identifier">tcp_ssl_connection</span></code>
and <code><span class="identifier">unix_connection</span></code>.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">with_params</span></code>,
a new <code><span class="identifier">ExecutionRequest</span></code>
encapsulating a query template string and parameters to expand the
query. When executed, it expands the query using client-side SQL
formatting and sends it to the server for execution. This is the
new recommended way to run simple queries with parameters.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">with_diagnostics</span></code>,
an adapter completion token that transforms exceptions thrown by
async functions to include <code><span class="identifier">diagnostics</span></code>
objects, matching how sync throwing functions work.
</div>
</li>
<li>
<div>
<code><span class="identifier">with_diagnostics</span><span class="special">(</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">deferred</span><span class="special">)</span></code> is now the default completion token
for all operations in <code><span class="identifier">any_connection</span></code>
and <code><span class="identifier">connection_pool</span></code>.
This causes expressions like <code><span class="identifier">co_await</span>
<span class="identifier">conn</span><span class="special">.</span><span class="identifier">async_connect</span><span class="special">(</span><span class="identifier">params</span><span class="special">)</span></code>
to behave identically to <code><span class="identifier">conn</span><span class="special">.</span><span class="identifier">connect</span><span class="special">(</span><span class="identifier">params</span><span class="special">)</span></code>. Note that <code><span class="identifier">connection</span></code>
and its type aliases haven't been updated to match this behavior.
</div>
</li>
<li>
<div>
Async functions in <code><span class="identifier">connection_pool</span></code>
now support per-operation cancellation.
</div>
</li>
<li>
<div>
All async operations now support <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">cancel_after</span></code>,
<code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">cancel_at</span></code> and similar completion
tokens that require a bound executor to initiations passed to <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">async_initiate</span></code>.
</div>
</li>
<li>
<div>
<code><span class="identifier">connection</span></code> and <code><span class="identifier">any_connection</span></code> now dispatch immediate
completions through the token's immediate executor.
</div>
</li>
<li>
<div>
Fixed an issue that caused a crash when trying to use an <code><span class="identifier">any_connection</span></code> that hasn't been
previously connected.
</div>
</li>
<li>
<div>
Removed an incorrect <code><span class="keyword">noexcept</span></code>
specifier from a potentially throwing constructor in <code><span class="identifier">field</span></code>.
</div>
</li>
<li>
<div>
Fixed an issue that could cause the write buffer size to exceed the
configured buffer size limit.
</div>
</li>
<li>
<div>
Heavily updated the documentation and examples to be more relevant
and reflect the new recommended best practices.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/smart_ptr/">SmartPtr</a>:</span>