TimeForSpeed - Mantis updates

stéphane ducasse ducasse at iam.unibe.ch
Thu Aug 31 12:40:42 UTC 2006


hi guys

What I think that we should do is the following:
You decide, collect, run the tests and once this is done you ping,  
publish the new package to be integrated in
the inbox of the squeakfoundation and I integrated as the first new  
package of 3.10.


Now recently I was thinking that retrospectively it would have been  
better to keep a really small
and limited core class (that the system only requires) and have  
separate and loadable time packages.
I have the impression that aconcagua for example is circuventing some  
limits of Brent packages...
So having packages that are not tied to the kernel would make their  
evolution/tests/maintenance
easier. What do you think about that?

Stef


On 31 août 06, at 14:22, Brent Pinkney wrote:

> Hi,
>
> From the Mantis issue:
> I am nominally responsible for the Chronology package since I wrote  
> it :)
>
> I have tested and reviewed this change. All tests pass in 3.8.1  
> (6744).
>
> I would also encourage this enhancement to include Dan Ingall's  
> modificaton
> which significantly speeds up printing a DateAndTime instance.
>
> All tests work with both enhancements.
> I have attached my cleanup of Dan's code to this issue.
>
>      suite := TestSuite new name: 'Chronology Tests'.
>      (SystemOrganization superclassOrder: #'Kernel-Chronology-Tests')
>          do: [ :tc | tc addToSuiteFromSelectors: suite ].
>      suite run.
>
> RESULT: 420 run, 420 passes, 0 expected failures, 0 failures, 0  
> errors...
>
> I strongly encourage both changesets to be approved.
>
> ---------------------------------------------------------------------- 
> -----------------------------------------
>> It would be nice if someone could summarize all Time related
>> classes and when to use which one. There is plenty of them these  
>> days.
>
> I developed the Chronology class to precisely solve the problem of  
> many Time classes.
> If you read the original wiki page (http://minnow.cc.gatech.edu/ 
> squeak/1871) I refer to
> my experience with Java/J++ where there were 6 different class  
> libraries to choose from.
>
> I added the support for nano second precision precisely to future- 
> proof the design.
>
>> For example, Date as you mention seems IMHO also like it still  
>> could be
>> stored as a julian day number. A "Date beast" with duration etc seems
>> like it probably could be called a Day instead.
>
> Perhaps, but a Date definately starts at midnight and ends 86400  
> later. So it
> has a duration. I chose Date as Day implies the sun is shining :)
>
>> A Date does not in my mind represent a "specific historic period",  
>> but I am no expert
>> of course.
>
> If you are interested, the design came from my experience of off-by- 
> one errors when
> manipluating the jail sentences (and other such) things in  
> VisualAge for a certain
> South Pacific nation.
>
> Hence, a given Date occupies all 86400 seconds it legally spans and  
> can be used
> with the other Timespan classes to correctly calculate  
> intersections, etc.
>
>> PS. We also use the Timezone stuff from David Lewis and that also  
>> ties
>> into this using class PointInTime etc. Phew.
>
> David developed his class in isolation - I only learnt of it when  
> he announced it.
>
> Much of the features he offers are related to time zones. The  
> existing chronology
> package does support the basics of time zones with an eye to adding  
> daylight saving
> later.
>
> I did not add that as I live in a country with only one time zone  
> and no daylight saving.
> There is no reason Dave's functionality could not be included.
>
> Brent
>
>




More information about the Squeak-dev mailing list