[squeak-dev] enabling read-only literals...
asqueaker at gmail.com
Wed Mar 11 23:03:11 UTC 2020
Can ModificationForbidden be resumed? I certainly hope so. Magma's own
WriteBarrier has one place where it dynamically compiles a literal in a
method for the sole purpose of providing one extra reference slot needed
for the framework. This is a useful feature in a general sense, something
I'd hate to see lost. Yes, I understand it's "bad code" to modify a
literal, just like using "become:" (which it also uses), but for frameworks
that need to work slightly under the hood, these hacks can be very useful
when one knows what they're doing.
Unfortunately, I don't think the VM-based WriteBarrier can work for Magma
due to its "global" nature.
> When we added read-only object support to VisualWorks some of the
> engineering staff were of the opinion that insulating customers from the
> change was a necessary thing, and so we implemented a preference to allow
> automatic mutating of read-only literals so that customers whose code did
> modify literals could set the preference rather than fix their code. I
> *really* don't ant to do this. It is a lot of complication for little
> gain; the right fix is just to rewrite the code not to write to literals.
> Note that that's as easy as:
I don't think we need a global preference as much as just let it be
#isResumable. Can we do that?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Squeak-dev