<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2802" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2>Avi Bryant is currently working on a port of <A 
href="http://www.chronos-st.org/">Chronos</A> to Squeak. He has </FONT><A 
href="http://map.squeak.org/package/46b5731f-5112-4157-94d3-d40c4ed8304d"><FONT 
face=Arial size=2>published a Monticello package to SqueakMap</FONT></A><FONT 
face=Arial><FONT size=2> that contains a very preliminary port.&nbsp;<SPAN 
class=453205403-25022006> It is very much a "work in progress." When Avi is 
satisfied that the port is sufficiently functional and stable, he will make a 
general announcement to that effect.&nbsp; No promises have been made with 
respect to when a version suitable for general use may become available, nor is 
there any commitment to provide all the same functionality as is available from 
the VisualWorks version. Of course, nothing prevents others from contributing 
improvements/enhancements in addition to whatever Avi 
publishes.</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN 
class=453205403-25022006></SPAN></FONT></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=453205403-25022006>Initially, Avi 
does not plan to port the Chronos Time Zone Compiler to Squeak.&nbsp; Tthe 
Chronos Time Zone Compiler is used to generate the <A 
href="http://www.chronos-st.org/downloads/time-zones.zip">Chronos Time Zone 
Repository</A> from the information provided by the <A 
href="http://www.twinsun.com/tz/tz-link.htm">Olson Time Zone Database</A>. Since 
the <A href="http://www.chronos-st.org/downloads/time-zones.zip">Chronos Time 
Zone Repositor</A>y a) is available from the <A 
href="http://www.chronos-st.org/">Chronos web site</A>, and b) is usable "as is" 
by any Smalltalk implementation (in fact, it would be usable by any programming 
language, given a sufficiently powerful time zone implementation written in that 
language,)&nbsp; that's not that big of an issue.</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN 
class=453205403-25022006></SPAN></FONT></FONT><FONT face=Arial><FONT 
size=2><SPAN class=453205403-25022006></SPAN></FONT></FONT>&nbsp;</DIV><FONT 
face=Arial><FONT size=2><SPAN class=453205403-25022006>
<DIV><SPAN class=453205403-25022006><FONT face=Arial size=2>It's only recently 
that I have become at all familiar with Avi's work.&nbsp; Initially, I only knew 
he was one of the principal authors of Seaside.&nbsp; <A 
href="http://map.squeak.org/accountbyid/04ec7571-cb7e-47ea-b1fc-218f7ec45adc">But 
he's done much more than just&nbsp;that</A>&nbsp;(although Seaside is impressive 
enough by itself.) </FONT></SPAN></DIV>
<DIV><SPAN class=453205403-25022006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=453205403-25022006><FONT face=Arial size=2>I am very 
appreciative of the contributution&nbsp;Avi is making towards porting Chronos to 
Squeak.</FONT></SPAN></DIV>
<DIV>&nbsp;</DIV>
<DIV><STRONG>Fair warning</STRONG>: As </SPAN>of Sat, 25 Feb 2006 03:31:56 +0000 
(Universal Time,) the version on SqueakMap will not work "as is" in versions of 
Squeak from 3.7 onward (you can load it, but if you execute the 
initialization/installation "do it" that the pop-up Transcript window suggests, 
you will then be unable to either save the image or compile any 
methods.)&nbsp;<SPAN class=453205403-25022006> The problem is caused by the fact 
that the installation procedure (as implemented in the version currently 
available from SqueakMap) redefines both DateAndTime and Duration so that they 
are aliases for the Chronos classes Timepoint and ScientificDuration 
(respectively,) in place of the native Chronology classes named DateAndTime and 
Duration (and this issue is precisely why I chose not to use the names 
"DateAndTime" and "Duration" as class names.) </SPAN>This problem can be 
fixed<SPAN class=453205403-25022006> if, before evaluating the 
'ChronosEnvironment install' "do it"&nbsp;as suggested, </SPAN>the 
following&nbsp;<SPAN class=453205403-25022006>class </SPAN>method<SPAN 
class=453205403-25022006> is first implemented</SPAN>: </FONT></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><STRONG>ChronosSqueakEnvironment 
class&gt;&gt;setProtectedGlobalVariables</STRONG>&nbsp;<BR><SPAN 
class=453205403-25022006>&nbsp;&nbsp;&nbsp; </SPAN>ProtectedGlobalVariables := 
Set with: #ScaledDecimal with: #DateAndTime with: #Duration. </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=453205403-25022006>Avi is using 
Squeak 3.6 to do the porting work.&nbsp; The Chronology library did not become 
part of standard Squeak until version 3.7, and so there is no issue raised by 
(re)defining the globals DateAndTime and Duration as&nbsp;global aliases for 
Timepoint and ScientificDuration (respectively)&nbsp;in versions of Squeak prior 
to 3.7.&nbsp; That may well be why Avi is using Squeak 3.6 to do the port. 
(Squeak badly needs a mechanism to more elegantly handle issues such as this 
one.)</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN 
class=453205403-25022006></SPAN></FONT></FONT>&nbsp;</DIV>
<DIV><FONT><FONT face=Arial><FONT size=2><SPAN class=453205403-25022006>Note 
that the </SPAN>version currently&nbsp;<SPAN class=453205403-25022006>available 
from</SPAN>&nbsp;SqueakMap has not been given the ability to access 
files--<STRONG>so it can't&nbsp;<SPAN class=453205403-25022006>retrieve 
</SPAN>any time zones from the </STRONG></FONT></FONT><A 
href="http://www.chronos-st.org/downloads/time-zones.zip"><FONT face=Arial 
size=2><STRONG>Chronos Time Zone Repository</STRONG></FONT></A><SPAN 
class=453205403-25022006></SPAN><FONT face=Arial><FONT size=2>,<SPAN 
class=453205403-25022006> and&nbsp;therefore&nbsp;Olson time zone keys such as 
'Americal/Los_Angeles', 'Europe/Paris' and 'Asia/Tokyo' cannot be used to 
identify a time zone</SPAN>. Nor&nbsp;<SPAN class=453205403-25022006>is there 
any </SPAN>code that makes any attempt to determine the local time zone from the 
host operating system, nor any code that provides any locale 
information.&nbsp;</FONT></FONT></FONT></DIV>
<DIV><FONT><FONT face=Arial><FONT size=2></FONT></FONT></FONT>&nbsp;</DIV>
<DIV><FONT><FONT face=Arial><FONT size=2><SPAN 
class=453205403-25022006>Consequently, </SPAN><SPAN class=453205403-25022006>the 
Chronos system time zone simply defaults to Universal Time (which is what the 
native Chronology library does also, so at least you're no worse off than you 
were before.)&nbsp; Nevertheless, you can still do quite a bit. 
</SPAN></FONT></FONT></FONT><FONT><FONT face=Arial><FONT size=2><SPAN 
class=453205403-25022006>For example, after loading and properly initializing 
Chronos, you can evaluate the following expression to set the Chronos system 
time zone so that it matches the zone rules that have been in effect since 1996 
for CET/CEST (Central European Time):</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT><FONT face=Arial><FONT size=2><SPAN 
class=453205403-25022006></SPAN></FONT></FONT></FONT>&nbsp;</DIV>
<DIV><FONT><FONT face=Arial><FONT size=2><SPAN 
class=453205403-25022006>&nbsp;&nbsp;&nbsp; 
(ChronosTimezone<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; key: 
#'Europe/Berlin' name: #'Central European 
Time'</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT><FONT face=Arial><FONT size=2><SPAN 
class=453205403-25022006>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
initialOffset: (ScientificDuration hours: 1) withAbbreviation: 
#CET&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
until: (WeekOfMonthDayOfWeek month:&nbsp;3 week: 0 dayOfWeek: 1) "The 'zeroeth 
week' means the last week of the month"</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT><FONT face=Arial><FONT size=2><SPAN 
class=453205403-25022006>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
at: (TimeOfDay hour:&nbsp;1 minute: 0 second: 0) relativity: 
#universal</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT><FONT face=Arial><FONT size=2><SPAN 
class=453205403-25022006>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; thenOffset: 
(ScientificDuration hours: 2)&nbsp; withAbbreviation: 
#CEST&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
until: (WeekOfMonthDayOfWeek month:&nbsp;10 week:&nbsp;0 dayOfWeek: 1) 
</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT><FONT face=Arial><FONT size=2><SPAN 
class=453205403-25022006>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
at: (TimeOfDay hour:&nbsp;1 minute: 0 second: 0) relativity: 
#universal)</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT><FONT face=Arial><FONT size=2><SPAN 
class=453205403-25022006>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
beSystem</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><SPAN class=453205403-25022006><FONT face=Arial size=2>Then, you can 
evaluate "Timepoint now" to see the current time. And if you find 
yourself&nbsp;in Madrid, Paris, Berlin or Amsterdam, the answer will even be 
correct.&nbsp; However, due to the fact that the Squeak system clock reports 
local time, setting the Chronos system time zone has no effect on what is 
displayed when "Timepoint now" is evaluated.&nbsp; It only changes the results 
of evaluating "Timepoint utNow."&nbsp;&nbsp; On a system whose clock reported 
Universal Time, the situation would be reversed.</FONT></SPAN></DIV>
<DIV><SPAN class=453205403-25022006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=453205403-25022006><FONT face=Arial 
size=2>--Alan</FONT></SPAN></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV></BODY></HTML>