Boost logo

Boost :

Subject: [boost] [Review] Formal Review of Proposed Boost.Chrono Library Starts TOMORROW
From: Anthony Williams (anthony.ajw_at_[hidden])
Date: 2010-11-05 13:25:50


Hi everyone,

The review of Vicente Botet's Chrono library starts TOMORROW (November
6th) and lasts until November 15th unless an extension occurs.

What is it?
========

Boost.Chrono aims to implement the new time facilities in C++0x, as
proposed in N2661 - A Foundation to Sleep On
(http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2661.htm). That
document provides background and motivation for key design decisions and
is the source of a good deal of information in this documentation.

See the current C++0x working draft at
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3126.pdf for
details of what was accepted.

The Boost.Chrono library provides:

    * A means to represent time durations: managed by the generic
      duration class . Examples of time durations include days, minutes,
      seconds and nanoseconds, which can be represented with a fixed
      number of clock ticks per unit. All of these units of time
      duration are united with a generic interface by the duration
      facility.

    * A type for representing points in time: time_point. A time_point
      represents an epoch plus or minus a duration. The library leaves
      epochs unspecified. A time_point is associated with a clock.

    * Several clocks, some of which may not be available on a particular
      platform: system_clock, monotonic_clock and
      high_resolution_clock. A clock is a pairing of a time_point and
      duration, and a function which returns a time_point representing
      now.

    * To make the timing facilities more generally useful, Boost.Chrono
      provides a number of additional clocks that are thin wrappers
      around the operating system's time APIs, thereby allowing the
      extraction of read (wall clock) time, user CPU time, system CPU
      time,

     - process_real_cpu_clock, captures real (wall clock) CPU times.
     - process_user_cpu_clock, captures user-CPU times.
     - process_system_cpu_clock, captures system-CPU times.
     - A tuple-like class __process_cpuclock_, that captures real,
       user-CPU, and system-CPU times together.
     - A thread_clock thread monotonic clock, when supported by a platform.

    * Boost.Chrono also includes typeof registration for duration and
      time_point to permit using emulated auto with C++03 compilers.

    * Boost.Chrono also provides I/O for duration and time_point. It
      builds on <boost/ratio/ratio_io.hpp> to provide readable and
      flexible formatting and parsing for types in
      <boost/chrono.hpp>. The duration unit names can be customized
      through a new facet: duration_punct.

Getting the library
=============
The latest version of this library may be downloaded from

  vault: http://www.boostpro.com/vault/index.php?action=downloadfile&filename=chrono.zip&directory=System&
  SVN: http://svn.boost.org/svn/boost/sandbox/chrono

Boost.Chrono depends on Boost.Ratio
http://www.boostpro.com/vault/index.php?action=downloadfile&filename=ratio.zip&directory=Math%20-%20Numerics&PHPSESSID=2d7859f3e812c993f5a9e2d9900dfee8
and optionaly Boost.System Header Only
http://www.boostpro.com/vault/index.php?action=downloadfile&filename=system.zip&directory=System&PHPSESSID=2d7859f3e812c993f5a9e2d9900dfee8.

and the docs may be viewed here

HTML: http://svn.boost.org/svn/boost/sandbox/chrono/libs/chrono/doc/html/index.html
PDF: http://svn.boost.org/svn/boost/sandbox/chrono/libs/chrono/doc/chrono.pdf

You can get all these information also (which should avoid some long
links) from
http://svn.boost.org/trac/boost/wiki/LibrariesUnderConstruction#Boost.Chrono

Writing a review
================

If you feel this is an interesting library, then please submit your
review to the developer list (preferably), or to the review manager.

Here are some questions you might want to answer in your review:

- What is your evaluation of the design?
- What is your evaluation of the implementation?
- What is your evaluation of the documentation?
- What is your evaluation of the potential usefulness of the library?
- Did you try to use the library? With what compiler? Did you have any problems?
- How much effort did you put into your evaluation? A glance? A quick
- reading? In-depth study?
- Are you knowledgeable about the problem domain?

And finally, every review should answer this question:

- Do you think the library should be accepted as a Boost library?

Be sure to say this explicitly so that your other comments don't
obscure your overall opinion.

Anthony
Review Manager for the proposed Boost.Chrono library

-- 
Author of C++ Concurrency in Action     http://www.stdthread.co.uk/book/
just::thread C++0x thread library             http://www.stdthread.co.uk
Just Software Solutions Ltd       http://www.justsoftwaresolutions.co.uk
15 Carrallack Mews, St Just, Cornwall, TR19 7UL, UK. Company No. 5478976

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk