[squeak-dev] beReadOnlyObject (was: FileStreams Limit)

Jörg Belger unique75 at web.de
Sat Feb 19 17:29:46 UTC 2022


Ahh thank you… I looked only in the 5.3 image coz I want currently to use only a stable image for my things :-)
Seems Eliot tries to implement every nice things from the VisualWorks VM :-)

> Am 19.02.2022 um 16:32 schrieb David T. Lewis <lewis at mail.msen.com>:
> 
> On Sat, Feb 19, 2022 at 02:27:48PM +0100, J??rg Belger wrote:
>> 
>>> Am 19.02.2022 um 14:14 schrieb Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>:
>>> 
>>> For immutability, please see #beReadOnlyObject.
>>> 
>> 
>> I cannot find the #beReadOnlyObject with MethodFinder in 5.3 or in class Object
>> 
> 
> Eliot added this last March, so it is in the trunk image now but was
> not present in the 5.3 release image.
> 
> A new 6.0 release is expected some time in the next month or so, but
> in the mean time you can find #beReadOnlyObject in the current trunk
> image (the download link is at https://squeak.org/downloads/), or you
> can update an existing 5.3 image (preferences browser, category "updates",
> change the Update URL to http://source.squeak.org/trunk, then Update
> Squeak from the mouse menu at upper left).
> 
> Here the the commit notices from the trunk update stream:
> 
> -------
> Name: Kernel-eem.1317
> Author: eem
> Time: 11 March 2020, 1:12:02.344414 pm
> UUID: 3755843a-380e-4cbc-a498-b1f1a85f2906
> Ancestors: Kernel-eem.1316
> 
> Add the core of read-only support, which will provide both for read-only literals and for efficient write-through cacheing to object databases such as gemstone.
> 
> This implementation differs slightly from Clément Béra's original implementatin for Pharo in that here ModificationForbidden always uses a mirror (either a Context or a Class) to attempt to modify the read-only
> object in retryModification.
> 
> -------
> Name: Kernel-eem.1318
> Author: eem
> Time: 11 March 2020, 6:49:23.875063 pm
> UUID: 25265ede-0f88-439d-8800-8a39e3f1898a
> Ancestors: Kernel-eem.1317
> 
> Read-only object support.
> 
> Have ModificationForbidden allow retrying modification without resuming (retryModificationNoResume) or resuming (retryModificatio).  Ideally this would just be retryModification and resume but Pharo got there first and compatibility is a virtue.
> 
> Add BinaryModificationForbidden to support Array and the elementsExchangeIdentityWith: become machinery, and simplify the Behavior adoptInstance: mchinery.  Decouople resumeValue from newValue to allow Array and the elementsExchangeIdentityWith: become machinery to answer the correct result.
> 
> Extend the execution simulation machionery to correctly simulate attempting to assign the inst vars of read-only objects.
> 
> Add Object class>>releaseNotes as a scratch pad for people to add things that should appear in the release notes.
> 
> -------
> 



More information about the Squeak-dev mailing list