$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r86492 - in branches/release: boost/chrono/io libs/chrono/doc libs/chrono/example libs/chrono/test libs/chrono/test/io
From: vicente.botet_at_[hidden]
Date: 2013-10-27 19:55:01
Author: viboes
Date: 2013-10-27 19:55:01 EDT (Sun, 27 Oct 2013)
New Revision: 86492
URL: http://svn.boost.org/trac/boost/changeset/86492
Log:
Chrono: merge timepoint io improvements.
Text files modified: 
   branches/release/boost/chrono/io/time_point_io.hpp         |    15 +++++++++------                         
   branches/release/libs/chrono/doc/chrono.qbk                |     2 ++                                      
   branches/release/libs/chrono/example/io_ex1.cpp            |     3 +++                                     
   branches/release/libs/chrono/test/Jamfile.v2               |     3 ++-                                     
   branches/release/libs/chrono/test/io/time_point_output.cpp |     3 ++-                                     
   branches/release/libs/chrono/test/test_7868.cpp            |     7 +++++++                                 
   6 files changed, 25 insertions(+), 8 deletions(-)
Modified: branches/release/boost/chrono/io/time_point_io.hpp
==============================================================================
--- branches/release/boost/chrono/io/time_point_io.hpp	Sun Oct 27 19:29:52 2013	(r86491)
+++ branches/release/boost/chrono/io/time_point_io.hpp	2013-10-27 19:55:01 EDT (Sun, 27 Oct 2013)	(r86492)
@@ -32,17 +32,20 @@
 #include <boost/detail/no_exceptions_support.hpp>
 #include <cstring>
 #include <locale>
-#include <string.h>
+#include <ctime>
 
 #define  BOOST_CHRONO_INTERNAL_TIMEGM \
-  ( defined BOOST_WINDOWS && ! defined(__CYGWIN__) ) || \
-  ( (defined(sun) || defined(__sun)) && defined __GNUC__)
-
-#define  BOOST_CHRONO_INTERNAL_GMTIME defined BOOST_WINDOWS && ! defined(__CYGWIN__)
+     ( defined BOOST_WINDOWS && ! defined(__CYGWIN__) )  \
+  || ( (defined(sun) || defined(__sun)) && defined __GNUC__) \
+  || (defined __IBMCPP__)
+
+#define  BOOST_CHRONO_INTERNAL_GMTIME \
+     (defined BOOST_WINDOWS && ! defined(__CYGWIN__)) \
+  || ( (defined(sun) || defined(__sun)) && defined __GNUC__) \
+  || (defined __IBMCPP__)
 
 #define  BOOST_CHRONO_USES_INTERNAL_TIME_GET
 
-
 namespace boost
 {
   namespace chrono
Modified: branches/release/libs/chrono/doc/chrono.qbk
==============================================================================
--- branches/release/libs/chrono/doc/chrono.qbk	Sun Oct 27 19:29:52 2013	(r86491)
+++ branches/release/libs/chrono/doc/chrono.qbk	2013-10-27 19:55:01 EDT (Sun, 27 Oct 2013)	(r86492)
@@ -7371,6 +7371,8 @@
 * [@http://svn.boost.org/trac/boost/ticket/7868 #7868] chrono_io parses time incorrectly (1.53 and 1.52)   
 * [@http://svn.boost.org/trac/boost/ticket/9028 #9028] Typo in boost/chrono/stopwatches/formatters/base_formatter.hpp  
 * [@http://svn.boost.org/trac/boost/ticket/9147 #9147] uninitialized std::tm
+* [@http://svn.boost.org/trac/boost/ticket/9274 #9274] lost of precission on system_clock input.
+* [@http://svn.boost.org/trac/boost/ticket/9276 #9276] output from a system_clock::time_point get a time_point that is one day later than expected.
 
 [endsect] [/section [*Version 2.0.3] ]
 
Modified: branches/release/libs/chrono/example/io_ex1.cpp
==============================================================================
--- branches/release/libs/chrono/example/io_ex1.cpp	Sun Oct 27 19:29:52 2013	(r86491)
+++ branches/release/libs/chrono/example/io_ex1.cpp	2013-10-27 19:55:01 EDT (Sun, 27 Oct 2013)	(r86492)
@@ -53,10 +53,13 @@
          <<  ClockTick(3) + nanoseconds(10) << '\n';
 
     cout << "\nsystem_clock::now() = " << system_clock::now() << '\n';
+#if defined _MSC_VER && _MSC_VER == 1700
+#else
 #if BOOST_CHRONO_VERSION==2
     cout << "\nsystem_clock::now() = " << time_fmt(chrono::timezone::local) << system_clock::now() << '\n';
     cout << "\nsystem_clock::now() = " << time_fmt(chrono::timezone::local,"%Y/%m/%d") << system_clock::now() << '\n';
 #endif
+#endif
 
 #ifdef BOOST_CHRONO_HAS_CLOCK_STEADY
     cout << "steady_clock::now() = " << steady_clock::now() << '\n';
Modified: branches/release/libs/chrono/test/Jamfile.v2
==============================================================================
--- branches/release/libs/chrono/test/Jamfile.v2	Sun Oct 27 19:29:52 2013	(r86491)
+++ branches/release/libs/chrono/test/Jamfile.v2	2013-10-27 19:55:01 EDT (Sun, 27 Oct 2013)	(r86492)
@@ -110,7 +110,7 @@
         :   <define>BOOST_CHRONO_HEADER_ONLY
             <define>BOOST_ERROR_CODE_HEADER_ONLY
            #<define>BOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING
-            <define>BOOST_CHRONO_VERSION=2
+           #<define>BOOST_CHRONO_VERSION=1
         :   v1_$(sources[1]:B)_h ]
     ;
 }
@@ -473,6 +473,7 @@
         [ chrono-v1-v2-run-header io/duration_output.cpp  ]
         [ chrono-v1-v2-run-header io/time_point_input.cpp  ]
         [ chrono-v1-v2-run-header io/time_point_output.cpp  ]
+        [ chrono-run test_7868.cpp  ]
         ;
 
     test-suite "win32"
Modified: branches/release/libs/chrono/test/io/time_point_output.cpp
==============================================================================
--- branches/release/libs/chrono/test/io/time_point_output.cpp	Sun Oct 27 19:29:52 2013	(r86491)
+++ branches/release/libs/chrono/test/io/time_point_output.cpp	2013-10-27 19:55:01 EDT (Sun, 27 Oct 2013)	(r86492)
@@ -274,7 +274,8 @@
   check_all<boost::chrono::process_cpu_clock> ();
 #endif
 
-#if BOOST_CHRONO_VERSION == 2
+#if BOOST_CHRONO_INTERNAL_GMTIME
+#elif BOOST_CHRONO_VERSION == 2
   boost::chrono::system_clock::time_point tp = boost::chrono::system_clock::now();
   std::cout << tp << std::endl;
   time_t t = boost::chrono::system_clock::to_time_t(tp);
Modified: branches/release/libs/chrono/test/test_7868.cpp
==============================================================================
--- branches/release/libs/chrono/test/test_7868.cpp	Sun Oct 27 19:29:52 2013	(r86491)
+++ branches/release/libs/chrono/test/test_7868.cpp	2013-10-27 19:55:01 EDT (Sun, 27 Oct 2013)	(r86492)
@@ -13,6 +13,7 @@
 #include <boost/chrono/round.hpp>
 #include <boost/chrono/ceil.hpp>
 #include <boost/detail/lightweight_test.hpp>
+#include <cstdio>
 
 int main()
 {
@@ -26,10 +27,16 @@
       // does not change anything: strm2<<time_fmt(boost::chrono::timezone::utc);
       boost::chrono::system_clock::time_point atnow2;
       strm<<atnow<<std::endl;
+      time_t t = boost::chrono::system_clock::to_time_t(atnow);
+      std::cout << "A:" << std::endl;
+      puts(ctime(&t));
+      std::cout << "A:" << std::endl;
       std::cout << "A:" << strm.str()<< std::endl;
+      std::cout << "A:" << atnow.time_since_epoch().count() << std::endl;
       strm>>atnow2;
       strm2<<atnow2<<std::endl;
       std::cout << "B:" << strm2.str()<< std::endl;
+      std::cout << "B:" << atnow2.time_since_epoch().count()<< std::endl;
       BOOST_TEST_EQ(atnow.time_since_epoch().count(), atnow2.time_since_epoch().count());
 
       // 1 sec wrong: