<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
Hi, there.<div><br></div><div>> <span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">For us clueless end users and application tier coders, what will we see when this is done?</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">For example, you could then do a an expensive FFI call in any Squeak process other than the "UI process" in Morphic. Morphic would stay responsive. That FFI-calling process would wait on a semaphore and continue when the call returns. Just like you would design other in-image worker processes (with priorities) to keep the system responsive.</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">At the moment, the entire interpreter loop is blocked during that FFI call, which means that Squeak's process scheduling does not work. You will notice this even while fetching (smaller) chunks of network traffic in a low-priority process (ie., < 40) from time to time. Those little hiccups.</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">Best,</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Marcel</span></div><div class="mb_sig"></div>
<blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
<p style="color: #AAAAAA; margin-top: 10px;">Am 01.08.2021 23:53:05 schrieb gettimothy <gettimothy@zoho.com>:</p><div style="font-family:Arial,Helvetica,sans-serif"><div style="font-size: 10pt;font-family: Verdana,Arial,Helvetica,sans-serif">For us clueless end users and application tier coders, what will we see when this is done?<br><br><br>A folllow up newbie question...<br><br>Squeak in morphic is, I assume, single threaded -- Test runner must run to completion before morphic events are processed-- for example.<br><br>Does this MT FFI create a possibility of two xterm based Squeeak REPLs interacting , correctly, with Cog/Spur ?<br><br><br><div id="message"></div><br id="br3"><div id="signature"></div><div id="content"><br> ---- On Sat, 31 Jul 2021 15:13:15 -0400 <b> bera.clement@gmail.com </b> wrote ----<br><br><blockquote style="border-left: 1px solid rgb(204, 204, 204);padding-left: 6px;margin-left: 5px;min-width: 500px"><div> <div dir="ltr">It's about threaded FFI implemented in the VM.</div><br><div class="x_-1666628073gmail_quote"><div dir="ltr" class="x_-1666628073gmail_attr">On Thu, Jul 29, 2021 at 4:29 PM Marcel Taeumel <<a href="mailto:marcel.taeumel@hpi.de" target="_blank">marcel.taeumel@hpi.de</a>> wrote:<br></div><blockquote class="x_-1666628073gmail_quote" style="margin: 0px 0px 0px 0.8ex;border-left: 1px solid rgb(204,204,204);padding-left: 1ex;min-width: 500px"> <div id="x_-1666628073gmail-m_-4510672584474798642__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: rgb(0,0,0);text-align: left" dir="ltr">Hi all!<div></div><div><br></div><div>Here is a rather broad question: What is "CogMT" about? For whom are those multiple threads (MT)? :-)</div><div><br></div><div>The only build configuration I can find is build.linux64ARMv8/squeak.cogmt.spur. There is an issue with the type of sqOSSemaphore. That got me interested in the idea of CogMT ... which predates ARMv8 by a lot, right?</div><div><br></div><div>Best,</div><div>Marcel</div><div><br></div><div>*** </div><div><br></div><div><pre>2021-07-29T11:17:34.6297654Z In file included from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogitARMv8.c:16,
<br>2021-07-29T11:17:34.6305778Z from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogit.c:11:
<br>2021-07-29T11:17:34.6312562Z /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:75:4: error: conflicting types for 'sqOSSemaphore'
<br>2021-07-29T11:17:34.6323676Z } sqOSSemaphore;
<br>2021-07-29T11:17:34.6324255Z ^~~~~~~~~~~~~
<br>2021-07-29T11:17:34.6325724Z In file included from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/platforms/Cross/vm/sqMemoryAccess.h:472,
<br>2021-07-29T11:17:34.6327528Z from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:35,
<br>2021-07-29T11:17:34.6329210Z from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogitARMv8.c:16,
<br>2021-07-29T11:17:34.6330958Z from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogit.c:11:
<br>2021-07-29T11:17:34.6332629Z /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/platforms/unix/vm/sqPlatformSpecific.h:75:4: note: previous declaration of 'sqOSSemaphore' was here
<br>2021-07-29T11:17:34.6333826Z } sqOSSemaphore;
<br>2021-07-29T11:17:34.6334219Z ^~~~~~~~~~~~~
<br>2021-07-29T11:17:34.9588384Z In file included from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/platforms/Cross/vm/dispdbg.h:8,
<br>2021-07-29T11:17:34.9589908Z from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogitARMv8.c:19,
<br>2021-07-29T11:17:34.9591283Z from /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogit.c:11:
<br>2021-07-29T11:17:34.9593124Z /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogitARMv8.c: In function 'allMachineCodeObjectReferencesValid':
<br>2021-07-29T11:17:34.9605356Z /home/runner/work/opensmalltalk-vm/opensmalltalk-vm/spur64src/vm/cogitARMv8.c:7855:52: warning: passing argument 2 of 'mapForperformUntilarg' from incompatible pointer type [-Wincompatible-pointer-types]
<br>2021-07-29T11:17:34.9607673Z if (!(asserta((mapForperformUntilarg(cogMethod, checkIfValidOopRefAndTargetpccogMethod, cogMethod)) == 0))) {
<br>2021-07-29T11:17:34.9608918Z ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</pre></div></div></blockquote></div><br><div><br></div>-- <br><div dir="ltr" class="x_-1666628073gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><span style="font-size: 12.8px">Clément Béra<br></span><span style="color : rgb(0,0,238); "><a href="https://clementbera.github.io/" target="_blank">https://clementbera.github.io/</a></span><div style="font-size: 12.8px"><a href="https://clementbera.wordpress.com/" target="_blank">https://clementbera.wordpress.com/</a></div></div></div></div></div></div>
<br></div></blockquote></div></div><br></div></blockquote></div>