Compare commits

..

13 Commits

Author SHA1 Message Date
jzmaddock
015247ccd0 Add msvc support for [[maybe_unused]] attribute.
Fixes: https://github.com/boostorg/serialization/issues/271

Also removes failing cuda+clang test as it's an inscrutable system setup issue.
2023-08-25 18:54:49 +01:00
jzmaddock
d483059795 Merge pull request #480 from boostorg/mclow-patch-1
Update version to 1.84.0
2023-08-11 19:20:23 +01:00
Marshall Clow
e11564fb3d Update version to 1.84.0 2023-08-11 10:17:26 -07:00
jzmaddock
a1cf5d5314 Merge pull request #475 from boostorg/ci_2023_04
Update CI script for current runners.
2023-04-15 13:20:12 +01:00
jzmaddock
a1edcd56a0 Update CI script for current runners. 2023-04-15 12:22:44 +01:00
jzmaddock
f5726a26dc Merge pull request #474 from boostorg/mclow-1.83.0
Bump version to 1.83.0
2023-04-15 09:48:37 +01:00
Marshall Clow
9953128bd4 Bump version to 1.83.0 2023-04-14 17:04:07 -07:00
jzmaddock
4cf70b168f Merge pull request #446 from loongson-zn/develop
Add support for LoongArch
2023-03-23 17:40:42 +00:00
jzmaddock
429c1982d4 Documentation update.
[CI SKIP]
2023-02-22 19:08:52 +00:00
jzmaddock
ab271393a7 Merge pull request #469 from MarcelRaad/msvc_cpp20_with_auto_ptr_etc
Dinkumware: disable C++ 98 binders without adaptor typedefs
2023-01-21 20:08:08 +00:00
Marcel Raad
1f4e789023 Dinkumware: disable C++ 98 binders without adaptor typedefs
When building with MSVC in C++ 20 mode with `_HAS_AUTO_PTR_ETC`
explicitly enabled, `std:bind1st` and `std::bind2nd` are unavailable
unless `_HAS_DEPRECATED_ADAPTOR_TYPEDEFS` is also explicitly enabled.
2023-01-21 14:04:19 +01:00
jzmaddock
42e1b11952 Merge pull request #468 from boostorg/issue467
Update VS/CLR support.
2023-01-14 09:09:34 +00:00
Zhang Na
a665838eb0 Add support for LoongArch 2022-09-21 09:08:22 +08:00
9 changed files with 195 additions and 85 deletions

View File

@@ -151,7 +151,7 @@ jobs:
strategy:
fail-fast: false
matrix:
toolset: [ clang, gcc-11, gcc-10, gcc-9 ]
toolset: [ clang, gcc-11, gcc-10 ]
steps:
- uses: actions/checkout@v3
with:
@@ -511,13 +511,13 @@ jobs:
run: |
source ../emsdk/emsdk_env.sh
emcc -pthread -s EXIT_RUNTIME=1 -s PTHREAD_POOL_SIZE=32 -I. -O3 -o config_info_pthread libs/config/test/config_info.cpp
node --experimental-wasm-threads --experimental-wasm-bulk-memory config_info_pthread
node --experimental-wasm-threads config_info_pthread
- name: Test config_test (pthread)
working-directory: ../boost-root
run: |
source ../emsdk/emsdk_env.sh
emcc -pthread -s EXIT_RUNTIME=1 -s PTHREAD_POOL_SIZE=32 -s DISABLE_EXCEPTION_CATCHING=0 -I. -O3 -o config_test_pthread libs/config/test/config_test.cpp
node --experimental-wasm-threads --experimental-wasm-bulk-memory config_test_pthread
node --experimental-wasm-threads config_test_pthread
ubuntu-cuda:
runs-on: ubuntu-20.04
strategy:
@@ -570,9 +570,6 @@ jobs:
- name: Config_test nvcc+clang
run: nvcc -std=c++${{ matrix.std }} --compiler-bindir=clang++ -o config_test -I../../.. config_test.cpp -latomic && ./config_test
working-directory: ../boost-root/libs/config/test
- name: Config_test nvcc-cuda+clang
run: nvcc -c -std=c++${{ matrix.std }} --compiler-bindir=clang++ -I../../.. config_test.cu
working-directory: ../boost-root/libs/config/test
- name: Config_test clang-cuda
run: clang++ -nocudalib --no-cuda-version-check -c --cuda-gpu-arch=sm_75 -std=c++${{ matrix.std }} -I../../.. config_test.cu
working-directory: ../boost-root/libs/config/test

View File

@@ -18,6 +18,7 @@ obj 64 : 64.cpp ;
obj arm : arm.cpp ;
obj combined : combined.cpp ;
obj loongarch : loongarch.cpp ;
obj mips : mips.cpp ;
alias mips1 : mips ; # Backwards compatibility
obj power : power.cpp ;

View File

@@ -0,0 +1,11 @@
// loongarch.cpp
//
// Copyright (c) 2022 Zhang Na
//
// 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)
#if !defined(__loongarch__)
#error "Not LoongArch"
#endif

View File

@@ -33,8 +33,6 @@
that describe C++03 defects</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features">Macros
that describe optional features</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features">Macros
that describe possible C++ future features</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported">Macros
that describe C++11 features not supported</a></span></dt>
<dt><span class="section"><a href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
@@ -2559,46 +2557,6 @@
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features" title="Macros that describe possible C++ future features">Macros
that describe possible C++ future features</a>
</h3></div></div></div>
<p>
The following macros describe features that may be included in some future
ISO C++ standard, but have not yet been approved for inclusion in the language.
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Macro
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody><tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_CONCEPTS</span></code>
</p>
</td>
<td>
<p>
The compiler supports concepts.
</p>
</td>
</tr></tbody>
</table></div>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported"></a><a class="link" href="boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported" title="Macros that describe C++11 features not supported">Macros
that describe C++11 features not supported</a>
</h3></div></div></div>
@@ -2650,6 +2608,19 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_ALIGNOF</span></code>
</p>
</td>
<td>
<p>
The compiler does not support the <code class="computeroutput"><span class="keyword">alignof</span></code>
keyword.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_ALLOCATOR</span></code>
@@ -2915,7 +2886,9 @@
</td>
<td>
<p>
The standard library does not provide header &lt;codecvt&gt;.
The standard library does not provide header &lt;codecvt&gt;. Note
that this header is deprecated post C++17, and therefore the macro
may be set as a result of the feature being deliberately removed.
</p>
</td>
</tr>
@@ -3805,6 +3778,19 @@
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NULLPTR</span></code>
</p>
</td>
<td>
<p>
If <code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_NULLPTR</span></code>
is not defined (i.e. C++11 compliant compilers), expands to <code class="computeroutput"><span class="keyword">nullptr</span></code>, otherwise expands to <code class="computeroutput"><span class="number">0</span></code>.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
@@ -4222,6 +4208,19 @@
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX17_DEDUCTION_GUIDES</span></code>
</p>
</td>
<td>
<p>
The compiler does not support class template argument deduction
(CTAD) guides.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
@@ -4356,7 +4355,7 @@
</td>
<td>
<p>
The compiler does not support the header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">format</span><span class="special">&gt;</span></code>.
The compiler does not support the header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">source_location</span><span class="special">&gt;</span></code>.
</p>
</td>
</tr>
@@ -4452,7 +4451,7 @@
</td>
<td>
<p>
The compiler does not support the header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">range</span><span class="special">&gt;</span></code>.
The compiler does not support the header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">ranges</span><span class="special">&gt;</span></code>.
</p>
</td>
</tr>
@@ -4492,6 +4491,18 @@
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX20_HDR_VERSION</span></code>
</p>
</td>
<td>
<p>
The compiler does not support the header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">version</span><span class="special">&gt;</span></code>.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
@@ -4590,6 +4601,19 @@
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CXX11_HDR_CODECVT</span></code>
</p>
</td>
<td>
<p>
The standard library no longer supports <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">codecvt</span><span class="special">&gt;</span></code>,
there is as yet no replacement.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
@@ -4824,8 +4848,8 @@
<span class="keyword">case</span> <span class="number">41</span><span class="special">:</span>
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">truth_is_out_there</span><span class="special">)</span> <span class="special">{</span>
<span class="special">++</span><span class="identifier">x</span><span class="special">;</span>
<span class="identifier">BOOST_FALLTHROUGH</span><span class="special">;</span> <span class="comment">// Use instead of/along with annotations in </span>
<span class="comment">// comments. </span>
<span class="identifier">BOOST_FALLTHROUGH</span><span class="special">;</span> <span class="comment">// Use instead of/along with annotations in</span>
<span class="comment">// comments.</span>
<span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">x</span><span class="special">;</span>
<span class="special">}</span>
@@ -5017,14 +5041,13 @@
</td>
<td>
<p>
This macro can be used in place of the compiler specific variant
This macro can be used in place of the compiler-specific variant
of the C99 <code class="computeroutput"><span class="identifier">restrict</span></code>
keyword to notify the compiler that, for the lifetime of the qualified
pointer variable, only it and its derivative value will be used
to gain access to the object it references. This limits the effect
of pointer aliasing and helps the optimizers in generating better
code. However, i this condition is violated, undefined behavior
may occurs.
pointer variable, only it and its derivative values will be used
to access the object it references. This limits the effect of pointer
aliasing and helps optimizers in generating better code. However,
if this condition is violated, undefined behavior may occur.
</p>
<p>
Usage example:
@@ -5235,6 +5258,45 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_DEPRECATED</span><span class="special">(</span><span class="identifier">M</span><span class="special">)</span></code>
</p>
</td>
<td>
<p>
Expands to an attribute for a symbol that generates warnings when
that symbol is used in code. The warnings may contain a message
<code class="computeroutput"><span class="identifier">M</span></code>, which must be
a string literal. This attribute may be applied to types, functions
or objects and is typically used to mark parts of the API as deprecated
with a recommendation of replacement.
</p>
<p>
Example:
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_DEPRECATED</span><span class="special">(</span><span class="string">"Use bar() instead."</span><span class="special">)</span>
<span class="keyword">void</span> <span class="identifier">foo</span><span class="special">();</span>
<span class="keyword">template</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">T</span> <span class="special">&gt;</span>
<span class="keyword">class</span> <span class="identifier">BOOST_DEPRECATED</span><span class="special">(</span><span class="string">"Use std::unique_ptr instead."</span><span class="special">)</span> <span class="identifier">auto_ptr</span>
<span class="special">{</span>
<span class="special">};</span>
<span class="identifier">BOOST_DEPRECATED</span><span class="special">(</span><span class="string">"Use std::numeric_limits&lt;int&gt;::max() instead."</span><span class="special">)</span>
<span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">max_int</span> <span class="special">=</span> <span class="number">0x7fffffff</span><span class="special">;</span>
</pre>
<p>
</p>
<p>
The warnings issued by <code class="computeroutput"><span class="identifier">BOOST_DEPRECATED</span></code>
can be suppressed by defining <code class="computeroutput"><span class="identifier">BOOST_ALLOW_DEPRECATED_SYMBOLS</span></code>
or <code class="computeroutput"><span class="identifier">BOOST_ALLOW_DEPRECATED</span></code>
macros.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PRAGMA_MESSAGE</span><span class="special">(</span><span class="identifier">M</span><span class="special">)</span></code>
@@ -5278,7 +5340,9 @@
</p>
<p>
The messages issued by <code class="computeroutput"><span class="identifier">BOOST_HEADER_DEPRECATED</span></code>
can be suppressed by defining the macro <code class="computeroutput"><span class="identifier">BOOST_ALLOW_DEPRECATED_HEADERS</span></code>.
can be suppressed by defining <code class="computeroutput"><span class="identifier">BOOST_ALLOW_DEPRECATED_HEADERS</span></code>
or <code class="computeroutput"><span class="identifier">BOOST_ALLOW_DEPRECATED</span></code>
macros.
</p>
</td>
</tr>
@@ -5476,6 +5540,29 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_CLANG_VERSION</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
Defined to the version of the Clang compiler, usually <code class="computeroutput"><span class="identifier">__clang_major__</span> <span class="special">*</span>
<span class="number">10000</span> <span class="special">+</span>
<span class="identifier">__clang_minor__</span> <span class="special">*</span>
<span class="number">100</span> <span class="special">+</span>
<span class="identifier">__clang_patchlevel__</span></code>.
On Apple Clang, has a best-effort value reflecting the upstream
version, rather than the Apple version.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_BORLANDC</span></code>
@@ -5568,18 +5655,22 @@
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_WREGEX</span></code>
<code class="computeroutput"><span class="identifier">BOOST_MSSTL_VERSION</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
Defined if the regex library does not support wide character regular
expressions.
Defined if the Microsoft Visual C++ standard library is in use.
Has the value of <code class="computeroutput"><span class="identifier">_MSVC_STL_VERSION</span></code>
when that is defined, and a synthesized value of the same format
otherwise. Example values are 143 for VS2022/msvc-14.3, 142 for
VS2019/msvc-14.2, 141 for VS2017/msvc-14.1, 140 for VS2015/msvc-14.0,
120 for VS2013/msvc-12.0, and so on.
</p>
</td>
</tr>
@@ -6859,6 +6950,26 @@
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_DISABLE_EXPLICIT_SYMBOL_VISIBILITY</span></code>
</p>
</td>
<td>
<p>
Disables the effect of the BOOST_SYMBOL_EXPORT, BOOST_SYMBOL_IMPORT
and BOOST_SYMBOL_VISIBLE macros, in order to revert to the default
compiler behaviour. Note that this option should never be used
if Boost libraries are being linking against dynamically, or
if you are building a shared library that exposes Boost types
in its public API. It is however advisable when statically-linking
against Boost to prevent Boost symbols from leaking from the
binary: for instance because you are building a plug-in for a
software which may itself use Boost which could cause ODR conflicts.
</p>
</td>
</tr>
</tbody>
</table></div>
<p>

View File

@@ -58,12 +58,12 @@
</dl></dd>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html">Boost Macro Reference</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.broad_c___standard_level_checks">Broad
C++ Standard Level Checks</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects">Macros
that describe C++03 defects</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features">Macros
that describe optional features</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features">Macros
that describe possible C++ future features</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported">Macros
that describe C++11 features not supported</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
@@ -992,7 +992,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: March 05, 2021 at 17:51:35 GMT</small></p></td>
<td align="left"><p><small>Last revised: February 22, 2023 at 19:02:21 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

@@ -630,22 +630,6 @@ standard).
[endsect]
[section Macros that describe possible C++ future features]
The following macros describe features that may be included in some future
ISO C++ standard, but have not yet been approved for inclusion in the language.
[table
[[Macro ][Description ]]
[[`BOOST_HAS_CONCEPTS`][
The compiler supports concepts.
]]
]
[endsect]
[section Macros that describe C++11 features not supported]
The following macros describe features in the 2011 ISO C++ standard, formerly known as C++0x,

View File

@@ -305,6 +305,10 @@
# define BOOST_CXX_VERSION 201402L
#endif
#if BOOST_CXX_VERSION >= 201703L
# define BOOST_ATTRIBUTE_UNUSED [[maybe_unused]]
#endif
#ifndef BOOST_COMPILER
// TODO:
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The

View File

@@ -240,6 +240,8 @@
# define BOOST_NO_CXX98_RANDOM_SHUFFLE
# define BOOST_NO_CXX98_FUNCTION_BASE
# define BOOST_NO_CXX98_BINDERS
# elif defined(_HAS_DEPRECATED_ADAPTOR_TYPEDEFS) && (_HAS_DEPRECATED_ADAPTOR_TYPEDEFS == 0)
# define BOOST_NO_CXX98_BINDERS
# endif
#endif
//

View File

@@ -19,7 +19,7 @@
// BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version
#define BOOST_VERSION 108200
#define BOOST_VERSION 108400
//
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
@@ -27,6 +27,6 @@
// number, y is the minor version number, and z is the patch level if not 0.
// This is used by <config/auto_link.hpp> to select which library version to link to.
#define BOOST_LIB_VERSION "1_82"
#define BOOST_LIB_VERSION "1_84"
#endif