> > Curiously the one failure for date-time
> > was in handling of big time durations.  The failure is
> > probably an overflow problem, which can happen if you try
> > to use a plain 32-bit integer to get nano-second resolutions
> > and large time durations.  Nano-second resolution is the default
> > configuration for the library and it normally uses a 64-bit
> > type for efficient calculation...
> 
> I am looking into it but already have a conjecture. When using signed 
> 64 bit integers the Cray compiler (with optimization turned on) uses 
> the floating point units to actually perform the operations in 46 bit 
> arithmetic. This speeds up things but causes compatibility problems. In 

Seems like a dangerous tradeoff...

> the case of the jam sources we could avoid this "optimization" by using 
> unsigned types. Is it possible to use an unsigned integer here to avoid 
> similar problems?

I suppose anything would be possible, but it would be difficult.
It is a signed type since we want to be able to have negative time
durations.  

One possible answer is that we could turn down the resolution to
microseconds by removing:

<define>BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG

from the Jamfile.  Although actually what we really want to do
is make a selection based on the platform macro in the Jamfile.
I don't know how to do this, but I'm sure someone does :-)

Jeff
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to