<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style='font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif;'><div id="message"></div><br id="br3">Marcel,<div><br></div><div>Thank you<br id="br3"><br id="br3"><div id="signature"></div><div id="content"><br> ---- On Wed, 04 Aug 2021 09:16:24 -0400 <b> marcel.taeumel@hpi.de </b> wrote ----<br><br><blockquote style="border-left: 1px solid rgb(204, 204, 204); padding-left: 6px; margin-left: 5px;"><div> <div id="x_399867500__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="x_399867500mb_sig"></div>
                                        <blockquote class="x_399867500history_container" 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 <<a href="mailto:gettimothy@zoho.com" target="_blank">gettimothy@zoho.com</a>>:</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="x_399867500message"></div><br id="x_399867500br3"><div id="x_399867500signature"></div><div id="x_399867500content"><br> ---- On Sat, 31 Jul 2021 15:13:15 -0400 <b> <a href="mailto:bera.clement@gmail.com" target="_blank">bera.clement@gmail.com</a> </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></div></blockquote></div></div></div><br></body></html>