[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] macOS --metal backwards compatibility regarding primitives 126, 127, 231 (Issue #627)

Eliot Miranda eliot.miranda at gmail.com
Thu May 5 19:12:10 UTC 2022


On Mon, May 2, 2022 at 6:26 AM Marcel Taeumel <notifications at github.com>
wrote:

>
>
> Well, this would be trivial to make backwards compatible were the
> necessary old image fix only
> PasteUpMorph disableDeferredUpdates: true.
>
> I think it might already be since the morphic canvas is set to nil when
> shutting down the image.
>
> introduce a new flag bit in the image flags
>
> Wouldn't this decrease compatibility of newer images with older VMs?
>
But that's not a relevant concern.  A new image can always be run on an
updated VM.  The issue is to *not break older images*.  A VM on its own is
not an application; it is analogous to a real piece of hardware.  An image,
on the other hand, *is* an application.  New VMs should *never* change the
semantics of older images with which they're compatible.  That's akin to a
newer processor running older binaries incorrectly; entirely unacceptable.

Here's what the Go designers have to say about the issue in the latest CACM:

"A final kind of consistency is that of the language and libraries over
time. For the first few years of Go's existence, we tinkered with and
adjusted it in each weekly release. Users often had to change their
programs when updating to a new Go version. Automated tools reduced the
burden, but manual adjustments were also necessary. Starting with Go
version 1, released in 2012, *we publicly committed to making only
backwards-compatible changes to the language and standard library*, so that
programs would continue running unchanged when compiled with newer Go
versions. That commitment attracted industry and has encouraged not just
long-lived engineering projects but also other efforts, such as books,
training courses, and a thriving ecosystem of third-party packages." (my
emphasis added)

This is a rational approach to backwards compatibility, and is one most
Smalltalk VMs, and certainly all the ones I've been associated with, have
maintained.  It is OK to change the VM to no longer support older images;
it is *not* ok to break older images in a VM upon which those images still
run.

>> Reply to this email directly, view it on GitHub
> <https://github.com/OpenSmalltalk/opensmalltalk-vm/issues/627#issuecomment-1114878968>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AIJPEWYWNAVJSGIQGQEKFWTVH7JXTANCNFSM5URRNFFQ>
> .
> You are receiving this because you are subscribed to this thread.Message
> ID: <OpenSmalltalk/opensmalltalk-vm/issues/627/1114878968 at github.com>
>


-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20220505/a44b0e09/attachment.html>


More information about the Vm-dev mailing list