The SRFI-19 current-time function can return several flavours of the
current time:

scheme@(guile-user)> (use-modules (srfi srfi-19))
scheme@(guile-user)> (current-time time-utc)
$1 = #<time type: time-utc nanosecond: 727666000 second: 1491045256>
scheme@(guile-user)> (current-time time-tai)
$2 = #<time type: time-tai nanosecond: 414752000 second: 1491045294>
scheme@(guile-user)> (current-time time-monotonic)
$3 = #<time type: time-tai nanosecond: 814494000 second: 1491045297>

The last of these three is erroneous: a time structure of type
time-monotonic was requested and must be returned, but instead the
type is time-tai.  Although the implementation gives these two time
types numerically identical behaviour, it does treat them as nominally
distinct in other operations:

scheme@(guile-user)> (eqv? time-tai time-monotonic)
$4 = #f
scheme@(guile-user)> (julian-day->time-tai 2450000)
$5 = #<time type: time-tai nanosecond: 0 second: 813240029>
scheme@(guile-user)> (julian-day->time-monotonic 2450000)
$6 = #<time type: time-monotonic nanosecond: 0 second: 813240029>

-zefram



Reply via email to