[squeak-dev] UTCDateAndTime updated for Squeak 4.6/5.0

David T. Lewis lewis at mail.msen.com
Tue May 26 14:49:26 UTC 2015


Excellent, thank you Levente. I'll make the update as soon as I can (late
today).

FYI, I added you as developer on the SS3 repository
http://ss3.gemstone.com/ss/UTCDateAndTime.html (but that does not mean I
expect you to keep it updated, doing this in MC is a pain right now).

Dave


> On Mon, 25 May 2015, David T. Lewis wrote:
>
>> On Mon, May 25, 2015 at 10:48:20AM -0400, David T. Lewis wrote:
>>> On Sun, May 24, 2015 at 11:22:48PM +0200, Levente Uzonyi wrote:
>>>> On Sun, 24 May 2015, David T. Lewis wrote:
>>>>
>>>>> UTCDateAndTime is a UTC based implementation of class DateAndTime
>>>>> with
>>>>> one instance variable representing the magnitude of the point in
>>>>> time,
>>>>> and another representing local time zone offset.
>>>>>
>>>>> I recommend loading with the SAR from
>>>>> http://wiki.squeak.org/squeak/6197,
>>>>> as maintaining this in Montecello is problematic.
>>>>>
>>>>> After the 4.6/5.0 release, I would like to suggest moving Chronology
>>>>> out
>>>>> of the Kernel package into its own package, so that changes in
>>>>> Chronology
>>>>> can be maintained in Montecello without conflicting with the rest of
>>>>> Kernel.
>>>>>
>>>>> Spur notes: The Spur image provides a huge performance when loading
>>>>> this
>>>>> set of changes. There are two steps in the loading process in which
>>>>> all
>>>>> DateAndTime instances need to be #becomed into new instances. This is
>>>>> painfully slow in the traditional image (with or without Cog), and it
>>>>> is
>>>>> amazing fast in Spur.
>>>>
>>>> Similar speed can be achieved in V3 images (on any VM), if all
>>>> instances
>>>> are exchanged in one shot. In LX-2.2.cs:
>>>>
>>>> | oldInstances newInstances |
>>>> oldInstances := DateAndTime allInstances, TimeStamp allInstances.
>>>> newInstances := oldInstances collect: [ :each |
>>>> 	each class == DateAndTime
>>>> 		ifTrue: [ each asLXDateAndTime ]
>>>> 		ifFalse: [ each asLXTimeStamp ] ].
>>>> oldInstances elementsForwardIdentityTo: newInstances.
>>>>
>>>> And in LX-4.1.cs:
>>>>
>>>> | oldInstances newInstances |
>>>> oldInstances := LXDateAndTime allInstances, LXTimeStamp allInstances.
>>>> newInstances := oldInstances collect: [ :each |
>>>> 	each class == LXDateAndTime
>>>> 		ifTrue: [ each asDateAndTime ]
>>>> 		ifFalse: [ each asTimeStamp ] ].
>>>> oldInstances elementsForwardIdentityTo: newInstances.
>>>
>>> Levente,
>>>
>>> Thank you! I was not aware of that.
>>
>> I updated the SAR at http://wiki.squeak.org/squeak/6197. Indeed it now
>> loads
>> very quickly in a V3 image.
>
> Cool. I've got another change set, which makes instance creation more than
> twice as fast:
> http://leves.web.elte.hu/squeak/DateAndTimeCreationSpeedup.1.cs
>
> Levente
>
>>
>> Dave
>>
>>
>




More information about the Squeak-dev mailing list