Chris Muller uploaded a new version of Kernel to project The Treated Inbox:
http://source.squeak.org/treated/Kernel-cmm.832.mcz
==================== Summary ====================
Name: Kernel-cmm.832
Author: cmm
Time: 8 January 2014, 2:30:21.885 pm
UUID: 80beeb99-09b1-4747-a785-d777e9b2fff7
Ancestors: Kernel-cmm.831
Rename #primRemoveFromSystem: to #basicRemoveFromSystem:.
=============== Diff against Kernel-fbs.829 ===============
Item was added:
+ ----- Method: Class>>basicRemoveFromSystem: (in category 'initialize-release') -----
+ basicRemoveFromSystem: logged
+ "Forget the receiver from the Smalltalk global dictionary. Any existing
+ instances will refer to an obsolete version of the receiver."
+
+ "keep the class name and category for triggering the system change message. If we wait to long, then we get obsolete information which is not what we want."
+
+ "tell class to deactivate and unload itself-- two separate events in the module system"
+ self deactivate; unload.
+ self superclass ifNotNil:
+ ["If we have no superclass there's nothing to be remembered"
+ self superclass addObsoleteSubclass: self].
+ self environment forgetClass: self logged: logged.
+ SystemChangeNotifier uniqueInstance noMoreNotificationsFor: self.
+ self obsolete.!
Item was changed:
----- Method: Class>>removeFromSystem: (in category 'initialize-release') -----
+ removeFromSystem: logged
- removeFromSystem: logged
"Forget the receiver from the Smalltalk global dictionary. Any existing
instances will refer to an obsolete version of the receiver."
-
"keep the class name and category for triggering the system change message. If we wait to long, then we get obsolete information which is not what we want."
-
"tell class to deactivate and unload itself-- two separate events in the module system"
+ subclasses ifNotNil:
+ [ subclasses copy do:
+ [ : each | each removeFromSystem: logged ] ].
+ self basicRemoveFromSystem: logged!
- self deactivate; unload.
- self superclass ifNotNil:
- ["If we have no superclass there's nothing to be remembered"
- self superclass addObsoleteSubclass: self].
- self environment forgetClass: self logged: logged.
- self obsolete.!
Chris Muller uploaded a new version of Morphic to project The Treated Inbox:
http://source.squeak.org/treated/Morphic-cmm.2024.mcz
==================== Summary ====================
Name: Morphic-cmm.2024
Author: cmm
Time: 7 September 2022, 3:46:32.202167 pm
UUID: 0aaef174-20a7-4ffc-b7ce-95de8239c04b
Ancestors: Morphic-mt.2023
Commit test. Please ignore.
=============== Diff against Morphic-mt.2023 ===============
Item was added:
+ ----- Method: Morph class>>test (in category 'testing') -----
+ test!
David T. Lewis uploaded a new version of Chronology-Tests to project The Trunk:
http://source.squeak.org/trunk/Chronology-Tests-lrnp.31.mcz
==================== Summary ====================
Name: Chronology-Tests-lrnp.31
Author: lrnp
Time: 3 March 2022, 12:46:42.775073 am
UUID: 437b3938-ef51-494d-9dee-ba89baa669bb
Ancestors: Chronology-Tests-ct.30
adjust margin of error for millisecond timing
Given that the shortest measurable interval is 1 ms, rounded, allow up to 2 milliseconds over or under for a combination of rounding and delays introduced by taking measurements.
This makes the busyWait test harder to pass unless the millisecond precision prescribed by Delay's comment applies to the current image. If the prescription applies, the test will pass more reliably in case of rounding errors.
=============== Diff against Chronology-Tests-ct.30 ===============
Item was changed:
----- Method: DurationTest>>testBusyWait (in category 'tests') -----
testBusyWait
| duration start elapsed |
duration := Duration milliSeconds: 1.
start := DateAndTime now.
1000 timesRepeat: [duration busyWait].
+ elapsed := DateAndTime now - start roundTo: duration.
- elapsed := DateAndTime now - start.
+ self assert: elapsed >= (duration * 998).
+ self assert: elapsed <= (duration * 1002).!
- self assert: elapsed >= (duration * 1000).
- self assert: elapsed <= (duration * 1000 * 2).!
David T. Lewis uploaded a new version of Chronology-Core to project The Trunk:
http://source.squeak.org/trunk/Chronology-Core-dtl.80.mcz
==================== Summary ====================
Name: Chronology-Core-dtl.80
Author: dtl
Time: 19 May 2022, 12:03:05.720962 pm
UUID: 1b1b97c4-bc35-408d-b548-f0d0376a0808
Ancestors: Chronology-Core-dtl.79
Change DateAndTime>>offset: to be compliant with the ANSI draft spec. The offset: method should answer an instance equivalent to the receiver, where equivalent means having the same UTC time.
Let #offset: adopt the prior behavior of #utcOffset: and let #utcOffset: be a compatibility synonym for #offset:. Add #asLocalAt: to the squeak protocol and let it implement the prior behavior of #offset: Change existing code and tests to use #asLocalAt: but otherwise retain existing behavior.
Issue reported at https://github.com/squeak-smalltalk/squeak-object-memory/issues/23
=============== Diff against Chronology-Core-dtl.79 ===============
Item was added:
+ ----- Method: DateAndTime>>asLocalAt: (in category 'squeak protocol') -----
+ asLocalAt: anOffset
+ "Answer a DateAndTime for a different time zone offset that has the same
+ year, month, day, hour, minute, and second as this instance, and with
+ printString that matches except for time zone offset."
+
+ | newOffset newMicros |
+ newOffset := anOffset asDuration asSeconds.
+ newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.
+ ^ self class utcMicroseconds: newMicros offset: newOffset
+ !
Item was changed:
----- Method: DateAndTime>>offset: (in category 'ansi protocol') -----
offset: anOffset
+ "Answer a <DateAndTime> equivalent to the receiver but with its local time
+ being offset from UTC by offset.
- "Answer a DateAndTime for a different time zone offset that has the same
- year, month, day, hour, minute, and second as this instance, and with
- printString that matches except for time zone offset."
+ See asLocalAt: for the earlier behavior of this method."
+
+ ^ self class
+ utcMicroseconds: utcMicroseconds
+ offset: anOffset asDuration asSeconds!
- | newOffset newMicros |
- newOffset := anOffset asDuration asSeconds.
- newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.
- ^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed:
----- Method: DateAndTime>>utcOffset: (in category 'squeak protocol') -----
utcOffset: anOffset
+ "Compatiblity. Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset."
+
+ ^ self offset: anOffset!
- "Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset"
- ^ self class
- utcMicroseconds: utcMicroseconds
- offset: anOffset asDuration asSeconds!
Item was changed:
----- Method: Timespan class>>current (in category 'squeak protocol') -----
current
+ ^ self starting: (DateAndTime now asLocalAt: self defaultOffset)!
- ^ self starting: (DateAndTime now offset: self defaultOffset)!
David T. Lewis uploaded a new version of Chronology-Core to project The Trunk:
http://source.squeak.org/trunk/Chronology-Core-dtl.81.mcz
==================== Summary ====================
Name: Chronology-Core-dtl.81
Author: dtl
Time: 6 September 2022, 12:01:42.15096 pm
UUID: ffc48d2d-0f38-4d45-b3b3-d973d8ed08c5
Ancestors: Chronology-Core-ct.80, Chronology-Core-dtl.80
Merge Chronology-Core-dtl.80
Reference https://github.com/squeak-smalltalk/squeak-object-memory/issues/23 DateAndTime>>offset: implementation is incorrect
=============== Diff against Chronology-Core-ct.80 ===============
Item was added:
+ ----- Method: DateAndTime>>asLocalAt: (in category 'squeak protocol') -----
+ asLocalAt: anOffset
+ "Answer a DateAndTime for a different time zone offset that has the same
+ year, month, day, hour, minute, and second as this instance, and with
+ printString that matches except for time zone offset."
+
+ | newOffset newMicros |
+ newOffset := anOffset asDuration asSeconds.
+ newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.
+ ^ self class utcMicroseconds: newMicros offset: newOffset
+ !
Item was changed:
----- Method: DateAndTime>>offset: (in category 'ansi protocol') -----
offset: anOffset
+ "Answer a <DateAndTime> equivalent to the receiver but with its local time
+ being offset from UTC by offset.
- "Answer a DateAndTime for a different time zone offset that has the same
- year, month, day, hour, minute, and second as this instance, and with
- printString that matches except for time zone offset."
+ See asLocalAt: for the earlier behavior of this method."
+
+ ^ self class
+ utcMicroseconds: utcMicroseconds
+ offset: anOffset asDuration asSeconds!
- | newOffset newMicros |
- newOffset := anOffset asDuration asSeconds.
- newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.
- ^ self class utcMicroseconds: newMicros offset: newOffset
- !
Item was changed:
----- Method: DateAndTime>>utcOffset: (in category 'squeak protocol') -----
utcOffset: anOffset
+ "Compatiblity. Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset."
+
+ ^ self offset: anOffset!
- "Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset"
- ^ self class
- utcMicroseconds: utcMicroseconds
- offset: anOffset asDuration asSeconds!
Item was changed:
----- Method: Timespan class>>current (in category 'squeak protocol') -----
current
+ ^ self starting: (DateAndTime now asLocalAt: self defaultOffset)!
- ^ self starting: (DateAndTime now offset: self defaultOffset)!