The interaction would be slower, and the installation / integration would be more complex.  Back then, all we did was install the exe on the server.  Client computer connection merely loaded the latest exe.  No need to startup another app and share a socket, etc..  This would never work in instances where you have 100 users all on different machines.  You&#39;d have one conflict after another.<div>
<br></div><div>Also, doing it in a client/server motif as you describe means that any global state information made by one call would affect other calls.  In true reentrancy each recursive call would essentially get their own VM.</div>
<div><br></div><div>Thanks.</div><div><br></div><div>Blake</div><div><br></div><div><br><br><div class="gmail_quote">On Mon, Dec 3, 2012 at 9:39 AM, Bob Arning <span dir="ltr">&lt;<a href="mailto:arning315@comcast.net" target="_blank">arning315@comcast.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <font face="Georgia">Seems like you could do that fairly easily
      without </font>making the VM re-entrant (whatever that might
    mean/entail). If you thought of your Squeak app and your C app as
    two computers on a network, they could send each other requests and
    responses all day long. No magic required.<br>
    <br>
    Cheers,<br>
    Bob<div><div class="h5"><br>
    <br>
    <div>On 12/3/12 10:10 AM, Blake McBride
      wrote:<br>
    </div>
    <blockquote type="cite"><span style="border-collapse:collapse;color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px">Greetings,
        <div><br>
        </div>
        <div>I tried to integrate Squeak to a C based application more
          than six years ago.  The project failed because we were not
          able to have our application call Squeak, then have Squeak
          call the application, and then the application call Squeak
          again recursively.  An analysis of the Squeak VM revealed a
          kernel design consisting of a lot of global variables - quite
          unnecessarily.  The unnecessary use of global variables over a
          localized structure for example unnecessarily prevented the
          use of Squeak as an extension language (unless you had no
          recursion).  I spent several days trying to re-structure the
          Squeak kernel but I kept running into problems and just ran
          out of time. </div>
        <div><br>
        </div>
        <div>As a side note, that company I was with ended up making a
          lot of investment in Scheme because we were easily able to
          integrate that language with our application.  Now, not only
          is Scheme used heavily within that company but many of their
          clients use it too to customize their application.</div>
        <div><br>
        </div>
        <div>This brings me to my question, is COG reentrant?  If not,
          as the author of COG, I would think it relatively easy to
          restructure it to be so.  Such a design capability can make a
          huge difference to COG&#39;s acceptance to many.  It may even be
          the reason to switch to COG.</div>
        <div><br>
        </div>
        <div>Just sharing some thoughts.  Thanks.</div>
        <div><br>
        </div>
        <div>Blake McBride</div>
      </span><br>
      <div class="gmail_quote">On Sun, Dec 2, 2012 at 7:55 PM, Eliot
        Miranda <span dir="ltr">&lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;</span>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">...in <span style="font-size:14px;font-family:arial,sans-serif"><a href="http://www.mirandabanda.org/files/Cog/VM/VM.r2628" target="_blank"><font color="#1155cc">http://www.mirandabanda.</font>org/files/Cog/VM/VM.r2628</a>.</span>
          <div>
            <font color="#000000" face="arial, sans-serif"><br>
            </font></div>
          <div><font color="#000000" face="arial, sans-serif">These fix
              a bug with pc mapping that could cause the Vm to crash on
              simple loops containing arithmetic on constants (e.g. 1
              to: 20 do: [:i| 1=1]).  They also cause the instantiation
              primitives to pop all their arguments rather than assume
              their argument count is 0 or 1.  More change info
              available in the directory.<span><font color="#888888"><br>
                </font></span></font><span><font color="#888888">-- <br>
                best,
                <div>Eliot</div>
                <br>
              </font></span></div>
          <br>
          <br>
          <br>
        </blockquote>
      </div>
      <br>
      <br>
      <fieldset></fieldset>
      <br>
      <pre></pre>
    </blockquote>
    <br>
  </div></div></div>

<br><br>
<br></blockquote></div><br></div>