<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>Hi Lauren,</p>
<p><br>
</p>
<p>> <span style="font-size: 12pt;">Could we flag #breaking the way we flag #deprecated?</span></p>
<p><br>
</p>
<p>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. :-)</p>
<p><br>
</p>
<p>> <span>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?</span></p>
<p><span><br>
</span></p>
<p><span>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.</span></p>
<p><br>
</p>
<p>Best,</p>
<p>Christoph</p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Lauren P <drurowin@gmail.com><br>
<b>Gesendet:</b> Montag, 28. November 2022 17:09:40<br>
<b>An:</b> The general-purpose Squeak developers list<br>
<b>Betreff:</b> Re: [squeak-dev] The Trunk: Chronology-Core-dtl.80.mcz</font>
<div> </div>
</div>
<div>
<div dir="auto">List,
<div dir="auto"><br>
</div>
<div dir="auto">Could we flag #breaking the way we flag #deprecated?</div>
<div dir="auto"><br>
</div>
<div dir="auto">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?</div>
<div dir="auto"><br>
</div>
<div dir="auto">I was thinking #breaking:legacy: or similar to invoke the old implementation. User flexibility to not need to debug someone else's library, yaknow?</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Mon, Nov 28, 2022, 08:21 Jakob Reschke <<a href="mailto:jakres%2Bsqueak@gmail.com">jakres+squeak@gmail.com</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>Hi Christoph,</div>
<div><br>
</div>
Question to present you: do you have any means to definitively retrieve this note when you or anyone else actually writes the release notes? ;-)
<div><br>
</div>
<div>If there is a practical means to do so, maybe initialize these release notes right now and already write it down.<br>
<div><br>
</div>
<div>Kind regards,<br>
Jakob</div>
</div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Am Mo., 28. Nov. 2022 um 16:10 Uhr schrieb <<a href="mailto:christoph.thiede@student.hpi.uni-potsdam.de" target="_blank" rel="noreferrer">christoph.thiede@student.hpi.uni-potsdam.de</a>>:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Note for future self: This is a breaking change that should be documented in the next release notes. :-)<br>
<br>
Best,<br>
Christoph<br>
<br>
On 2022-09-06T16:03:35+00:00, <a href="mailto:commits@source.squeak.org" target="_blank" rel="noreferrer">
commits@source.squeak.org</a> wrote:<br>
<br>
> David T. Lewis uploaded a new version of Chronology-Core to project The Trunk:<br>
> <a href="http://source.squeak.org/trunk/Chronology-Core-dtl.80.mcz" rel="noreferrer noreferrer" target="_blank">
http://source.squeak.org/trunk/Chronology-Core-dtl.80.mcz</a><br>
> <br>
> ==================== Summary ====================<br>
> <br>
> Name: Chronology-Core-dtl.80<br>
> Author: dtl<br>
> Time: 19 May 2022, 12:03:05.720962 pm<br>
> UUID: 1b1b97c4-bc35-408d-b548-f0d0376a0808<br>
> Ancestors: Chronology-Core-dtl.79<br>
> <br>
> 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.<br>
> <br>
> 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.<br>
> <br>
> Issue reported at <a href="https://github.com/squeak-smalltalk/squeak-object-memory/issues/23" rel="noreferrer noreferrer" target="_blank">
https://github.com/squeak-smalltalk/squeak-object-memory/issues/23</a><br>
> <br>
> =============== Diff against Chronology-Core-dtl.79 ===============<br>
> <br>
> Item was added:<br>
> + ----- Method: DateAndTime>>asLocalAt: (in category 'squeak protocol') -----<br>
> + asLocalAt: anOffset<br>
> +     "Answer a DateAndTime for a different time zone offset that has the same<br>
> +     year, month, day, hour, minute, and second as this instance, and with<br>
> +     printString that matches except for time zone offset."<br>
> + <br>
> +     | newOffset newMicros |<br>
> +     newOffset := anOffset asDuration asSeconds.<br>
> +     newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.<br>
> +     ^ self class utcMicroseconds: newMicros offset: newOffset<br>
> + !<br>
> <br>
> Item was changed:<br>
>   ----- Method: DateAndTime>>offset: (in category 'ansi protocol') -----<br>
>   offset: anOffset<br>
> +     "Answer a <DateAndTime> equivalent to the receiver but with its local time
<br>
> +     being offset from UTC by offset.<br>
> -     "Answer a DateAndTime for a different time zone offset that has the same<br>
> -     year, month, day, hour, minute, and second as this instance, and with<br>
> -     printString that matches except for time zone offset."<br>
>   <br>
> +     See asLocalAt: for the earlier behavior of this method."<br>
> + <br>
> +     ^ self class<br>
> +             utcMicroseconds: utcMicroseconds<br>
> +             offset: anOffset asDuration asSeconds!<br>
> -     | newOffset newMicros |<br>
> -     newOffset := anOffset asDuration asSeconds.<br>
> -     newMicros := localOffsetSeconds - newOffset * 1000000 + utcMicroseconds.<br>
> -     ^ self class utcMicroseconds: newMicros offset: newOffset<br>
> - !<br>
> <br>
> Item was changed:<br>
>   ----- Method: DateAndTime>>utcOffset: (in category 'squeak protocol') -----<br>
>   utcOffset: anOffset <br>
> +     "Compatiblity. Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset."<br>
> + <br>
> +     ^ self offset: anOffset!<br>
> -     "Answer a DateAndTime equivalent to the receiver but offset from UTC by anOffset"<br>
> -     ^ self class<br>
> -             utcMicroseconds: utcMicroseconds<br>
> -             offset: anOffset asDuration asSeconds!<br>
> <br>
> Item was changed:<br>
>   ----- Method: Timespan class>>current (in category 'squeak protocol') -----<br>
>   current<br>
> +     ^ self starting: (DateAndTime now asLocalAt: self defaultOffset)!<br>
> -     ^ self starting: (DateAndTime now offset: self defaultOffset)!<br>
> <br>
> <br>
<br>
</blockquote>
</div>
<br>
</blockquote>
</div>
</div>
</body>
</html>