<html><head></head><body> <div dir="auto">I’m also going to offer access to the eventualContext of a Promise, whether Local, Neighbot or Far. Offer Revolution and ping / status, remote event registration on the EventuaMessageSend. </div><div dir="auto"><br></div><div dir="auto">With readOnlyMarks added to the AnonymousStructure encoded object, #passByCopy we have:</div><div dir="auto"><br></div><div dir="auto"> <<span style="color: var(--text-color);" dir="auto">className !! IVarsNames !! ASN1TypeDescription !! MethodNames !! ReadOnlyMarks>, Object serialized by this ASN1>, 6 arity.</span></div><div dir="auto"><span style="color: var(--text-color);" dir="auto"><br></span></div><div dir="auto"><span style="color: var(--text-color);" dir="auto">With direct read access to a local kitty Near access to cached / copied data, when a method not marked as readOnly is sent remotely to a different kitty cat, I will flip the “Near Access” to cache data to off, thus converting the Near reference to the cached data into a NearPromise, queuing access in the msgBuffer of this sort of Promise, until completion of the write, depending on policy. </span></div><div dir="auto"><span style="color: var(--text-color);" dir="auto"><br></span></div><div dir="auto"><span style="color: var(--text-color);" dir="auto">I’d love to read about #beReadOnly but I cannot find it. I’d also like to have the vm send eventual events when state changes, like <self changed: iVarName>, thus triggerEvent:. With a BeSilent, this feature could be turned on and off.<caret></caret></span></div><div><br></div><div class="protonmail_signature_block" id="protonmail_signature_block"><div>••• rabbit ❤️🔥🐰</div></div> <div class="signature_br" contenteditable="false"><br></div><div class="signature_br" contenteditable="false"><br></div> <div><br></div><div><br></div>On Mon, Jul 10, 2023 at 22:25, rabbit via Cuis-dev <<a class="" href="mailto:On Mon, Jul 10, 2023 at 22:25, rabbit via Cuis-dev <<a href=">cuis-dev@lists.cuis.st</a>> wrote:<blockquote type="cite" class="protonmail_quote"> <div dir="auto">Well it’s been a weekend. At one point I was starting the BoxOfKittens and the image froze uninterruptably. Heh. It not freezing but I’ve tangled something. I’ve been engaged in very aggressive sculpting and I totally lost it along my way. What would I say? Some highlights…</div><div dir="auto"><br></div><div dir="auto">• added #when:then: to ProtoObject to do Linda tuple matching of the whenTestTuple then: runs the thenReactor. And added Linda protocol there too, so any objects can do tuple matching. </div><div dir="auto">•••> arity</div><div dir="auto">•••> Linda match: converts any object to a tuple of its fields, then match:s with the test tuple.</div>• mass conversion of what was Session hierarchy to Gozer.<div dir="auto">• defining a ClassType to describe a <class name !! method names !! readOnlyMarks> (IVars go into a tuple, methods into a ClassType. I’m going to use one of the Available types to pass an anonymous object, along with ASN1 string notation of structure of the Type, a method interface and the object serialized all. So Java and such can talk it with ASN1. Ubiquitous.</div><div dir="auto"><br></div><div dir="auto"><className !! IVarsNames !! ASN1TypeDescription !! MethodNames !! Object serialized by this ASN1>, 5 arity.<br><div dir="auto"><br></div><div dir="auto">I like building analogs and describing a story, BoxOfKittens :) , so for teleport comms it’s GhostBusters! Session is Gozer, there are many that come through a Gate, the Server. These are not at all different between different uses. They’re invariant in class and operations, only difference is the GateKeeper, a different one for each different Protocol, ParrotTalk, SSL, SSH, Signal, TLS 1.2. Whisper, Far, Probe, and now InMemory and a #Clear protocol and GateKeeper. Every Protocol of communication has a unique GateaKeeper. I’m hoping to unify all Protocols ti use the existing Gate and Gozer and KeyMaster, though a different KeyMaster is possible.</div><div dir="auto"><br></div><div dir="auto">The opening and bringing forth another GozerStayPuff is the obligation of the GateKeeper, the Operation classes. ParrotTalk v3.6, v3.7, v3.9 all have different categories, whith their protocol rendezvous messages, carefully defined in ASN1.</div><div dir="auto"><br></div><div dir="auto">There are also Sessions, GateKeepers, in layer 5 <ParrotTalks, InMemory> and different keepers in layer 6: <Far, NeighborGateKeeper, Hymn>. </div><div dir="auto"><br></div><div dir="auto">Hymn will have Gozers to establish replication and bridging. It also will use group protocol to share encryption for replication. This leads to collaboration. We will explore ideas of dynamic demand access multiple access with establishing collaboration groups called a Hymn. As concurrent resources are gathered, Singers can offer resources to solve problems through parallelism. Audience participation. Hymn conducting all the way from the Sisters to the Orchestra to the Choir. Kittens the whole lot of em.</div><div dir="auto"><br></div><div dir="auto">We shall see.<br><div><br></div><div id="protonmail_signature_block" class="protonmail_signature_block"><div>••• rabbit ❤️🔥🐰</div></div> <div class="signature_br" contenteditable="false"><br></div><div class="signature_br" contenteditable="false"><br></div> <div><br></div><div><br></div>On Sun, Jul 9, 2023 at 11:55, rabbit via Cuis-dev <<a href="mailto:On Sun, Jul 9, 2023 at 11:55, rabbit via Cuis-dev <<a href=" class="">cuis-dev@lists.cuis.st</a>> wrote:<blockquote class="protonmail_quote" type="cite">
<p>Hey, I am a touch frustrated. Recovered with <49>. The code
I wrote to generate classes and methods has been corrupting my
image, or rather mucking to the changes. I was having old code
versions being loaded and breaking bad. I was publishing a lot of
garbage because when running the BoxOfKittens, I was generating
several SharedNears, now called Neighbors. This subclass
generation and the method compilation is being done it the
following methods...I am just going to leave it turned off for now
and stay focused on my objective. It is an example of corruption
occurring, if that helps anyone. If one could tell me how to
better generate these artifacts, that would be outstanding!•
</p>
<pre class="moz-signature" cols="72">•••
</pre>
<p></p>
<p>The #buildOnClass is called from a class creation method<br>
</p>
<blockquote>
<p>buildOnClass: eClazz<br>
<br>
|refClass |<br>
refClass := self stubClass<br>
subclass: (eClazz name, 'Stub') asSymbol<br>
instanceVariableNames: ''<br>
classVariableNames: ''<br>
poolDictionaries: ''<br>
category: self userClassCategoryString.<br>
<br>
"Copy all methods, up to Object, to the new refClass, with
redirectMessage forwarding."<br>
self copyMethodsToClass: refClass fromClass: eClazz
upToClass: Object.<br>
<br>
^ refClass <br>
</p>
</blockquote>
<blockquote>
<pre class="moz-signature" cols="72">•••</pre>
</blockquote>
<blockquote>copyMethodsToClass: refClass fromClass: valueClazz
upToClass: rootClass<br>
</blockquote>
<blockquote>
<p><br>
| arguments classes newMethodString |<br>
"Collect classes to contribute message protocol."<br>
classes := valueClazz allSuperclasses select: [ :clazz |
(Object ~~ rootClass) and: [ Object inheritsFrom: clazz] ].<br>
<br>
"contribute message protocols."<br>
classes do: [:thisClazz | <br>
thisClazz methodDictionary keysAndValuesDo: [:selector
:method | <br>
arguments := method tempNames first: method numArgs.<br>
newMethodString := self buildForwardingMethod:
selector contents arguments: arguments.<br>
Compiler <br>
compile: newMethodString<br>
environment: refClass environment <br>
notifying: nil <br>
trailer: method trailer <br>
ifFail: [nil]]].<br>
</p>
<pre class="moz-signature" cols="72">•••</pre>
buildForwardingMethod: selector arguments: arguments<br>
<br>
| argumentString selectorStream |<br>
argumentString := ((arguments inject: ''writeStream into:
[:stream :argument | stream nextPutAll: argument, ' ']) contents).<br>
selectorStream := '' writeStream.<br>
(selector subStrings: $:) with: arguments do: [:keyword
:argument | selectorStream nextPutAll: keyword, ': ', argument, '
'].<br>
^ selectorStream contents, '<br>
<br>
^self redirectMessage: (Message selector: ', selector
asSymbol printString, ' arguments: #{', argumentString, '}).'<br>
</blockquote>
Alright then,<br>
<pre class="moz-signature" cols="72">--
••• rabbit ❤️🔥🐰</pre>
</blockquote></div></div></blockquote></body></html>