2008年11月审查向导状态报告
新闻
5月7日 - 范围退出库已获批准 - 等待 SVN
5月17日 - Egg 库被拒绝
- 8月14日 - Boost 1.36 发布
- 新库:累加器、异常、单位、无序容器
8月27日 - 有限状态机被拒绝
9月10日 - 数据流信号被拒绝
9月30日 - Phoenix 有条件地获批准
- 11月3日 - Boost 1.37 发布
- 新库:Proto
11月10日 - 线程安全信号已获批准 - 等待 SVN
11月25日 - 全局唯一标识符库小型审查正在进行中
旧问题
2007年4月获批准的定量单位库已在 SVN 中(列为 units)。
2007年8月获批准的时间序列库尚未提交到 SVN。
2008年1月获临时批准的 Switch 库尚未提交小型审查和正式批准。
属性映射(快速通道)和图形(快速通道)已从审查队列中移除。作者(Andrew Sutton)打算在稍后时间提交此工作的新版本。
一些库已被审查并被接受到 boost 中,但据我所知尚未出现在 SVN 中。能否对以下库的状态有所说明?如果我忽略了其中任何一个,我深表歉意。
- 享元(Joaquin Ma Lopez Munoz)
- 浮点实用程序(Johan Rade)
- 工厂(Tobias Schwinger)
- 转发(Tobias Schwinger)
- 范围退出(Alexander Nasonov)
- 时间序列(Eric Niebler)
- 属性树(Marcin Kalicinski)-- SVN 中没有文档
非常感谢您提供有关这些库所在位置的任何信息。
对于仍在等待进入 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 发送关于您的库的简短描述,我们会将其添加到下面的“正在构建的库”中。我们知道有很多库即将完成,但我们很难跟踪所有这些库。请随时告知我们您的进度。
审查队列
- 词法分析器
- Boost.Range(更新)
- 移位指针
- 日志记录
- 期货 - Williams
- 期货 - Gaskill
- 加入
- Pimpl
- 约束值
- 线程池
- 多项式
词法分析器
作者 | Ben Hanson |
---|---|
审查经理 | Eric Neibler |
下载 | Boost 沙箱库 |
描述 | 一个可编程的词法分析器生成器,灵感来自“flex”。与 flex 一样,它通过使用正则表达式进行编程,并将状态机输出为多个利用等价类进行压缩的 DFA。 |
Boost.Range(更新)
作者 | Neil Groves |
---|---|
审查经理 | 需要 |
下载 | Boost 沙箱库 |
描述 | 范围库的重大更新,包括范围适配器。 |
移位指针
作者 | Phil Bouchard |
---|---|
审查经理 | 需要 |
下载 | Boost 沙箱库 |
描述 | 智能指针通常针对特定资源(内存使用、CPU 周期、用户友好性等)进行优化,具体取决于用户需要充分利用什么。此智能指针的主要目的是同时分配引用计数器(或所有者)和对象本身,从而简化动态内存管理,从而加快并降低内存映射的成本。 |
日志记录
作者 | John Torjo |
---|---|
审查经理 | Gennadiy Rozental |
下载 | http://torjo.com/log2/ |
描述 | 正确使用日志记录是一个非常强大的工具。除了辅助调试/测试之外,它还可以向您展示应用程序的使用方式。Boost 日志记录库允许这样做,支持大量场景,从非常简单(将所有内容转储到一个目标)到非常复杂(多个日志、一些启用/一些禁用、级别等)。它具有非常简单灵活的界面、高效的消息过滤、线程安全、格式化程序和目标、简单的日志操作、根据应用程序需求查找最佳的日志记录器/过滤器类,您可以定义自己的宏等等! |
期货
作者 | Braddock Gaskill |
---|---|
审查经理 | Tom Brinkman |
下载 | http://braddock.com/~braddock/future/ |
描述 | 此库的目标是提供一个明确的期货实现,其中包含大量实现、提案和学术论文中最好的特性,希望避免在相关概念(协程、活动对象、asio 等)的库中出现多个不兼容的期货实现。此库希望探索最佳期货概念的组合实现。 |
期货
作者 | Anthony Williams |
---|---|
审查经理 | Tom Brinkman |
下载 | |
描述 | 此库提出了一种返回缓冲区,该缓冲区在一个(子)线程中获取值(或异常),并在另一个(控制)线程中提供该值。此缓冲区基本上提供了两个接口
使用 promise 和 future 的典型过程如下
还提出了一个 packaged_task,它包装一个可调用对象并提供另一个可调用对象,该对象可以在其自己的线程中启动并将返回值(或异常)分配给可以通过其中一个 future 类访问的返回缓冲区。 使用 packaged_task 的典型过程如下
|
请注意,我们处于一个不寻常的位置,即同时在队列中拥有两个具有相同目标的不同库。审查向导希望讨论保持这两个审查以产生对 Boost 最佳可能补充的最佳方法。
加入
作者 | 刘毅刚 |
---|---|
审查经理 | 需要 |
下载 | http://channel.sourceforge.net/ |
描述 | Join 是一个基于连接演算的异步、基于消息的 C++ 并发库。它既适用于多线程应用程序,也适用于异步、基于事件的应用程序的编排。它遵循 Comega 的设计和实现,并使用 Boost 功能构建。它提供了一个高级并发 API,具有异步方法、同步方法和和弦,这些和弦是定义同步、异步和并发的“连接模式”。 |
Pimpl
作者 | Vladimir Batov |
---|---|
审查经理 | 需要 |
下载 | |
描述 | Pimpl 惯用法是一种简单而强大的技术,可以通过分离接口和实现以及隐藏实现来最大程度地减少耦合。此库为 Pimpl 惯用法提供了一种方便且灵活且通用的部署技术。它看似完整且适用范围广,但同时又最小化、简单且易于使用。 |
约束值
作者 | Robert Kawulak |
---|---|
审查经理 | Jeff Garland |
下载 | |
描述 | Boost Constrained Value 库包含用于创建约束对象的类模板。一个简单的示例是表示一天中的小时的对象,对于该对象,只有 [0, 23] 范围内的整数才是有效值。 bounded_int<int, 0, 23>::type hour; hour = 20; // OK hour = 26; // exception! 可以在分配无效值的情况下自定义行为。例如,与上面示例中抛出异常相反,可以调整该值以满足约束条件。 wrapping_int<int, 0, 255>::type buffer_index; buffer_index = 257; // OK: wraps the value to fit in the range assert( buffer_index == 1 ); 该库不仅专注于如上例所示的有界对象——实际上可以通过使用谓词来强加任何约束。 // constraint (a predicate) struct is_odd { bool operator () (int i) const { return (i % 2) != 0; } }; // and the usage is as simple as: constrained<int, is_odd> odd_int = 1; odd_int += 2; // OK ++odd_int; // exception! 该库具有基于策略的设计,以便在定义约束和在分配无效值的情况下定义行为方面具有灵活性。可以在编译时配置策略以实现最大效率,或者如果需要此类动态功能,则可以在运行时更改策略。 |
线程池
作者 | Oliver Kowalke |
---|---|
审查经理 | 需要 |
下载 | |
描述 | 该库提供
|
多项式
作者 | Pawel Kieliszczyk |
---|---|
审查经理 | 需要 |
下载 | |
描述 | 该库旨在实现快速且忠实的多项式操作。它提供
|
正在开发的库
请告知您目前正在开发的任何打算提交审查的库。
日志记录
作者 | Andrey Semashev |
---|---|
下载 | http://boost-log.sourceforge.net |
描述 | 我正在开发一个日志库,在线文档可在此处获取:功能已相当完善,文档已完成约 70%。有一些示例,但还没有测试(我正在使用示例进行测试)。我希望在 2009 年初提交审查。 |
镜像
作者 | Matus Chochlik |
---|---|
下载 | |
描述 | Mirror 库的目的是在编译时和运行时提供有关常见 C++ 结构的有用元数据,例如命名空间、类型、typedef 定义的类型、类及其基类和成员属性、实例等,并为它们的内省提供通用接口。 Mirror 的设计理念是分层,并尽量减少侵入性。新类或现有类不需要设计为直接支持 Mirror,并且在类的定义中不需要任何与 Mirror 相关的代码,只要遵循一些通用准则即可。 Mirror 库目前实现的最重要功能包括
我希望在接下来的几个月内准备好审查。 |
区间模板库
作者 | Joachim Faulhaber |
---|---|
描述 | 区间模板库 (Itl) 提供区间和两种区间容器:Interval_sets 和 interval_maps。Interval_sets 和 maps 可以像元素的集合或映射一样使用。但是,当元素以连续块(区间)出现时,它们在空间和时间效率上要高得多:这在许多问题领域中显然是这种情况,尤其是在处理与日期和时间相关的问题的领域。 区间容器允许与 interval_sets 相交以处理分段。例如,您可能希望将区间容器与月份网格相交,然后遍历这些月份。 最后,interval_maps 在关联的值上提供聚合,如果添加的区间与存储在 interval_map 中的区间重叠。此功能称为重叠聚合。它通过示例显示 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 既具有分解行为(在时间维度上),也具有累积行为(在关联的值上)。 |
StlConstantTimeSize
作者 | Vicente J. Botet Escriba |
---|---|
下载 | Boost 沙箱库 |
描述 | Boost.StlConstantTimeSize 定义了一个 stl 容器列表的包装器,使用户可以选择 size 函数的复杂度:线性时间、常数时间或准常数时间。在未来的版本中,库可以包含一个类似的包装器到 slist。 |
InterThreads
作者 | Vicente J. Botet Escriba |
---|---|
下载 | |
描述 | Boost.InterThreads 扩展了 Boost.Threads,添加了一些功能
(thread_decorator 和 thread_specific_shared_ptr)基于 Roland Schwarz 编写的 threadalert 的原始实现。 Boost.InterThreads 扩展了 Boost.Threads,添加了线程设置/清理装饰器、线程特定共享指针、线程保持活动机制和线程元组。 |