Skip to content

Commit

Permalink
1.83.0 : リリースノートを追加
Browse files Browse the repository at this point in the history
  • Loading branch information
faithandbrave committed Jul 31, 2023
1 parent d813d6a commit 0bb4c21
Show file tree
Hide file tree
Showing 2 changed files with 289 additions and 0 deletions.
1 change: 1 addition & 0 deletions document/version.md
Expand Up @@ -5,6 +5,7 @@

***

- [1.83.0](version/1_83_0.md)
- [1.82.0](version/1_82_0.md)
- [1.81.0](version/1_81_0.md)
- [1.80.0](version/1_80_0.md)
Expand Down
288 changes: 288 additions & 0 deletions document/version/1_83_0.md
@@ -0,0 +1,288 @@
# Boost 1.83.0リリースノート

本家リリースノート:

- <https://github.com/boostorg/website/blob/master/feed/history/boost_1_83_0.qbk>
- <http://www.boost.org/users/history/version_1_83_0.html>


リポジトリは以下:

- <https://github.com/boostorg/>


リポジトリからのビルド方法は、egtraさんのブログを参照:

-[Modularized Boost(GitHubへ移行したリポジトリ)を使用する](http://dev.activebasic.com/egtra/2013/12/03/620/)


## 新ライブラリ

- [Compat](https://boost.org/libs/compat)
- 後の標準C++に追加された標準コンポーネントをC++11実装した互換性ライブラリ (作者Peter Dimov氏とコントリビューターたち)


## 更新ライブラリ

- [Any](#any)
- [Atomic](#atomic)
- [Chrono](#chrono)
- [Compat](#compat)
- [Core](#core)
- [DLL](#dll)
- [Filesystem](#filesystem)
- [Flyweight](#flyweight)
- [Geometry](#geometry)
- [Iterator](#iterator)
- [JSON](#json)
- [Locale](#locale)
- [Log](#log)
- [Math](#math)
- [Mp11](#mp11)
- [Multi-index](#multi-index)
- [Multiprecision](#multiprecision)
- [MySQL](#mysql)
- [Ratio](#ratio)
- [Test](#test)
- [Timer](#timer)
- [Unordered](#unordered)
- [UUID](#uuid)
- [Variant2](#variant2)


## 更新ツール

- [Build](#build)


## <a id="any" href="#any">Any</a>

- 新たなC++11クラス`boost::anys::unique_any`を追加。held typeからのコピー or ムーブ構築を必要としない`boost::any` (`std::any`) の代替クラス
- ドキュメントをQuickbookに移植し、Doxygenコメントをコードで使用するようにした


## <a id="atomic" href="#atomic">Atomic</a>

- [GitHub #62](https://github.com/boostorg/atomic/issues/62) `const`修飾した`atomic_ref`のコンパイルエラーを修正。const`修飾されたアトミックオブジェクトであっても、読み書き可能なメモリに存在しなければならないことに注意


## <a id="chrono" href="#chrono">Chrono</a>

- 非推奨となっていたBoost.Ratioの使用部分を削除


## <a id="compat" href="#compat">Compat</a>

- `latch.hpp`を追加。`std::latch`の実装 (Christian Mazakas氏の貢献に感謝)
- `shared_lock.hpp`を追加。`std::shared_lock`の (部分的な) 実装 (Christian Mazakas氏の貢献に感謝)


## <a id="core" href="#core">Core</a>

- `boost::core::type_name`に不完全型のサポートを追加
- `boost/core/bit.hpp`のビット操作関数を最新のMSVCで`constexpr`に対応 (VS2019 update 5以降)
- `boost/core/bit.hpp``boost::core::byteswap` (C++23`std::byteswap`の実装) を追加
- yieldのプリミティブ`sp_thread_pause`, `sp_thread_yield`, `sp_thread_sleep`を、SmartPtrライブラリの実装詳細から`boost/core/yield_primitives.hpp`に移動


## <a id="dll" href="#dll">DLL</a>

- [GitHub #58](https://github.com/boostorg/dll/issues/58) glibc 2.36+でのテスト失敗を修正。[Đoàn Trần Công Danh](https://github.com/sgn)のバグ報告に感謝


## <a id="filesystem" href="#filesystem">Filesystem</a>

- パスで識別されるディレクトリエントリの内部キャッシュファイルの状態を更新する `directory_entry::refresh` メンバ関数を追加
- [v4] `directory_entry` のコンストラクタや変更関数でパスを初期化したり変更したりすると、自動的に `refresh` が呼び出されるようになった。これにより、v3以前やv3ではファイルステータスのファイルシステムへの問い合わせが失敗した場合 (ファイルが存在しない場合など)、表示されなかったエラーが発生する可能性がある。この新しい動作は`std::filesystem`に似ている
- v4 `file_status` パラメータを受け取る `directory_entry` コンストラクタとメソッドが削除された。これらの引数を取り除き、 `directory_entry` が内部的に `refresh` を呼び出すようにすることを推奨する
- std::filesystem と同様に、ファイルのファイルタイプをチェックするための `directory_entry` のメンバ関数を追加した
- ファイルの状態を検査する関数を追加した: `is_block_file`, `is_character_file`, `is_fifo`, `is_socket` および `is_reparse_file`
- [GitHub #288](https://github.com/boostorg/filesystem/issues/288) `recursive_directory_iterator` は、ファイルシステムのイテレート処理中に取得したファイルタイプに関する情報を再利用するようになった。これにより、パフォーマンスが向上する可能性がある
- [GitHub #280](https://github.com/boostorg/filesystem/issues/280) 標準ライブラリのファイルストリームがムーブ可能な場合、`boost/filesystem/fstream.hpp` で定義されたファイルストリームもムーブ可能になった
- 最初の引数に `path` をとる移植可能な `fopen` オーバーロードを持つ新しいヘッダー `boost/filesystem/cstdio.hpp` を追加した。この関数は `std::fopen` と等価だが、Windows ではパスにネイティブのワイド文字エンコーディングを使用する
- [GitHub #285](https://github.com/boostorg/filesystem/issues/285) 汎用的な `path` 比較演算子がより制限されるようになり、ユーザーのコードに `using namespace boost::filesystem;` ディレクティブが含まれている場合に、潜在的な曖昧さを回避できるようになった
- [GitHub #287](https://github.com/boostorg/filesystem/issues/287) イテレータからの `path` コンストラクタが `std::initializer_list` 引数を取る関数のオーバーロードと干渉する可能性があった問題を修正
- [GitHub #284](https://github.com/boostorg/filesystem/issues/284), [GitHub #286](https://github.com/boostorg/filesystem/issues/286) Windows で、directory iteratorを作成する際に様々なファイルシステムから返されるエラーに対する回避策を追加
- [GitHub #290](https://github.com/boostorg/filesystem/issues/290) Windows で、ファイル時間の照会に必要なアクセス権を緩和


## <a id="flyweight" href="#flyweight">Flyweight</a>

- `boost::flyweight`にスマートポインタ構文 (元の値への間接参照を行う`operator*``operator->`) を追加
- [GitHub #12](https://github.com/boostorg/flyweight/issues/12) `simple_locking`で使われるミューテックスが再帰的でなかったのを修正


## <a id="geometry" href="#geometry">Geometry</a>

- 改善
- [GitHub #1140](https://github.com/boostorg/geometry/pull/1140) 依存関係を削除し、いくつかの箇所で boost を std に置き換えた
- [GitHub #1154](https://github.com/boostorg/geometry/pull/1154) 不足していたヘッダを追加し、すべてのヘッダがBoostのポリシーに従って独立してコンパイルできるようにした
- [GitHub #1157](https://github.com/boostorg/geometry/pull/1157) `calculate_point_order``const Ring`のコンセプトをチェックする
- 解決済みの問題
- [GitHub #1100](https://github.com/boostorg/geometry/issues/1100) `union`の修正
- [GitHub #1139](https://github.com/boostorg/geometry/issues/1139) 異なるジオメトリタイプの修正
- [GitHub #1158](https://github.com/boostorg/geometry/issues/1158) 凸包の修正
- [GitHub #1161](https://github.com/boostorg/geometry/issues/1161) 頂点に極を持つジオメトリのアルゴリズム内の修正1
- 様々なエラーと警告の修正


## <a id="iterator" href="#iterator">Iterator</a>

- `is_iterator` 型特性を追加し、その型がイテレータ型として適格かどうかをテストできるようになった
- [GitHub #79](https://github.com/boostorg/iterator/pull/79) `filter_iterator` は、適応されたイテレータと関数オブジェクトのムーブ構築をサポートするようになった


## <a id="json" href="#json">JSON</a>

- このライブラリはメモリ割り当てに失敗した場合を除き、`system_error`を例外送出するようにした。ただし、メモリ割り当てに失敗した場合は `std::bad_alloc` が送出される
- シリアライズの動作を `serialize_options` で変更できるようになった
- 文脈変換
- より正確な数値解析を行うためのパーサーオプション
- ストリーム `operator<<``parse_options` をサポートした
- JSON リテラルの `Infinity``NaN` を許可するパーサーオプション
- 数値のパースではなく、数値の検証のみを行うパーサーモード
- 指数が `INT_MAX` より大きい数値はパーサーに受け入れられ、無限大として扱われる
- `object`メンバ関数を強い保証をするよう修正した
- `boost/range.hpp`がインクルードされている場合の `end` 呼び出しのあいまいさを修正した
- ASan の失敗を修正した
- `error::size_mismatch` のエラーメッセージを修正した
- `const` 要素を持つタプルへの変換を修正した


## <a id="locale" href="#locale">Locale</a>

- GNU gettextの動作にマッチするメッセージカタログファイルにおいて、ビット演算子/バイナリ演算子(左/右シフト、バイナリand/or/xor/not)がサポートされなくなった
- Windows の Std バックエンドは、要求されたロケールが存在しない場合、システムロケールの代わりにクラシックロケールを使用するようになった
- `localization_backend_manager::get`は非推奨。代わりにジェネレーターを使用すること
- `to_utf`/`from_utf`/`between` に代わる新しいコンバータークラスを追加した
- フォーマット文字列の無効なインデックスに関する未定義動作を修正した
- ICU のない Windows で iso-2022-jp などへの UTF 変換を修正した
- 複数形翻訳のカウントパラメーターとして `long long` を使用するようにした
- いくつかのクラスのムーブと例外指定を修正した


## <a id="log" href="#log">Log</a>

- [GitHub #209](https://github.com/boostorg/log/issues/209) `text_file_backend` で、フォーマットされたログレコードのサイズが `rotation_size` の制限を超えた場合に無限ループになる可能性があった問題を修正


## <a id="math" href="#math">Math</a>

- [GitHub #921](https://github.com/boostorg/math/pull/921) Daubechiesスケーリング関数のフーリエ変換の数値評価を追加
- [GitHub #946](https://github.com/boostorg/math/pull/946) 統計分布に `logcdf` 関数を追加した
- [GitHub #978](https://github.com/boostorg/math/pull/978) C++23 の `<stdfloat>` 型のサポートを追加した
- 様々な `-Wmaybe-uninitialized` 警告を修正した
- [GitHub #968](https://github.com/boostorg/math/pull/968) 表現不可能な数値の `round``trunc` 関数を修正した
- [GitHub #976](https://github.com/boostorg/math/pull/976) F 分布の最頻値の計算を修正した
- [GitHub #977](https://github.com/boostorg/math/pull/977) ベータ分布のオーバーフローを修正した
- [GitHub #987](https://github.com/boostorg/math/pull/987) 超幾何分布のオーバーフローを修正
- [GitHub #997](https://github.com/boostorg/math/pull/997) 中央値が 0 でない場合の絶対偏差の中央値の計算を修正した


## <a id="mp11" href="#mp11">Mp11</a>

- `mp_from_sequence`, `mp_iota`, `mp_iota_c` に offset/from パラメータを追加
- `mp_value`, `mp_list_v`, `mp_rename_v`, `mp_is_value_list` を追加
- `<<boost/mp11/list.hpp>`のプリミティブに値リストのサポートを追加
- 値リストのサポートを `mp_repeat``mp_fill``mp_at``mp_back``mp_take``mp_pop_back``mp_drop``mp_insert``mp_erase` に追加


## <a id="multi-index" href="#multi-index">Multi-index</a>

- [GitHub #68](https://github.com/boostorg/multi_index/issues/68) non-unique ordered indicesのRange版 `insert` を更新し、等価な要素の挿入順序を保持するようにした
- シリアライズで `multi_index_container` のサイズの保存と読み込みに `unsigned long` ではなく `std::size_t` を使用するようになった (LLP64 データモデルでは `unsigned long``std::size_t` より小さい)。この変更にともない、 `multi_index_container` のシリアライズバージョンが 3 から 4 に変更された


## <a id="multiprecision" href="#multiprecision">Multiprecision</a>

- [GitHub #542](https://github.com/boostorg/multiprecision/pull/542) rational adapter divisionのバグを修正
- [GitHub #552](https://github.com/boostorg/multiprecision/pull/552) マルチスレッド環境でのグローバルプレッションの変更の処理を修正
- [GitHub #555](https://github.com/boostorg/multiprecision/pull/555) `cpp_int::eval_convert_to` の `noexcept 指定を修正


## <a id="mysql" href="#mysql">MySQL</a>

- メジャーアップデート
- データを生成する `SELECT` ステートメントと `OUT` パラメータを持つプロシージャを含むストアドプロシージャが完全にサポートされた。これにより、セミコロンで区切られた複数のステートメントを 1 回の呼び出しで実行できるようになった
- 静的に型付けされたインターフェースが追加され、Boost.Describe構造体とタプルを使用して、クエリ結果をユーザーが提供した型に解析できるようになった
- テキストクエリとプリペアドステートメントは、新しい `connection::execute` 関数と `connection::start_execution` 関数(とその非同期関数)を使って実行できるようになった。これらは `connection::query``connection::execute_statement``connection::start_query``connection::start_statement_execution` の上位関数である。新しい関数により、静的インターフェースのような新しい機能にアクセスできるようになった
- ビルド時間を短縮するために、独立したコンパイルモードが追加された。ソースは `boost/mysql/src.hpp` に含まれており、正確に1つの翻訳ユニットに含める必要がある
- `statement::bind``connection::execute` を使用して、イテレータペアでパラメータを指定してプリペアドステートメントを実行できるようになった。これにより、コンパイル時にパラメータの数や型がわからない場合に使用できるようになった
- `bool` 型、`std::optional` 型、`boost::optional` 型のパラメータを使用できるようになった
- エラーコードを追加し、MySQL v8.0.33 および MariaDB v11.0 との互換性を確認した
- Windows の `min()``max()` マクロの潜在的な問題を修正した
- すべてのアサーションが Boost.Assert を使用するようになった。
- すべての例外は Boost.ThrowException によってスローされるようになった
- 即時完了が I/O object executorを通して正しくディスパッチされるようになった


## <a id="ratio" href="#ratio">Ratio</a>

- デフォルトの `BOOST_RATIO_VERSION` を 2 に変更した
- `BOOST_RATIO_EXTENSIONS` のサポートは非推奨となり、Boost.Ratio が標準の `<ratio>` ヘッダとして実装されたときに削除される予定


## <a id="test" href="#test">Test</a>

- CIシステムに古いプラットフォームを追加した
- [GitHub #353](https://github.com/boostorg/test/pull/353) `uintptr_t` の取り扱いを修正し、32 ビットシステムでも移植できるようにした
- [GitHub #375](https://github.com/boostorg/test/pull/375) `Wdeprecated-copy-dtor``-Wdeprecated-copy-with-user-provided-dtor` の警告を修正した
- [GitHub #382](https://github.com/boostorg/test/pull/382) C++23 `<stdfloat>` 型の `check_is_close` の処理を修正した


## <a id="timer" href="#timer">Timer</a>

- Boost.Chrono、Boost.Systemなどへの依存を削除
- `BOOST_TIMER_ENABLE_DEPRECATED` が定義されていない限り、非推奨のヘッダーを無効にするようにした


## <a id="unordered" href="#unordered">Unordered</a>

- メジャーアップデート
- オープンアドレッシングに基づく高速でスレッドセーフなハッシュマップ `boost::concurrent_flat_map` を追加した
- オープンアドレッシングコンテナのイテレート処理を高速化
- オープンアドレッシングコンテナにおいて、以前はなにも返さなかった `erase(iterator)` が、次の要素へのイテレータに変換可能なプロキシオブジェクトを返すようになった。これにより、返されたプロキシが使用されない場合に、パフォーマンス上のペナルティを負うことなく、典型的な `it = c.erase(it)` イディオムを使用できるようになった


## <a id="uuid" href="#uuid">UUID</a>

- [GitHub #138](https://github.com/boostorg/uuid/pull/138) AVX ターゲット用に生成される x86 コードを改善。SSE3 ターゲットでの `lddqu` 命令の使用を削除した。これは Intel NetBurst CPU ではパフォーマンスが低下するが、Skylake 以降の CPU では最適である


## <a id="variant2" href="#variant2">Variant2</a>

- `uses_double_storage()`を追加


## <a id="build" href="#build">Build</a>

- B2 version 4.10.1をリリース


## テスト済みコンパイラ
主要なテストコンパイラ:

- Linux:
- Clang, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0, 15.0.0
- Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
- Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
- Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
- Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
- GCC, C++03: 4.6.3, 11, 12
- GCC, C++11: 4.7.3, 4.8.5, 11, 12
- GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
- GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
- GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
- OS X:
- Apple Clang, C++03: 11.0.3
- Apple Clang, C++11: 11.0.3
- Apple Clang, C++14: 11.0.3
- Apple Clang, C++17: 11.0.3
- Apple Clang, C++20: 11.0.3
- Windows:
- Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3


## 翻訳
[Akira Takahashi](https://github.com/faithandbrave)

0 comments on commit 0bb4c21

Please sign in to comment.