コルーチンライブラリであるBoost.Coroutineが採択されました。
ドキュメントは以下になります:
http://ok73.ok.funpic.de/boost/libs/coroutine/doc/html/
以下レビュー結果の翻訳です。
==
Oliver Kowalkeによって書かれたCoroutineライブラリに対して、2012/9/3から2012/9/12までの期間でレビューが行われた。7票の賛成票が提出され、いくつかの追加機能のリクエストが行われた。全体として、コミュニティの決定が明確になった:
「Oliver KowalkeのCoroutineライブラリを採択する」
盛んに行われた議論は、以下のポイントに触れた。
- 設計
Coroutineライブラリは、コミュニケーションソフトウェアと組み込みソフトウェアの設計において、プログラミング体質(regime)に関する莫大な可能性をもっている。Oliverは、賢明な粒度での設計を行った。この粒度は、POSIXやC++11スレッドサポートライブラリに見られるような法外に重いプリエンプティブスケジューリングを回避しながら、協調スケジューリングメカニズムを微調整できる。
とくに、CoroutineからContextを分離したことにより、最小限の労力と最大の信頼性のコードのもとに、他のシステムへの移植と再利用が可能となる。
APIに関するいくつかの提案は、ほとんどがレビュー中に解決された。Oliverは、提案にを統合する上での作業の完全なリストを持っているが、ここでは短いリストを記載する:
- ライブラリ内部のメモリ割り当てに使用するアロケータを指定できるようにする
- selfポインタを削除し、TLSで置き換える
- ジェネレータ機能のよりよいサポート
- 名前
何人かによって議論が行われ、名前空間に省略形を使用しないよう、namespace coroの代わりにnamespace coroutinesを使用することになった。これは再採択の条件というわけではない。
- ドキュメント
ほとんどの人は、ドキュメントが簡潔で読みやすく、十分であるというコンセンサスがとれた。何人かは、Giovanni P. DerettaによってGSoCで書かれた古いコルーチンライブラリのドキュメントを統合することを提案した。
議論に参加してくれた全ての方に感謝します。
Regards Hartmut