From a57f003d17658a3b00969175816cc25fedcc865a Mon Sep 17 00:00:00 2001 From: Shiro Kawai Date: Mon, 27 Nov 2023 22:48:01 -1000 Subject: [PATCH] Limit seconds+ to take real number as dt We can extend it to take time-duration, but probably it's better to limit it to SRFI-226 domain. We have absolute-time if the user wants to pass time-duration. --- doc/corelib.texi | 11 ++++++++--- src/libsys.scm | 5 ++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/doc/corelib.texi b/doc/corelib.texi index ab9008de4..f31346c56 100644 --- a/doc/corelib.texi +++ b/doc/corelib.texi @@ -32114,20 +32114,25 @@ object, it is used as the current time instead of the actual current time. @end defun @defun seconds+ time x -[SRFI-226] +[SRFI-226+] @c EN Returns a time object that is @var{x} seconds after the given @var{time}. The type of returned time object is the same as @var{time}. The argument @var{x} must be a finite real number. If it is negative, returnd time is before the given time. +This procedure is mainly to write code compatibe to SRFI-226. +For Gauche-specific code, you can use @code{absolute-time} above. + @xref{SRFI-19 Time procedures}, for another way to compute with time difference by @code{add-duration}/@code{subtract-duration}. @c JP 与えられた@var{time}より@var{x}秒後を表すtimeオブジェクトを作って返します。 返されるtimeオブジェクトの型は@var{time}と同じです。 -@var{x}は有限の実数でなければなりません。@var{x}が負の場合は、 -与えられた時間より前の時間が返ります。 +@var{x}は有限の実数です。@var{x}が負の場合は、与えられた時間より前の時間が返ります。 + +この手続きはSRFI-226準拠のコードを書くために用意されています。 +Gauche専用のコードなら上の@code{absolute-time}も使えます。 時間の計算には、SRFI-19の@code{add-duration}/@code{subtract-duration} も使えます。@ref{SRFI-19 Time procedures}を参照してください。 diff --git a/src/libsys.scm b/src/libsys.scm index d889637bf..005e46761 100644 --- a/src/libsys.scm +++ b/src/libsys.scm @@ -893,7 +893,10 @@ (-> pts tv_sec) (-> pts tv_nsec))))))) -(define (seconds+ t dt) (absolute-time dt t)) ;SRFI-226 comatibility +(define (seconds+ t dt) + (assume-type t