G’morning, my 1st café. Ive arrived at a question. Is there a way to point to any object and it be read-only? Is there enforcement of this?
••• rabbit ❤️🔥🐰
Morning Rob,
On Jul 6, 2023, at 5:18 AM, rabbit rabbit@callistohouse.org wrote:
G’morning, my 1st café. Ive arrived at a question. Is there a way to point to any object and it be read-only? Is there enforcement of this?
The Spur VM supports a per-object read-only bit which is checked in all primitives that write to objects and in all instance variable writes in methods. See Object>>#beReadOnly. There are limitations: - the bit is enforced only by the VM. If you pass an object to external code there is nothing to stop that external code writing to the object such as virtual memory protection - the primitive setting the bit refuses to make Process and Context instances read-only; this avoids considerable complexity in the execution and process machinery
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.
••• rabbit ❤️🔥🐰
Eliot _,,,^..^,,,_ (phone)
Great to know, Eliot! Thanks! It is already ready steady. ❤️🔥🐰
If I may use this thread to explore ESharedNear eventual sending. check my ESharedNear skeleton, with the latest alpha Crypto code, <Crypto-rabbt.19.mcz> loaded by:
Installer ss project: 'Cryptography'; install: 'Crypto'; install: 'EParrotTalk.release.3'.
I am having you load EParrotTalk to see the EFar code...
The challenge is what does a local reference to a separate, second local Vat look like? Only 1 vat 'owns' the ENear to the object, and is write capable. This is where the meat is on the bone and is the leaf of eventual execution, where the actual work getswith the object.
With a second local vat2, an object, Alice, is 'own'-ed by vat1, ENear there and the meat's on the bone. But a reference to Alice is provided to an object within vat 2, Bob. What is the quality of interaction? It must be 'remote' to allow vat1 to schedule Near evaluation in vat1, when modifying the object. However, in vat2 it should be possible to do any reading, the whole point of optimizing Shared references.
So we call the reference to Alice to be a ESharedNear in var2, for Bob's interactions. So we have a mixture, on reading we want Near and on writing we want SharedNear. How to expose read-only methods, including inner calls, versus write methods. An eventual send to a read-only method is immediately executed in vat2, however an eventual send to a write-capable method must be forwarded to vat1.
Therefore, allow me to expose differences between Near and SharedNear. #whenMoreResolved: determines immediate execution in the Near case. A send to a NearPromise is stuffed into an msgBuffer, on Promise #resolve:, it is #whenMoreResolved: to the consequent Near. The local manages the ObjectMemory and there is no need for handlers. It uses a LocalResolver to resolve promises extruded from the Near.
A send to a FarPromise is forwarded to the appropriate vat, for #whenMoreResolved: there. This is managed by use of an Far ObjectMemory, a FarScope. So Far sending uses a Scope and Handlers and a RemoteHandler. So, a SharedNear for write capable methods must use a Scope and a SharedNearHandler and a SharedNearReolver, while a SharedNear for read-only methods can skip the Scope/Handler and use a LocalResolver.
Given an ability to differentiate write-capable methods from read-only methods, the appropriate Handler/Resolver can be selected when a given message is sent to the SharedNear. We need to know up front as messages are not side-effect free, and I'd love to avoid transactional roll-back crap. So differentiate, then have code to Locally send as a Near for read-only and Remote send with Scope/Handlers for write-capable.
I must be missing something. What might it be?
Cheers, rabbit ❤️🔥🐰
On 7/6/23 09:30, Eliot Miranda wrote:
Morning Rob,
On Jul 6, 2023, at 5:18 AM, rabbit [rabbit@callistohouse.org](mailto:rabbit@callistohouse.org) wrote:
G’morning, my 1st café. Ive arrived at a question. Is there a way to point to any object and it be read-only? Is there enforcement of this?
The Spur VM supports a per-object read-only bit which is checked in all primitives that write to objects and in all instance variable writes in methods. See Object>>#beReadOnly. There are limitations:
- the bit is enforced only by the VM. If you pass an object to external code there is nothing to stop that external code writing to the object such as virtual memory protection
- the primitive setting the bit refuses to make Process and Context instances read-only; this avoids considerable complexity in the execution and process machinery
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.
••• rabbit ❤️🔥🐰
Eliot _,,,^..^,,,_ (phone)
-- ❤️🔥🐰
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
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@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
-- ❤️🔥🐰
Heh. Per pia Cheri. .. …. …. ‘…^,^
••• rabbit ❤️🔥🐰
On Thu, Jul 6, 2023 at 19:33, rabbit via Cuis-dev <[cuis-dev@lists.cuis.st](mailto:On Thu, Jul 6, 2023 at 19:33, rabbit via Cuis-dev <<a href=)> wrote:
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?
Caching on chips? Replicas from system memory? Can a cache-write flush force the other cats signaled to to refresh Coachella?
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.
I’m particularly interested in the group Protocol of Signal to allow a TriTerminal to encode AND encrypt then send to each ReplicaTerminal ready to go. Use group Protocol to set the same encryption over all replicas to Alice. Bob’s talking over all his channels to her.
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.
Is a NearPromise actually returned? I have no idea. NearPromises do work, see <#promiseResolverPair>. On the gripping hand, an immediate return would suit and the NearResolver will evaluate immediately. Tak.
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.
The NearPromise will buffer sends locally.
Do I need a Scope? Mmm. 🤔
I do not know. Do we need a Channel? Yes. To allow the other Vat cat scheduler to talk locally to the Near.
Cheers!
••• rabbit ❤️🔥🐰
On Thu, Jul 6, 2023 at 17:31, rabbit <[rabbit@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
-- ❤️🔥🐰
Good morning! I'm in early bird mode.
- I found my method generating code filed out. It is working! Evaluating the below gives a subclass of ENear, for the SmallInteger, named ESmallIntegerStub. Here's the Inspecter and HierarchyBrowser and the Hierarchy for EAbstract. Sadly the methods I am compiling in do not appear in the Browser. - Below the Stub images I am showing the ASN1Tag registration and the defined ASN1MappedSequenceType for a ParrotTalk Protocol message.
42 eventual * 10
••• ASN1 Types Definition and Registration •••
- The Module Definition is of a ASN1MappedSequenceType - The Root class tag ApplicationClass registration for class: 2r01 and numeric tag: 8 is an instance of the Message class, a subclass of ASN1UserType.
Liscio come l'olio, ••• coniglio ❤️🔥🐰
On 7/6/23 20:09, rabbit wrote:
Heh. Per pia Cheri. .. …. …. ‘…^,^
••• rabbit ❤️🔥🐰
On Thu, Jul 6, 2023 at 19:33, rabbit via Cuis-dev <[cuis-dev@lists.cuis.st](mailto:On Thu, Jul 6, 2023 at 19:33, rabbit via Cuis-dev <<a href=)> wrote:
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?
Caching on chips? Replicas from system memory? Can a cache-write flush force the other cats signaled to to refresh Coachella?
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.
I’m particularly interested in the group Protocol of Signal to allow a TriTerminal to encode AND encrypt then send to each ReplicaTerminal ready to go. Use group Protocol to set the same encryption over all replicas to Alice. Bob’s talking over all his channels to her.
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.
Is a NearPromise actually returned? I have no idea. NearPromises do work, see <#promiseResolverPair>. On the gripping hand, an immediate return would suit and the NearResolver will evaluate immediately. Tak.
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.
The NearPromise will buffer sends locally.
Do I need a Scope? Mmm. 🤔
No. The SharedNear
Cheers!
••• rabbit ❤️🔥🐰
On Thu, Jul 6, 2023 at 17:31, rabbit <[rabbit@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
-- ❤️🔥🐰
-- ❤️🔥🐰
Brought in v3.6 & v3.7. I’ve remove big images.
••• rabbit ❤️🔥🐰
On Fri, Jul 7, 2023 at 05:55, rabbit <[rabbit@callistohouse.org](mailto:On Fri, Jul 7, 2023 at 05:55, rabbit <<a href=)> wrote:
Good morning! I'm in early bird mode.
- I found my method generating code filed out. It is working! Evaluating the below gives a subclass of ENear, for the SmallInteger, named ESmallIntegerStub. Here's the Inspecter and HierarchyBrowser and the Hierarchy for EAbstract. Sadly the methods I am compiling in do not appear in the Browser.
- Below the Stub images I am showing the ASN1Tag registration and the defined ASN1MappedSequenceType for a ParrotTalk Protocol message.
42 eventual * 10
••• ASN1 Types Definition and Registration •••
- The Module Definition is of a ASN1MappedSequenceType
- The Root class tag ApplicationClass registration for class: 2r01 and numeric tag: 8 is an instance of the Message class, a subclass of
Liscio come l'olio, ••• coniglio ❤️🔥🐰
On 7/6/23 20:09, rabbit wrote:Heh. Per pia Cheri. .. …. …. ‘…^,^
••• rabbit ❤️🔥🐰
On Thu, Jul 6, 2023 at 19:33, rabbit via Cuis-dev <[cuis-dev@lists.cuis.st](mailto:On Thu, Jul 6, 2023 at 19:33, rabbit via Cuis-dev <<a href=)> wrote:
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?
Caching on chips? Replicas from system memory? Can a cache-write flush force the other cats signaled to to refresh Coachella?
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.
I’m particularly interested in the group Protocol of Signal to allow a TriTerminal to encode AND encrypt then send to each ReplicaTerminal ready to go. Use group Protocol to set the same encryption over all replicas to Alice. Bob’s talking over all his channels to her.
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.
Is a NearPromise actually returned? I have no idea. NearPromises do work, see <#promiseResolverPair>. On the gripping hand, an immediate return would suit and the NearResolver will evaluate immediately. Tak.
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.
The NearPromise will buffer sends locally.
Do I need a Scope? Mmm. 🤔
No. The SharedNear
Cheers!
••• rabbit ❤️🔥🐰
On Thu, Jul 6, 2023 at 17:31, rabbit <[rabbit@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
-- ❤️🔥🐰
-- ❤️🔥🐰
Trying agian...
On 7/7/23 06:36, rabbit wrote:
Brought in v3.6 & v3.7. I’ve remove big images.
••• rabbit ❤️🔥🐰
On Fri, Jul 7, 2023 at 05:55, rabbit <[rabbit@callistohouse.org](mailto:On Fri, Jul 7, 2023 at 05:55, rabbit <<a href=)> wrote:
Good morning! I'm in early bird mode.
- I found my method generating code filed out. It is working! Evaluating the below gives a subclass of ENear, for the SmallInteger, named ESmallIntegerStub. Here's the Inspecter and HierarchyBrowser and the Hierarchy for EAbstract. Sadly the methods I am compiling in do not appear in the Browser.
- Below the Stub images I am showing the ASN1Tag registration and the defined ASN1MappedSequenceType for a ParrotTalk Protocol message.
42 eventual * 10
••• ASN1 Types Definition and Registration •••
- The Module Definition is of a ASN1MappedSequenceType
- The Root class tag ApplicationClass registration for class: 2r01 and numeric tag: 8 is an instance of the Message class, a subclass of
Liscio come l'olio, ••• coniglio ❤️🔥🐰
On 7/6/23 20:09, rabbit wrote:Heh. Per pia Cheri. .. …. …. ‘…^,^
••• rabbit ❤️🔥🐰
On Thu, Jul 6, 2023 at 19:33, rabbit via Cuis-dev <[cuis-dev@lists.cuis.st](mailto:On Thu, Jul 6, 2023 at 19:33, rabbit via Cuis-dev <<a href=)> wrote:
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?
Caching on chips? Replicas from system memory? Can a cache-write flush force the other cats signaled to to refresh Coachella?
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.
I’m particularly interested in the group Protocol of Signal to allow a TriTerminal to encode AND encrypt then send to each ReplicaTerminal ready to go. Use group Protocol to set the same encryption over all replicas to Alice. Bob’s talking over all his channels to her.
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.
Is a NearPromise actually returned? I have no idea. NearPromises do work, see <#promiseResolverPair>. On the gripping hand, an immediate return would suit and the NearResolver will evaluate immediately. Tak.
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.
The NearPromise will buffer sends locally.
Do I need a Scope? Mmm. 🤔
No. The SharedNear
Cheers!
••• rabbit ❤️🔥🐰
On Thu, Jul 6, 2023 at 17:31, rabbit <[rabbit@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
-- ❤️🔥🐰
-- ❤️🔥🐰
-- ❤️🔥🐰
squeak-dev@lists.squeakfoundation.org