From: <cli...@li...> - 2005-12-03 04:17:11
|
Send clisp-cvs mailing list submissions to cli...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/clisp-cvs or, via email, send a message with subject or body 'help' to cli...@li... You can reach the person managing the list at cli...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of clisp-cvs digest..." CLISP CVS commits for today Today's Topics: 1. clisp/tests time.tst,1.3,1.4 ChangeLog,1.434,1.435 (Sam Steingold) 2. clisp/src defs1.lisp,1.63,1.64 ChangeLog,1.5134,1.5135 (Sam Steingold) 3. clisp/src time.d,1.49,1.50 ChangeLog,1.5135,1.5136 (Sam Steingold) --__--__-- Message: 1 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/tests time.tst,1.3,1.4 ChangeLog,1.434,1.435 Date: Fri, 02 Dec 2005 18:09:53 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18839/tests Modified Files: time.tst ChangeLog Log Message: (check-universal-time): simplified (time-loop): more informative log Index: time.tst =================================================================== RCS file: /cvsroot/clisp/clisp/tests/time.tst,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- time.tst 30 Nov 2005 22:10:56 -0000 1.3 +++ time.tst 2 Dec 2005 18:09:51 -0000 1.4 @@ -11,9 +11,11 @@ (defun check-universal-time (time &optional tz) "check that DECODE-UNIVERSAL-TIME is the inverse of ENCODE-UNIVERSAL-TIME" (multiple-value-bind (se mi ho da mo ye wk ds-p zone) - (apply #'decode-universal-time time (and tz (list tz))) + (decode-universal-time time tz) + ;; we must give encode-universal-time some DST information because + ;; otherwize it has no way to tell if 1995-10-27 01:30:00 is DST or not (let ((ut (encode-universal-time se mi ho da mo ye - (or tz (+ zone (if ds-p 1 0)))))) + (or tz (if ds-p (1- zone) zone))))) (unless (= ut time) (list time (list se mi ho da mo ye wk ds-p zone tz) ut (- ut time)))))) CHECK-UNIVERSAL-TIME @@ -23,6 +25,9 @@ (compile 'check-universal-time) CHECK-UNIVERSAL-TIME (stringp (documentation #'check-universal-time t)) T +(check-universal-time 2879996399) NIL +(check-universal-time 2879996400) NIL + (defun time-loop (start end step &optional tz) "return the periods of badness" (time @@ -31,7 +36,11 @@ :for check = (check-universal-time tm tz) :do (case state ((:good) (when check (setq state :bad) (show check) (push check ret))) - ((:bad) (unless check (setq state :good) (show tm) (push tm (car ret)))) + ((:bad) (unless check + (push (show (list tm (multiple-value-list + (decode-universal-time tm tz)))) + (car ret)) + (setq state :good))) (t (setq state (if check :bad :good)) (show (list state tm check)))) :finally (return (nreverse ret))))) TIME-LOOP @@ -45,9 +54,6 @@ (time-loop 100000 5000000000 5000) NIL (time-loop 4300066700 4300181201 10) NIL -(check-universal-time 2879996399) NIL -(check-universal-time 2879996400) NIL - ;; specific timezone (time-loop 100000 5000000000 5000 0) NIL (time-loop 4300066700 4300081201 10 0) NIL Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/tests/ChangeLog,v retrieving revision 1.434 retrieving revision 1.435 diff -u -d -r1.434 -r1.435 --- ChangeLog 30 Nov 2005 22:10:56 -0000 1.434 +++ ChangeLog 2 Dec 2005 18:09:51 -0000 1.435 @@ -1,3 +1,8 @@ +2005-12-02 Sam Steingold <sd...@gn...> + + * time.tst (check-universal-time): simplified + (time-loop): more informative log + 2005-11-30 Sam Steingold <sd...@gn...> * time.tst: enabled check-universal-time checks for default TZ --__--__-- Message: 2 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src defs1.lisp,1.63,1.64 ChangeLog,1.5134,1.5135 Date: Fri, 02 Dec 2005 18:45:54 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27588/src Modified Files: defs1.lisp ChangeLog Log Message: (encode-universal-time): reverted part of the 2005-11-30 patch: no need to adjust the return value of DEFAULT-TIME-ZONE Index: defs1.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/defs1.lisp,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- defs1.lisp 30 Nov 2005 22:10:56 -0000 1.63 +++ defs1.lisp 2 Dec 2005 18:45:52 -0000 1.64 @@ -736,10 +736,8 @@ (- *default-time-zone* (if (funcall *default-dst-check* Jahr3 Jahrtag Stunde) 1 0)) #+(or UNIX WIN32) - (multiple-value-bind (tz dst) - (default-time-zone - (+ (* 24 UTTag) Stunde) nil) - (if dst (1- tz) tz)))) + (default-time-zone + (+ (* 24 UTTag) Stunde) nil))) (when (floatp Zeitzone) (setq Zeitzone (rational Zeitzone))) (or (integerp Zeitzone) (and (rationalp Zeitzone) (integerp (* 3600 Zeitzone))))) @@ -763,12 +761,12 @@ (multiple-value-bind (UTTag Stunde) (floor UT (* 3600 24)) (multiple-value-bind (Jahr Jahrtag) (Jahr&Tag UTTag) (funcall *default-dst-check* Jahr Jahrtag Stunde)))) - Zeitzone (- time-zone (if Sommerzeit 1 0))) + Zeitzone (if Sommerzeit (1- time-zone) time-zone)) #+(or UNIX WIN32) (progn (multiple-value-setq (Zeitzone Sommerzeit) (default-time-zone (floor UT 3600) t)) - (setq time-zone (+ Zeitzone (if Sommerzeit 1 0))))) + (setq time-zone (if Sommerzeit (1+ Zeitzone) Zeitzone)))) ; time-zone = Zeitzone ohne Sommerzeitberücksichtigung, ; Zeitzone = Zeitzone mit Sommerzeitberücksichtigung. (let ((UTSekunden (- UT (round (* 3600 Zeitzone))))) Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.5134 retrieving revision 1.5135 diff -u -d -r1.5134 -r1.5135 --- ChangeLog 1 Dec 2005 19:49:46 -0000 1.5134 +++ ChangeLog 2 Dec 2005 18:45:52 -0000 1.5135 @@ -1,3 +1,8 @@ +2005-12-02 Sam Steingold <sd...@gn...> + + * defs1.lisp (encode-universal-time): reverted part of the 2005-11-30 + patch: no need to adjust the return value of DEFAULT-TIME-ZONE + 2005-12-01 Sam Steingold <sd...@gn...> * spvw_debug.d (nobject_out1): output more information for streams --__--__-- Message: 3 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src time.d,1.49,1.50 ChangeLog,1.5135,1.5136 Date: Fri, 02 Dec 2005 18:47:46 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27709/src Modified Files: time.d ChangeLog Log Message: (seconds_west): fixed a bug in the last patch: now_gm and now_local must be structures, not pointers, because gmtime and localtime return pointers to the same memory ares. also note that seconds_west is NOT the same as (mktime(&now_gm) - mktime(&now_local)) during DST Index: time.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/time.d,v retrieving revision 1.49 retrieving revision 1.50 diff -u -d -r1.49 -r1.50 --- time.d 30 Nov 2005 22:10:56 -0000 1.49 +++ time.d 2 Dec 2005 18:47:44 -0000 1.50 @@ -604,29 +604,32 @@ #if defined(UNIX) || defined(WIN32) local sintL seconds_west (time_t *now, int *isdst) { - /* secondswest = mktime(now_gm) - mktime(now_local); - would be nice but mktime() is not common enough */ - var struct tm *now_local; - var struct tm *now_gm; + /* localtime() and gmtime() may return the same location, + so we have to copy the rerned structure contents: */ + var struct tm now_local; + var struct tm now_gm; begin_system_call(); - now_local = localtime(now); - now_gm = gmtime(now); + now_local = *(localtime(now)); + now_gm = *(gmtime(now)); end_system_call(); - *isdst = now_local->tm_isdst; + /* note that secondswest is NOT the same as + mktime(&now_gm) - mktime(&now_local); + during DST */ var sintL dayswest = /* day difference = 0,1,-1 */ - (now_gm->tm_year < now_local->tm_year ? -1 : - now_gm->tm_year > now_local->tm_year ? 1 : - (now_gm->tm_mon < now_local->tm_mon ? -1 : - now_gm->tm_mon > now_local->tm_mon ? 1 : - (now_gm->tm_mday < now_local->tm_mday ? -1 : - now_gm->tm_mday > now_local->tm_mday ? 1 : + (now_gm.tm_year < now_local.tm_year ? -1 : + now_gm.tm_year > now_local.tm_year ? 1 : + (now_gm.tm_mon < now_local.tm_mon ? -1 : + now_gm.tm_mon > now_local.tm_mon ? 1 : + (now_gm.tm_mday < now_local.tm_mday ? -1 : + now_gm.tm_mday > now_local.tm_mday ? 1 : 0))); var sintL hourswest = 24*dayswest - + (sintL)(now_gm->tm_hour - now_local->tm_hour); + + (sintL)(now_gm.tm_hour - now_local.tm_hour); var sintL minuteswest = 60*hourswest - + (sintL)(now_gm->tm_min - now_local->tm_min); + + (sintL)(now_gm.tm_min - now_local.tm_min); var sintL secondswest = 60*minuteswest - + (sintL)(now_gm->tm_sec - now_local->tm_sec); + + (sintL)(now_gm.tm_sec - now_local.tm_sec); + *isdst = now_local.tm_isdst; return secondswest; } Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.5135 retrieving revision 1.5136 diff -u -d -r1.5135 -r1.5136 --- ChangeLog 2 Dec 2005 18:45:52 -0000 1.5135 +++ ChangeLog 2 Dec 2005 18:47:44 -0000 1.5136 @@ -2,6 +2,11 @@ * defs1.lisp (encode-universal-time): reverted part of the 2005-11-30 patch: no need to adjust the return value of DEFAULT-TIME-ZONE + * time.d (seconds_west): fixed a bug in the last patch: + now_gm and now_local must be structures, not pointers, because + gmtime and localtime return pointers to the same memory ares. + also note that seconds_west is NOT the same as (mktime(&now_gm) - + mktime(&now_local)) during DST 2005-12-01 Sam Steingold <sd...@gn...> --__--__-- _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest |