Hi Christoph,
Question to present you: do you have any means to definitively retrieve this note when you or anyone else actually writes the release notes? ;-)
If there is a practical means to do so, maybe initialize these release notes right now and already write it down.
Kind regards, Jakob
Am Mo., 28. Nov. 2022 um 16:10 Uhr schrieb < christoph.thiede@student.hpi.uni-potsdam.de>:
Note for future self: This is a breaking change that should be documented in the next release notes. :-)
Best, Christoph
On 2022-09-06T16:03:35+00:00, commits@source.squeak.org wrote:
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)!