115 lines
5.3 KiB
HTML
115 lines
5.3 KiB
HTML
|
<!-- Common Lisp HyperSpec (TM), version 7.0 generated by Kent M. Pitman on Mon, 11-Apr-2005 2:31am EDT -->
|
||
|
<HTML>
|
||
|
<HEAD>
|
||
|
<TITLE>CLHS: Issue TIME-ZONE-NON-INTEGER Writeup</TITLE>
|
||
|
<LINK HREF="../Data/clhs.css" REL="stylesheet" TYPE="text/css" />
|
||
|
<META HTTP-EQUIV="Author" CONTENT="Kent M. Pitman">
|
||
|
<META HTTP-EQUIV="Organization" CONTENT="LispWorks Ltd.">
|
||
|
<LINK REL=TOP HREF="../Front/index.htm">
|
||
|
<LINK REL=COPYRIGHT HREF="../Front/Help.htm#Legal">
|
||
|
<LINK REL=DISCLAIMER HREF="../Front/Help.htm#Disclaimer">
|
||
|
<LINK REL=PREV HREF="../Issues/iss347_w.htm">
|
||
|
<LINK REL=UP HREF="../Issues/iss348.htm">
|
||
|
<LINK REL=NEXT HREF="../Issues/iss349_w.htm">
|
||
|
</HEAD>
|
||
|
<BODY>
|
||
|
<H1><A REV=MADE HREF="http://www.lispworks.com/"><IMG WIDTH=80 HEIGHT=65 ALT="[LISPWORKS]" SRC="../Graphics/LWSmall.gif" ALIGN=Bottom></A><A REL=TOP HREF="../Front/index.htm"><IMG WIDTH=237 HEIGHT=65 ALT="[Common Lisp HyperSpec (TM)]" SRC="../Graphics/CLHS_Sm.gif" ALIGN=Bottom></A> <A REL=PREV HREF="../Issues/iss347_w.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Previous]" SRC="../Graphics/Prev.gif" ALIGN=Bottom></A><A REL=UP HREF="../Issues/iss348.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Up]" SRC="../Graphics/Up.gif" ALIGN=Bottom></A><A REL=NEXT HREF="../Issues/iss349_w.htm"><IMG WIDTH=40 HEIGHT=40 ALT="[Next]" SRC="../Graphics/Next.gif" ALIGN=Bottom></A></H1>
|
||
|
|
||
|
<HR>
|
||
|
|
||
|
|
||
|
|
||
|
<H2>Issue TIME-ZONE-NON-INTEGER Writeup</H2>
|
||
|
|
||
|
<PRE><B>Status:</B> Passed v1 (as amended in v2) Mar-89 by 18-0 vote.<P>
|
||
|
<B>Issue:</B> <A HREF="iss348.htm">TIME-ZONE-NON-INTEGER</A><P>
|
||
|
<B>References:</B> Section 25.4.1 (Time Functions) (p. 443-444)<P>
|
||
|
<B>Category:</B> CLARIFICATION<P>
|
||
|
<B>Edit history:</B> 1-Mar-89, Version 1 by Chapman<P>
|
||
|
10-Apr-89, Version 2 by Pitman (amendments per X3J13)<P>
|
||
|
<P>
|
||
|
<B>Problem Description:<P>
|
||
|
</B><P>
|
||
|
CLtL states that the time zone part of Decoded Time is an integer.<P>
|
||
|
However, it is possible to have a non-integer time-zone.<P>
|
||
|
<P>
|
||
|
Proposal (<A HREF="iss348.htm">TIME-ZONE-NON-INTEGER:ALLOW</A>)<P>
|
||
|
<P>
|
||
|
Specify that the time zone part of Decoded Time is <P>
|
||
|
1. a rational number (either an integer or a ratio)<P>
|
||
|
2. in the range -24 to 24 (inclusive on both ends)<P>
|
||
|
3. a multiple of 1/3600.<P>
|
||
|
<P>
|
||
|
<B>Rationale:<P>
|
||
|
</B><P>
|
||
|
1. For CL to accommodate all possible time designations, it is<P>
|
||
|
necessary to allow time zone to be non-integer. Some places<P>
|
||
|
in the world are on half-hour or quarter-hour times.<P>
|
||
|
<P>
|
||
|
There is no demand for floating point time zones. Since such<P>
|
||
|
zones would introduce inexact arithmetic, we did not consider<P>
|
||
|
adding them at this time.<P>
|
||
|
<P>
|
||
|
2. This prohibits the perverse use of very incredibly time zone<P>
|
||
|
magnitudes to get around the year restriction on times<P>
|
||
|
in portable code.<P>
|
||
|
<P>
|
||
|
3. This requires time zones to be represented as even multiples<P>
|
||
|
of 1 second.<P>
|
||
|
<P>
|
||
|
<B>Current Practice:<P>
|
||
|
</B><P>
|
||
|
VAX LISP allows time zone to be non-integer.<P>
|
||
|
<P>
|
||
|
<B>Cost to Implementors:<P>
|
||
|
</B><P>
|
||
|
Very slight. Implementations which use integer-only arithmetic<P>
|
||
|
in dealing with time zones might have to switch to a more generic<P>
|
||
|
kind of arithmetic.<P>
|
||
|
<P>
|
||
|
<B>Cost to Users:<P>
|
||
|
</B><P>
|
||
|
Depends on situation. Very slight negative to very strong positive<P>
|
||
|
effects will be seen by users.<P>
|
||
|
<P>
|
||
|
In some cases, this legitimizes time zones which are already a<P>
|
||
|
political necessity and may make life easier for users.<P>
|
||
|
<P>
|
||
|
In at least one known case, this will make things a little harder<P>
|
||
|
because `very large' time zones will not be permitted. However, <P>
|
||
|
such time zones probably were not really portable to begin with<P>
|
||
|
so this is more just a recognition of the status quo.<P>
|
||
|
<P>
|
||
|
<B>Benefits:<P>
|
||
|
</B><P>
|
||
|
See Rationale.<P>
|
||
|
<P>
|
||
|
<B>Conversion Cost:<P>
|
||
|
</B><P>
|
||
|
In most cases, no user code will have to be modified.<P>
|
||
|
<P>
|
||
|
In the one known case using `very large' time zones, the user may<P>
|
||
|
have to write his own time manipulation software if he really wants<P>
|
||
|
to be portable.<P>
|
||
|
<P>
|
||
|
<B>Aesthetics:<P>
|
||
|
</B><P>
|
||
|
Probably slightly improved.<P>
|
||
|
<P>
|
||
|
<B>Discussion:<P>
|
||
|
</B><P>
|
||
|
Haflich was claiming he might want to use very large negative time zones<P>
|
||
|
to go back in history beyond 1900 (where universal times supposedly <P>
|
||
|
bottom out). However, most implementations probably don't represent the<P>
|
||
|
shifts in calendar system which occurred at various points before that<P>
|
||
|
time, most implementors present at the Mar-89 meeting seemed to think this<P>
|
||
|
`hack' was probably not really going to work portably anyway.<P>
|
||
|
</PRE>
|
||
|
<HR>
|
||
|
|
||
|
<A REL=NAVIGATOR HREF="../Front/StartPts.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Starting Points]" SRC="../Graphics/StartPts.gif" ALIGN=Bottom></A><A REL=TOC HREF="../Front/Contents.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Contents]" SRC="../Graphics/Contents.gif" ALIGN=Bottom></A><A REL=INDEX HREF="../Front/X_Master.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Index]" SRC="../Graphics/Index.gif" ALIGN=Bottom></A><A REL=INDEX HREF="../Front/X_Symbol.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Symbols]" SRC="../Graphics/Symbols.gif" ALIGN=Bottom></A><A REL=GLOSSARY HREF="../Body/26_a.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Glossary]" SRC="../Graphics/Glossary.gif" ALIGN=Bottom></A><A HREF="../Front/X3J13Iss.htm"><IMG WIDTH=80 HEIGHT=40 ALT="[Issues]" SRC="../Graphics/Issues.gif" ALIGN=Bottom></A><BR>
|
||
|
|
||
|
<A REL=COPYRIGHT HREF="../Front/Help.htm#Legal"><I>Copyright 1996-2005, LispWorks Ltd. All rights reserved.</I></A><P>
|
||
|
</BODY>
|
||
|
</HTML>
|