2009 年 12 月 Review Wizard 状态报告
新闻
Polygon 库已接受
- Boost 1.40 已发布
- 新库:无 修订库:Accumulators、Asio、Circular Buffer、Filesystem、Foreach、Function、Fusion、Hash、Interprocess、Intrusive、MPL、Program Options、Proto、Python、Serialization、Unordered、Xpressive
Geometry 库已接受
- Boost 1.41 已发布
- 新库:Property Tree 修订库:DateTime、Filesystem、Iostreams、Math、Multi-index Containers、Proto、Python、Regex、Spirit、System、Thread、Unordered、Utility、Wave、Xpressive
MSM 库审查正在进行中
Constrained Value 审查 - 审查结果仍在待定
更早的问题
时间序列库于 2007 年 8 月被接受,但尚未提交到 SVN。
浮点实用程序库尚未提交到 SVN。它计划与 Boost.Math 库集成。
Switch 库于 2008 年 1 月被有条件地接受,但尚未提交进行迷你审查和完全接受。
Phoenix 库于 2008 年 9 月被有条件地接受,但尚未提交进行迷你审查和完全接受。
对于仍在等待进入 SVN 的库,请准备好它们并放入存储库。开发人员在制作库方面做了一些出色的工作,所以不要错过与他人分享这项工作的机会。
一般公告
与往常一样,我们需要有经验的审查经理。审查队列一直在大幅增长,但我们只有少数志愿者,因此如果可能,请管理审查,如果不能,请务必关注审查时间表并参与其中。请查看需要经理的库列表并查看它们的描述。一般来说,审查经理是活跃的 Boost 参与者或库贡献者。如果您可以担任其中任何一个的审查经理,请发送电子邮件给 Ron Garcia 或 John Phillips,电子邮件地址分别为 "garcia at osl dot iu dot edu" 和 "phillips at mps dot ohio-state dot edu"。
我们也正面临审查员短缺的问题。虽然我们都理解时间压力和完成有偿工作的需要,但 Boost 的优势在于您提交的详细且知情的审查。最近的一项努力是试图确保至少有五个人承诺提交审查,作为开始审查期的先决条件。考虑为此志愿服务,甚至花时间尽早创建审查。没有规则说你只能在审查期间进行审查工作。
此报告的链接将发布到 www.boost.org。如果您希望我们在发布前对此报告进行任何修改或添加,请发送电子邮件给 Ron 或 John。
如果您是库作者,并计划在未来 3-6 个月内提交库进行审查,请向 Ron 或 John 发送您的库的简短描述,我们将把它添加到下面的“正在构建的库”中。我们知道有很多库即将完成,但我们很难跟踪所有这些库。请随时告知我们您的进展情况。
包含的审查队列不是经典的队列。它更像是一个等待审查的库的无序列表。因此,一旦开发人员准备就绪,并且审查经理与向导和开发人员合作安排审查,队列中的任何库都可以被审查。它不是 FIFO。
审查队列
- Lexer
- Shifted Pointer
- Logging
- Log
- Join
- Pimpl
- Task
- Endian
- Conversion
- Sorting
- GIL.IO
- AutoBuffer
- String Convert
- Move
- Containers
- Interval Containers
- Type Traits Extensions
- Interthreads
- Bitfield
- Lockfree
Lexer
作者 | Ben Hanson |
---|---|
审查经理 | Eric Neibler |
下载 | Boost Vault |
描述 | 一个可编程的词法分析器生成器,灵感来自 'flex'。 像 flex 一样,它通过使用正则表达式进行编程,并输出状态机作为许多利用等价类进行压缩的 DFA。 |
Shifted Pointer
作者 | Phil Bouchard |
---|---|
审查经理 | 需要 |
下载 | Boost Vault |
描述 | 智能指针通常针对特定资源(内存使用、CPU 周期、用户友好性等)进行优化,具体取决于用户最需要什么。 此智能指针的目的是主要同时分配引用计数器(或所有者)和对象本身,从而简化动态内存管理,从而加快速度并降低内存映射成本。 |
Logging
作者 | John Torjo |
---|---|
审查经理 | Gennadiy Rozental |
下载 | http://torjo.com/log2/ |
描述 | 如果使用得当,日志记录是一个非常强大的工具。 除了辅助调试/测试外,它还可以向您展示您的应用程序是如何使用的。 Boost Logging Library 允许这样做,支持多种场景,从非常简单(全部转储到一个目的地)到非常复杂(多个日志,一些启用/一些未启用,级别等)。 它具有非常简单和灵活的接口、高效的消息过滤、线程安全、格式化程序和目的地、日志的轻松操作、根据您的应用程序需求查找最佳的记录器/过滤器类,您可以定义自己的宏等等! |
Log
作者 | Andrey Semashev |
---|---|
审查经理 | 需要 |
下载 | Boost Vault |
描述 | 该库旨在帮助向应用程序添加日志记录功能。 它为许多广泛使用的功能提供开箱即用支持,例如基于属性的格式化和过滤、将日志发送到 syslog 服务器或 Windows 事件日志,或者只是将日志存储到文件中。 它还为从设置文件初始化库提供基本支持。 该库还可以用于更广泛的任务,并实现收集和处理统计信息或通知用户有关应用程序事件的信息。 |
Join
作者 | Yigong Liu |
---|---|
审查经理 | 需要 |
下载 | http://channel.sourceforge.net/ |
描述 | Join 是一个基于连接演算的异步、基于消息的 C++ 并发库。 它既适用于多线程应用程序,也适用于异步、基于事件的应用程序的编排。 它遵循 Comega 的设计和实现,并使用 Boost 设施构建。 它提供了一个高级并发 API,具有异步方法、同步方法和弦,这些弦是定义同步、异步和并发的“连接模式”。 |
Pimpl
作者 | Vladimir Batov |
---|---|
审查经理 | 需要 |
下载 | |
描述 | Pimpl 惯用法是一种简单而强大的技术,可通过分离接口和实现,然后隐藏实现来最大限度地减少耦合。 此库为 Pimpl 惯用法提供了方便、灵活且通用的部署技术。 它看似完整且应用广泛,但最小、简单且易于使用。 |
Task
作者 | Oliver Kowalke |
---|---|
审查经理 | 需要 |
下载 | |
描述 | 以前称为线程池 该库提供:* 线程创建策略
|
Endian
作者 | Beman Dawes |
---|---|
审查经理 | 需要 |
下载 | http://mysite.verizon.net/beman/endian-0.10.zip |
描述 |
Conversion
作者 | Vicente Botet |
---|---|
审查经理 | 需要 |
下载 | |
描述 | 不相关类型之间的一般显式转换。
|
Sorting
作者 | Steven Ross |
---|---|
审查经理 | 需要 |
下载 | |
描述 | 3 种模板混合基数/基于比较的排序算法的组合,与 std::sort 相比,它们提供了卓越的最坏情况和平均情况性能:integer_sort,它对支持右移(默认为 >>)和比较(默认为 <)运算符的固定大小数据类型进行排序。 float_sort,它通过安全地将标准浮点数转换为整数来对其进行排序。 string_sort,它对可变长度数据类型进行排序,并针对 8 位字符字符串进行了优化。 所有 3 种算法的运行时均为 O(n(k/s + s)),其中 k 是数据类型中的位数,s 是常数,并且内存开销有限(对于实际输入,以 kB 为单位)。 在测试中,根据处理器、编译器优化和数据分布,integer_sort 比 std::sort 快 35% 到 8 倍。 在 x86 处理器上,float_sort 大约比 std::sort 快 7 倍。 string_sort 大约比 std::sort 快 2 倍。 |
GIL.IO
作者 | Christian Henning |
---|---|
审查经理 | 需要 |
下载 | GIL Google 代码库 |
描述 | boost::gil 的 I/O 扩展,允许读取和写入各种图像格式(tiff、jpeg、png 等)。 此审查还将包括 Toolbox 扩展,该扩展为 gil 添加了一些常用功能,例如新的颜色空间、算法等。 |
AutoBuffer
作者 | Thorsten Ottosen |
---|---|
审查经理 | 需要 |
下载 | 此处 |
描述 | Boost.AutoBuffer 提供了一个容器,用于高效的动态本地缓冲区。 此外,该容器可以用作 std::vector 的替代品,提供更大的灵活性,有时性能更好。 |
String Convert
作者 | Vladimir Batov |
---|---|
审查经理 | 需要 |
下载 | |
描述 | 该库采用 boost::lexical_cast 在字符串到类型和类型到字符串转换领域的做法,建立在过去的 boost::lexical_cast 经验之上,并将该转换功能进一步推进,以额外提供
对于广泛使用配置文件或必须处理/准备大量数据(例如 XML 等)的应用程序来说,它是一个必不可少的工具。 |
Move
作者 | Ion Gaztanaga |
---|---|
审查经理 | 需要 |
下载 | http://svn.boost.org/svn/boost/sandbox/move/ 以及在线文档 http://svn.boost.org/svn/boost/sandbox/move/libs/move/doc/html/index.html |
描述 | 在 C++0x 中,移动语义是通过引入右值引用来实现的。 它们使我们能够在没有冗长或运行时开销的情况下实现 move()。 Boost.Move 是一个库,它提供了在不仅具有右值引用的编译器中,而且在符合 C++03 的编译器中实现这些移动语义的工具。 |
Containers
作者 | Ion Gaztanaga |
---|---|
审查经理 | 需要 |
下载 | http://www.boostpro.com/vault/index.php?action=downloadfile&filename=boost.move.container.zip&directory=Containers& |
文档 | http://svn.boost.org/svn/boost/sandbox/move/libs/container/doc/html/index.html |
描述 | Boost.Container 库实现了几个众所周知的容器,包括 STL 容器。 该库的目标是为不符合 C++03 的编译器提供标准容器中不存在的高级功能或最新的标准草案功能。 |
Interval Containers 库
作者 | Joachim Faulhaber |
---|---|
下载 | |
文档 | http://herold-faulhaber.de/boost_itl/doc/libs/itl/doc/html/index.html |
审查经理 | 需要 |
描述 | Interval Template Library (Itl) 提供了区间和两种区间容器:Interval_sets 和 interval_maps。 Interval_sets 和 maps 可以像元素集或映射一样使用。 然而,当元素以连续块(区间)出现时,它们在空间和时间上效率更高。 这在许多问题领域中显然是这种情况,尤其是在处理与日期和时间相关的问题的领域中。 区间容器允许与 interval_sets 相交以处理分段。 例如,您可能希望将区间容器与月份网格相交,然后迭代这些月份。 最后,如果添加的区间与 interval_map 中存储的区间重叠,则 interval_maps 提供对关联值的聚合。 此功能称为重叠聚合。 它通过示例显示 typedef set<string> guests; interval_map<time, guests> party; guests mary; mary.insert("Mary"); guests harry; harry.insert("Harry"); party += make_pair(interval<time>::rightopen(20:00, 22:00),mary); party += make_pair(interval<time>::rightopen_(21:00, 23:00),harry); // party now contains [20:00, 21:00)->{"Mary"} [21:00, 22:00)->{"Harry","Mary"} //guest sets aggregated on overlap [22:00, 23:00)->{"Harry"} 从示例中可以看出,interval_map 既具有分解行为(在时间维度上),又具有累积行为(在关联值上)。 |
Type Traits Extensions
作者 | Frederic Bron |
---|---|
审查经理 | 需要 |
下载 | |
描述 | 添加的目的在于添加类型特征,以检测类型 T 和 U 是否在 <、<=、>、>=、== 或 != 运算符的意义上可比较,即当 t 的类型为 T 且 u 的类型为 U 时,t<u 是否有意义(<=、>、>=、==、!= 相同)。 添加了以下特征 is_equal_to_comparable<T,U> is_greater_comparable<T,U> is_greater_equal_comparable<T,U> is_less_comparable<T,U> is_less_equal_comparable<T,U> is_not_equal_to_comparable<T,U> 名称基于标准模板库的对应名称(<functional> 标头,标准第 20.3.3 节)。 代码具有以下属性:* 如果 t<u 有意义并且返回可转换为 bool 的值,则返回 true * 如果 t<u 没有意义,则返回 false。 * 如果 t<u 有意义并且返回 void,则编译时错误失败(避免编译时错误的可能性是使用运算符技巧返回 true,但这没什么意义,因为返回 false 会更好) |
InterThreads
作者 | Vicente J. Botet Escriba |
---|---|
审查经理 | 需要 |
下载 | |
描述 |
(thread_decorator 和 thread_specific_shared_ptr)基于 Roland Schwarz 编写的 threadalert 的原始实现。 Boost.InterThreads 扩展了 Boost.Threads,添加了线程 setup/cleanup 装饰器、线程特定共享指针、线程保持活动机制和线程元组。 |
Bitfield
作者 | Vicente J. Botet Escriba |
---|---|
审查经理 | 需要 |
下载 | http://svn.boost.org/svn/boost/sandbox/bitfield,文档位于 http://svn.boost.org/svn/boost/sandbox/bitfield/libs/integer/doc/index.html |
描述 |
|
Lockfree
作者 | Tim Blechmann |
---|---|
审查经理 | 需要 |
下载 | |
文档 | |
描述 | boost.lockfree 提供了无锁数据结构的实现。 无锁数据结构可以由多个线程访问,而无需阻塞同步原语(如 guard)。 无锁数据结构可用于实时系统,其中阻塞算法可能导致较高的最坏情况执行时间、避免优先级反转或提高多处理器机器的可伸缩性。
|
正在开发中的库
Persistent
作者 | Tim Blechmann |
---|---|
描述 | 一个基于 Boost.Serialization 的库,提供对持久对象的访问,其接口尽可能接近于访问内存中的常规对象。
请告知我们您当前正在开发的任何计划提交审查的库。 |
有关正在开发中的库的当前列表,请参阅 http://svn.boost.org/trac/boost/wiki/LibrariesUnderConstruction。