[squeak-dev] The Trunk: Chronology-Core-dtl.80.mcz

Thiede, Christoph Christoph.Thiede at student.hpi.uni-potsdam.de
Mon Nov 28 17:34:10 UTC 2022


Hi Lauren,


> Could we flag #breaking the way we flag #deprecated?


This is an interesting idea, but I think that the concept of change mismatches the static concept of source code here. IMHO we should not start documenting changelogs in every single method again. :-)


> I think we should hold off deleting the old implementation for at least one version... Is Squeak's debugger advanced enough to run the old code during the transition period?


So many fancy ideas, but probably too fancy for a "production" system. :D Most likely, this would ultimately lead us to versioning hell, I think. However, some mechanisms that could be used for this would be layered methods (e.g. Context/S) or multiple environments to that one could install different versions of a package.


Best,

Christoph

________________________________
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Lauren P <drurowin at gmail.com>
Gesendet: Montag, 28. November 2022 17:09:40
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] The Trunk: Chronology-Core-dtl.80.mcz

List,

Could we flag #breaking the way we flag #deprecated?

I think we should hold off deleting the old implementation for at least one version... Is Squeak's debugger advanced enough to run the old code during the transition period?

I was thinking #breaking:legacy: or similar to invoke the old implementation. User flexibility to not need to debug someone else's library, yaknow?

On Mon, Nov 28, 2022, 08:21 Jakob Reschke <jakres+squeak at gmail.com<mailto:jakres%2Bsqueak at gmail.com>> wrote:
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 at student.hpi.uni-potsdam.de<mailto:christoph.thiede at 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 at source.squeak.org<mailto:commits at 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)!
>
>


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20221128/0c435338/attachment.html>


More information about the Squeak-dev mailing list