[Cuis-dev] [squeak-dev] Re: ESharedNear eventual sending (was Re: Re: Read-only objects?)
rabbit
rabbit at callistohouse.org
Thu Jul 6 16:33:30 PDT 2023
I’m working to get Crypto-rabbit.21.mcz loading into Cuis. Parse Issues. I’m getting better at unzipping, renaming, filing in and testing Monticello packages. I WISH and PRAY support for Cuis capable with Installer and MCZ & MCM loading and writing. MonticelloBrowser & ConfigUI, please. I’ve added them to this traffic.
SharedNear needs Handlers, perhaps Scope, but no Cipher or Socket. OSPipes, perhaps?
Nevertheless less, I rolled the bones of ThunkStack, Session, Server, ThunkRoot, ThunkLayer, Thunk, Buffers(?). ServerConfig and SessionConfig. RawData, Encoded, Encrypted, MAC, FEC traffic, Exception Headers. . I’ve included Customs, Immigration, Encoding, Operations, SecurityOps. Ummm…
I’ll need to move in Cipher. I am a complete idiot sometimes. You see? I left out CipherThunkMaker when moving ThunkStack into Crypto as Whisper. Hahahahaha!!! I decided to strip it. 🫠🫡🤗😱😶🌫️🥶🤬
I’m trying to establish the Shell framework in Crypto. In loading a separate Protocol package, such as EParrotTalk, SSL, SSH, Signal and so. Config it and launch a Server and rendezvous Sessions, in that Protocol.
However, I don’t think SharedNear is going to need all that. But it’s properly there.
Regarding use of the mysterious #beReadOnky, I wish to use as a reverse Semaphore, that acts on whether isReadOnly to enter a critical and flip ReadOnly off, make assignment to the actual, then flip back on ReadOnly. Only one Vat will have a Near, while all other cats scheduling on instances of <(Virtualized)ProcessorScheduler> will only have SharedNears for reading.
I have a method on EAbstract class to meta-build a subclass of ENear’s #value OE object (Originally Eventualized)’s Class, as a subclass of EFar. I’m not sure it works, I fear I’ve lost the #copyMethodsOfClass: method. 😢.
I had it working perfectly, the methods are written to the new ENearMorph subclass of Far, I implemented the methods with forwarding the send to the handler.
In the case of ESharedNear’s subclasses for each particular OE, using the ReadOnly analyzer produce methods to access , as ENear, return ENearPromise!!! and return the result immediately, so subsequent sends evaluate immediately.
When not ReadOnly, generate a method to forward the send to Alice’s handler and again return a NearPromise. The SharedNearPromise is not needed, just an appropriate handler and a resolver.
Do I need a Scope? Mmm. 🤔
Cheers!
••• rabbit ❤️🔥🐰
On Thu, Jul 6, 2023 at 17:31, rabbit <[rabbit at callistohouse.org](mailto:On Thu, Jul 6, 2023 at 17:31, rabbit <<a href=)> wrote:
> Hi Eliot, I am unable to find this method, #beReadOnly, even in my
> VMMaker image. Where could I find this method?
>
> I'm also looking for a way to query whether a method writes to an
> object, either in the method directly or in a method called by that
> candidate method. You wrote:
>
> On 7/6/23 09:30, Eliot Miranda wrote:
>>> Primitives that attempt to update a read-only object fail with an
>>> appropriate error code. Attempts within a method to write to an
>>> instance variable of a read-only object cause a message to be sent to
>>> the current context. Details in the commentary to beReadOnly et al.
>
> So assignments to ivars is one case. Are there other write cases, like
> ByteArray at:put:. Mmmm.
>
> Is such a method available to ask a method whether it writes? Then a
> recursion of the call tree asking called methods could perhaps determine
> if a particular method is a writeable actor, therefore requiring a
> Scope/Handler/SharedNearResolver solution, rather than a LocalResolver
> and #whenMoreResolved: action to read.
>
> The entry point to establishing a SharedNear eventual would be the
> SharedNearIntroducer, part of the skeleton I established in
> Crypto-rabbt.20.mcz.
>
> Best,
> rabbit
>
> --
> ❤️🔥🐰
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20230706/c3a2d8f4/attachment.htm>
More information about the Cuis-dev
mailing list