[squeak-dev] The Trunk: Kernel-cmm.855.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Jun 2 14:54:17 UTC 2014


Chris Muller uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-cmm.855.mcz

==================== Summary ====================

Name: Kernel-cmm.855
Author: cmm
Time: 2 June 2014, 9:53:24.175 am
UUID: 478f3548-e587-4dd9-8962-d6ba6dbe2035
Ancestors: Kernel-eem.854

- A simple fix for an 8X performance improvement in DateAndTime>>#< as reported by LXTestDateAndTimePerformance.

=============== Diff against Kernel-eem.854 ===============

Item was changed:
  ----- Method: DateAndTime>>< (in category 'ansi protocol') -----
+ < comparand 
- < comparand
  	"comparand conforms to protocol DateAndTime,
  	or can be converted into something that conforms."
+ 	| lvalue rvalue comparandAsDateAndTime |
- 	| lticks rticks comparandAsDateAndTime |
  	comparandAsDateAndTime := comparand asDateAndTime.
  	offset = comparandAsDateAndTime offset
+ 		ifTrue:
+ 			[ lvalue := self.
+ 			rvalue := comparandAsDateAndTime ]
+ 		ifFalse:
+ 			[ lvalue := self asUTC.
+ 			rvalue := comparandAsDateAndTime asUTC ].
+ 	^ lvalue julianDayNumber < rvalue julianDayNumber or:
+ 		[ lvalue julianDayNumber > rvalue julianDayNumber
+ 			ifTrue: [ false ]
+ 			ifFalse:
+ 				[ lvalue secondsSinceMidnight < rvalue secondsSinceMidnight or:
+ 					[ lvalue secondsSinceMidnight > rvalue secondsSinceMidnight
+ 						ifTrue: [ false ]
+ 						ifFalse: [ lvalue nanoSecond < rvalue nanoSecond ] ] ] ]!
- 		ifTrue: [lticks := self ticks.
- 			rticks := comparandAsDateAndTime ticks]
- 		ifFalse: [lticks := self asUTC ticks.
- 			rticks := comparandAsDateAndTime asUTC ticks].
- 	^ lticks first < rticks first
- 		or: [lticks first > rticks first
- 				ifTrue: [false]
- 				ifFalse: [lticks second < rticks second
- 						or: [lticks second > rticks second
- 								ifTrue: [false]
- 								ifFalse: [lticks third < rticks third]]]]
- !

Item was changed:
  ----- Method: DateAndTime>>= (in category 'ansi protocol') -----
  = aDateAndTimeOrTimeStamp 
  	self == aDateAndTimeOrTimeStamp ifTrue: [ ^ true ].
  	((aDateAndTimeOrTimeStamp isKindOf: self class)
  		or: [aDateAndTimeOrTimeStamp isKindOf: DateAndTime orOf: TimeStamp])
  			ifFalse: [ ^ false ].
  	^ self offset = aDateAndTimeOrTimeStamp offset
  		ifTrue: [ self hasEqualTicks: aDateAndTimeOrTimeStamp ]
+ 		ifFalse: [ self asUTC hasEqualTicks: aDateAndTimeOrTimeStamp asUTC ]!
- 		ifFalse: [ self asUTC ticks = aDateAndTimeOrTimeStamp asUTC ticks ]!



More information about the Squeak-dev mailing list