2
0
mirror of https://github.com/boostorg/website.git synced 2026-02-20 15:22:08 +00:00
Files
website/users/history/in_progress.html
2022-03-15 21:26:06 +00:00

783 lines
33 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>In Progress Releases</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="icon" href="/favicon.ico" type="image/ico" />
<link rel="stylesheet" type="text/css" href="/style-v2/section-boost.css" />
<!--[if IE 7]> <style type="text/css"> body { behavior: url(/style-v2/csshover3.htc); } </style> <![endif]-->
</head>
<!-- Don't edit this page! It's generated by site-tools/site-tools.py -->
<body>
<div id="heading">
<!--#include virtual="/common/heading.html" --> </div>
<div id="body">
<div id="body-inner">
<div id="content">
<div class="section" id="intro">
<div class="section-0">
<div class="section-title">
<h1>In Progress Releases</h1>
</div>
<div class="section-alert"><p>Note: The release notes
on this page are for releases still under development.
Please don't use this page as a source of information,
it's here for development purposes only. Everything is
subject to change.</p></div>
<div class="section-body">
<h2><span class=
"news-title">Version 1.79.0</span></h2>
<p><span class=news-date">In Progress</span></p>
<div class="news-description">
<div class="description">
<div id="version_1_79_0.new_libraries">
<h3><span class="link">New Libraries</span></h3>
<ul>
<li>
<div>
<em>TODO</em>
</div>
</li>
</ul>
</div>
<div id="version_1_79_0.updated_libraries">
<h3><span class="link">Updated Libraries</span></h3>
<ul>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/assert/">Assert</a>:</span>
<ul>
<li>
<div>
<code><span class="identifier">source_location</span><span class="special">().</span><span class="identifier">file_name</span><span class="special">()</span></code>
and <code><span class="identifier">source_location</span><span class="special">().</span><span class="identifier">function_name</span><span class="special">()</span></code> now return <code><span class="string">""</span></code>
instead of <code><span class="string">"(unknown)"</span></code>.
</div>
</li>
<li>
<div>
Added a <code><span class="identifier">source_location</span></code>
constructor from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">source_location</span></code>.
</div>
</li>
<li>
<div>
Changed <code><span class="identifier">BOOST_CURRENT_LOCATION</span></code>
to more closely match the behavior of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">source_location</span><span class="special">::</span><span class="identifier">current</span><span class="special">()</span></code>, such as being usable at top level
or as a default function argument.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/atomic/">Atomic</a>:</span>
<ul>
<li>
<div>
Fixed compilation for Universal Windows Platform (UWP). (<a href="https://github.com/boostorg/atomic/issues/54">#54</a>)
</div>
</li>
<li>
<div>
Added <code><span class="identifier">BOOST_ATOMIC_NO_DARWIN_ULOCK</span></code>
configuration macro. The macto affects compilation on Darwin systems
and disables <code><span class="identifier">ulock</span></code>-based
implementation of waiting and notifying operations. This may be useful
to comply with Apple App Store requirements. (<a href="https://github.com/boostorg/atomic/issues/55">#55</a>)
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/core/">Core</a>:</span>
<ul>
<li>
<div>
Made <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pointer_traits</span></code> SFINAE friendly,
addressing LWG3545. (Glen Fernandes)
</div>
</li>
<li>
<div>
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">allocator_traits</span></code> that uses the
individual allocator access traits. This implementation supports
C++03 and above. (Glen Fernandes)
</div>
</li>
<li>
<div>
Updated the allocator access traits to support most of the C++11
allocator model in C++03. (Glen Fernandes)
</div>
</li>
<li>
<div>
<code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">iterator</span><span class="special">.</span><span class="identifier">hpp</span></code> is deprecated and will be removed
in a future release. The header defines <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator</span></code>
template, which is equivalent to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code>
in <code><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span></code> header. However, since <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code> is itself deprecated in
C++17, users are advised to remove <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator</span></code>
or <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code> use from their code.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">verbose_terminate_handler</span></code>, a utility
function intended to be passed to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">set_terminate</span></code>
that prints information about the uncaught exception to <code><span class="identifier">stderr</span></code>.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/describe/">Describe</a>:</span>
<ul>
<li>
<div>
Enabled unions in <code><span class="identifier">BOOST_DESCRIBE_STRUCT</span></code>
and updated examples to check <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">is_union</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>.
</div>
</li>
<li>
<div>
Added example of defining a <code><span class="identifier">fmtlib</span></code>
class formatter.
</div>
</li>
<li>
<div>
Added example of defining a <code><span class="identifier">fmtlib</span></code>
enum formatter.
</div>
</li>
<li>
<div>
Added example of printing pointers to members.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/filesystem/">Filesystem</a>:</span>
<ul>
<li>
<div>
<strong>v3:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">replace_extension</span></code>
now works in terms of <strong>v3</strong> definition
of <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">extension</span></code> rather than <strong>v4</strong>.
</div>
</li>
<li>
<div>
Fixed compilation of path appending and concatenation operators with
arguments of types convertible to <code><span class="identifier">path</span></code>
or compatible string type. (<a href="https://github.com/boostorg/filesystem/issues/223">#223</a>)
</div>
</li>
<li>
<div>
On POSIX systems that support <code><span class="identifier">fdopendir</span></code>
and <code><span class="identifier">O_NOFOLLOW</span></code> and
on Windows, <code><span class="identifier">remove_all</span></code>
is now protected against <a href="https://www.cve.org/CVERecord?id=CVE-2022-21658">CVE-2022-21658</a>.
The vulnerability is a race condition that allows a third party process
to replace a directory that is being concurrently processed by <code><span class="identifier">remove_all</span></code> with a directory symlink
and cause <code><span class="identifier">remove_all</span></code>
to follow the symlink and remove files in the linked directory instead
of removing the symlink itself. (<a href="https://github.com/boostorg/filesystem/issues/224">#224</a>)
</div>
</li>
<li>
<div>
On Windows, in <code><span class="identifier">remove</span></code>
and <code><span class="identifier">remove_all</span></code> implementation,
use POSIX semantics for file removal, when supported by the OS (Windows
10 1709 and later). When POSIX semantics is supported, the file name
is removed from the filesystem namespace as soon as the file is marked
for deletion, even if it is still open and in use. With legacy Windows
semantics, the file name remains present in the the filesystem namespace
until the last file handle to the file is closed, which allows the
file marked for deletion to be opened and prevents creating new files
with the same name. (<a href="https://github.com/boostorg/filesystem/issues/216">#216</a>)
</div>
</li>
<li>
<div>
On Windows, <code><span class="identifier">remove</span></code>
and <code><span class="identifier">remove_all</span></code> now
support deleting read-only directories. Support for removing read-only
non-directory files was added previously.
</div>
</li>
<li>
<div>
On Windows, <code><span class="identifier">directory_iterator</span></code>
internal implementation has been reworked to better utilize modern
Windows APIs, which may improve performance while handling symlinks.
</div>
</li>
<li>
<div>
On Windows, initialize internal WinAPI function pointers early, if
possible, to allow Boost.Filesystem operations to be invoked in global
constructors. This is only supported on MSVC, GCC, Clang and compatible
compilers.
</div>
</li>
<li>
<div>
On Windows, <code><span class="identifier">resize_file</span></code>
should no longer fail with an error if the file to be resized is
opened.
</div>
</li>
<li>
<div>
Disabled use of the <code><span class="identifier">statx</span></code>
syscall on Android prior to 11.0 (API version 30). The syscall is
blacklisted by seccomp and causes process termination in runtime.
(<a href="https://github.com/boostorg/filesystem/issues/229">#229</a>)
</div>
</li>
<li>
<div>
<strong>Deprecated:</strong> <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">string_file</span><span class="special">.</span><span class="identifier">hpp</span></code>
header is deprecated and will be removed in a future release. The
header is no longer included by <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">.</span><span class="identifier">hpp</span></code>
by default. Users are advised to implement the functionality themselves
or migrate to other implementations.
</div>
</li>
<li>
<div>
<strong>Deprecated:</strong> Windows CE support is
deprecated and will be removed in a future release. Windows CE has
been untested for many years and is likely non-functional.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/integer/">Integer</a>:</span>
<ul>
<li>
<div>
Optimized <code><span class="identifier">integer_log2</span></code>
implementation to use bit operations internally. This allows to employ
bit instructions available on most modern CPUs. (<a href="https://github.com/boostorg/integer/issues/31">#31</a>)
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/io/">IO</a>:</span>
<ul>
<li>
<div>
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">io</span><span class="special">::</span><span class="identifier">basic_nullbuf</span></code>, a null stream buffer,
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">basic_onullstream</span></code>, a null output
stream (Glen Fernandes).
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/iterator/">Iterator</a>:</span>
<ul>
<li>
<div>
In <code><span class="identifier">counting_iterator</span></code>,
added support for built-in 128-bit integer types supported by gcc
and clang and compatible compilers on some target platforms.
</div>
</li>
<li>
<div>
Silenced gcc warnings about deprecated implicit copy assignment operator
in <code><span class="identifier">counting_iterator</span></code>.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/json/">JSON</a>:</span>
<ul>
<li>
<div>
Standalone mode of the library is removed. Users who wish to continue
using standalone JSON can switch to <a href="https://github.com/CPPAlliance/standalone-json.git">the
C++ Alliance fork</a>.
</div>
</li>
<li>
<div>
Add <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code> overloads.
</div>
</li>
<li>
<div>
Add <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">source_location</span></code> to <code><span class="identifier">error_codes</span></code>.
</div>
</li>
<li>
<div>
Add support for JSON Pointer.
</div>
</li>
<li>
<div>
Naturally grow string during serialization.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/log/">Log</a>:</span>
<ul>
<li>
<div>
General changes:
<ul>
<li>
<div>
In <code><span class="identifier">text_file_backend</span></code>,
added support for appending to a previously written log file,
when file rotation is used and log file names use file counters.
</div>
</li>
<li>
<div>
<strong>Breaking change:</strong> The <code><span class="identifier">file_collector</span></code> interface
has changed:
<ul>
<li>
<div>
<code><span class="identifier">scan_for_files</span></code>
method returns a <code><span class="identifier">scan_result</span></code>
structure that contains information collected during
the scan;
</div>
</li>
<li>
<div>
<code><span class="identifier">is_in_storage</span></code>
method added for testing if a path refers to a file within
the target storage directory.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
Added a new <code><span class="identifier">invoke_manip</span></code>
stream manipulator that can be used for injecting user's function
into a stream output expression.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
Bug fixes:
<ul>
<li>
<div>
Fixed file counter being set to zero if the user calls <code><span class="identifier">text_file_backend</span><span class="special">::</span><span class="identifier">scan_for_files</span></code> multiple times,
and the second and the following calls don't find any new files.
(<a href="https://github.com/boostorg/log/issues/179">#179</a>)
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
See <a href="/doc/libs/master/libs/log/doc/html/log/changelog.html">changelog</a>
for more details.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/multi_index/">Multi-index Containers</a>:</span>
<ul>
<li>
<div>
Improved the efficiency of <code><span class="identifier">count</span></code>
operations in ranked indices from <code><span class="identifier">O</span><span class="special">(</span><span class="identifier">log</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">count</span><span class="special">)</span></code>
to <code><span class="identifier">O</span><span class="special">(</span><span class="identifier">log</span><span class="special">(</span><span class="identifier">n</span><span class="special">))</span></code>.
Contributed by Damian Sawicki.
</div>
</li>
<li>
<div>
Maintenance work.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/nowide/">Nowide</a>:</span>
<ul>
<li>
<div>
Fix compilation issues on some platforms (e.g. GCC 11 on MinGW-w64
and Cygwin)
</div>
</li>
<li>
<div>
Fix missing include when using <code><span class="identifier">BOOST_USE_WINDOWS_H</span></code>
and <code><span class="identifier">WIN32_LEAN_AND_MEAN</span></code>
</div>
</li>
<li>
<div>
Add sanity check when using <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">nowide</span><span class="special">::</span><span class="identifier">stat</span></code>
with <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">nowide</span><span class="special">::</span><span class="identifier">stat_t</span></code>
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/predef/">Predef</a>:</span>
<ul>
<li>
<div>
Version 1.14.0
</div>
</li>
<li>
<div>
Add detection of LoongArch (from Zhang Na).
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/smart_ptr/">Smart Pointers</a>:</span>
<ul>
<li>
<div>
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">get_allocator_pointer</span></code> to obtain
the Allocator pointer from the result of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">allocate_unique</span></code>
(Glen Fernandes).
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/system/">System</a>:</span>
<ul>
<li>
<div>
Added a <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">source_location</span></code> parameter to <code><span class="identifier">throw_exception_from_error</span></code>.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">throw_exception_from_error</span></code>
overloads for <code><span class="identifier">errc</span><span class="special">::</span><span class="identifier">errc_t</span></code>,
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">errc</span></code>,
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception_ptr</span></code>.
</div>
</li>
<li>
<div>
<code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span></code> now automatically supplies
<code><span class="identifier">BOOST_CURRENT_LOCATION</span></code>
to <code><span class="identifier">throw_exception_from_error</span></code>
via a default argument.
</div>
</li>
<li>
<div>
Added an <code><span class="identifier">errc</span><span class="special">::</span><span class="identifier">make_error_code</span></code> overload taking
a source location.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/throw_exception/">ThrowException</a>:</span>
<ul>
<li>
<div>
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">throw_with_location</span></code>, a more lightweight
alternative of <code><span class="identifier">BOOST_THROW_EXCEPTION</span></code>
for programs that do not use Boost.Exception.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/unordered/">Unordered</a>:</span>
<ul>
<li>
<div>
All containers have been updated to support heterogeneous <code><span class="identifier">count</span></code>, <code><span class="identifier">equal_range</span></code>
and <code><span class="identifier">find</span></code>.
</div>
</li>
<li>
<div>
All containers now implement the member function <code><span class="identifier">contains</span></code>.
</div>
</li>
<li>
<div>
<code><span class="identifier">erase_if</span></code> has been
implemented for all containers.
</div>
</li>
<li>
<div>
All containers have been updated to support heterogeneous <code><span class="identifier">erase</span></code> and <code><span class="identifier">extract</span></code>.
</div>
</li>
<li>
<div>
Changed behavior of <code><span class="identifier">reserve</span></code>
to eagerly allocate.
</div>
</li>
<li>
<div>
Various warning fixes in the test suite.
</div>
</li>
<li>
<div>
Update code to internally use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">allocator_traits</span></code>.
</div>
</li>
<li>
<div>
Switch to Fibonacci hashing.
</div>
</li>
<li>
<div>
Update documentation to be written in AsciiDoc instead of QuickBook.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/variant2/">Variant2</a>:</span>
<ul>
<li>
<div>
Added <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code>
for <code><span class="identifier">monostate</span></code>.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/wave/">Wave</a>:</span>
<ul>
<li>
<div>
C++11 now required for building Wave itself
</div>
</li>
<li>
<div>
Fixed bugs:
<ul>
<li>
<div>
<a href="https://github.com/boostorg/wave/issues/135">#135</a>: Comma operators in array subscripts are deprecated
in C++20
</div>
</li>
<li>
<div>
<a href="https://github.com/boostorg/wave/issues/137">#137</a>: Simple unknown directive =&gt; found_unknown_directive
is not called, stripped of pound.
</div>
</li>
<li>
<div>
<a href="https://github.com/boostorg/wave/issues/138">#138</a>: Empty ifdef block does not emit line directive
for missing whitespace
</div>
</li>
<li>
<div>
<a href="https://github.com/boostorg/wave/issues/143">#143</a>: Parsing __has_include() fails with trailing tokens
</div>
</li>
<li>
<div>
<a href="https://github.com/boostorg/wave/issues/145">#145</a>: Sanitizer complains about reset_version()
</div>
</li>
<li>
<div>
<a href="https://github.com/boostorg/wave/issues/147">#147</a>: bitwise operations between different enumeration
types are deprecated
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/leaf/">LEAF</a>:</span>
<ul>
<li>
<div>
Support for FreeRTOS and other embedded platforms
</div>
</li>
<li>
<div>
Improved diagnostic information
</div>
</li>
<li>
<div>
Improved configuration macros
</div>
</li>
<li>
<div>
BOOST_LEAF_CHECK using statement expressions under __GNUC__
</div>
</li>
<li>
<div>
Fixed symbol demangling bug
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/qvm/">QVM</a>:</span>
<ul>
<li>
<div>
Added constexpr under C++17
</div>
</li>
<li>
<div>
Improved single header distribution
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div id="version_1_79_0.compilers_tested">
<h3><span class="link">Compilers Tested</span></h3>
<p>
Boost's primary test compilers are:
</p>
<ul>
<li>
<div>
<em>TODO</em>
</div>
</li>
</ul>
<p>
Boost's additional test compilers include:
</p>
<ul>
<li>
<div>
<em>TODO</em>
</div>
</li>
</ul>
</div>
<div id="version_1_79_0.acknowledgements">
<h3><span class="link">Acknowledgements</span></h3>
<p>
<em>TODO</em>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="sidebar">
<!--#include virtual="/common/sidebar-common.html" --><!--#include virtual="/common/sidebar-boost.html" --> </div>
<div class="clear"></div>
</div>
</div>
<div id="footer">
<div id="footer-left">
<div id="copyright">
<p>Copyright Rene Rivera 2006-2007.</p>
</div><!--#include virtual="/common/footer-license.html" --> </div>
<div id="footer-right">
<!--#include virtual="/common/footer-banners.html" --> </div>
<div class="clear"></div>
</div>
</body>
</html>