<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 31, 2023 at 2:39 PM LawsonEnglish <<a href="mailto:LEnglish5@cox.net">LEnglish5@cox.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="line-break:after-white-space"><div style="line-break:after-white-space"><div style="line-break:after-white-space"><div>The Shared Memory facility in most modern OS’s (Mac, Linux and Windows) will allow a pointer between processes. The problem is to get it working with Squeak. Eliot outlined the issues in his response. They are more convoluted than I was hoping for, but presumably it's doable.</div><div><br></div><div>The point of doing it is to create a shared memory IPC option for Squeak, as, in principle, that is the fastest way of doing IPC, and if you’re sharing large chunks of data (e.g. the pixels of an image), the savings can be significant.</div><div><br></div><div>The Mandelbrot Set is simply a simple (and potentially entertaining) way of providing visual feedback that its actually working. Its actually not a good use case for shared memory IPC because, as you drill down into the Set, the time spent for calculations is far more than the time saved using the shared memory, but it would visually demonstrate that something is happening, and far less boring than simply sending arbitrary chunks of memory during testing of the protocol.</div></div></div></div></blockquote><div><br></div><div class="gmail_default" style="font-size:small">And note that with image segments one could exchange arbitrary object graphs above a memory-mapped word array with relative ease and speed.</div><div class="gmail_default" style="font-size:small"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="line-break:after-white-space"><div style="line-break:after-white-space"><div style="line-break:after-white-space"><div>Lawson<br></div><div><br><div><br><blockquote type="cite"><div>On Mar 31, 2023, at 00:49, Marcel Taeumel via Squeak-dev  wrote:</div><br><div><div id="m_-7633652317897072263__MailbirdStyleContent" style="font-size:10pt;font-family:Arial;text-align:left" dir="ltr">
                                        Hi L --<div><br></div><div>> <span style="font-family:Arial,Helvetica,sans-serif;font-size:13px">The real question is about setting a pointer to the memory used by a Bitmap object.</span></div><div><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px">I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there.</span></div><div><br></div><div></div></div></div></blockquote></div><br></div></div></div></div><br>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div></div>