Beman DawesのBoost Endian Libraryのレビュー結果です。まず、非常にディープで興味深い議論に参加した全ての方に感謝します。
このレビューでの賛成票は5でした。内訳としては、2の無条件賛成、修正後のミニレビューを行うという3の条件付き賛成でした。
評決として、Boost.Endianは条件付き採択とします。
ここでは、ミニレビューのためのライブラリの準備として、以下のことを行う必要があります:
- 一般的なユースケースシナリオを開発すべき。
- サンプルプログラムは、一般的なユースケースシナリオのために開発すべき。
- ドキュメントは、一般的なユースケースシナリオにエンディアン整数/浮動小数点数型とエンディアン変換のアプローチの違いを明らかにすべきだし、ユーザーのアプリケーションに最も適した方法を選択するためのガイドラインを提供する必要がある。
- 戻り値で結果を返す変換関数を提供すべき。
- プラットフォーム固有のパフォーマンス向上のためのコンパイラ組み込み関数の使用や、リラックスアライメント要件をサポートする必要がある。
- エンディアン整数(および浮動小数点数)型は、変換関数を介して実装すべき。効率的に行うことができない場合は、変換関数のシグネチャを拡張し、非効率を解決することを考慮する必要がある。
- パフォーマンスを計測するベンチマークを提供する必要がある。プラットフォーム固有のパフォーマンス強化とポータブルな実装との比較ができ、一般的なユースケースシナリオのためのエンディアン変換のアプローチに対してエンディアン変数と比較することができるだろう。
- float(32ビット)とdouble(64ビット)をサポートすべき。IEEE 754では、主要なユースケースだ。
- ユーザー定義型(UDT)のサポートが望ましい。他の問題との競合がないよう提供すべき。
- エンディアン整数/浮動小数点数の算術演算が不注意や不適切に使用されるかもしれないという懸念がある。算術演算なしにendian_bufferクラスを追加することの影響を調査する必要がある。
- エンディアン整数/浮動小数点数型のストリームでの挿入と抽出がドキュメント化され、テスト範囲に含めるべき。
- Endian Libraryの開発中に調査されたバイナリI/Oサポートは、Boost I/O Libraryに含めるためのミニレビューに提出されるべき。
これらの点から、BemanはミニレビューのためのEndianを準備できるようになるだろうし、情報が散らばっていないので、ミニレビューの管理に貢献できます。