<div class="gmail_quote">Dear Marc, I'm curious,<br><br>Den 22 mars 2012 14:46 skrev Marc Feeley <span dir="ltr"><<a href="mailto:feeley@iro.umontreal.ca">feeley@iro.umontreal.ca</a>></span>:<br><br><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<div class="im">
</div>That's not currently possible because the Scheme global variables, and some global state of the Gambit VM, are implemented using global C/C++ structures.  What is needed (and something that is on my TODO) is to allow instances of this state to be created dynamically (essentially a constructor for the Gambit VM).  That way several instances of Gambit can coexist in the same OS process.<br>

</blockquote><div> </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Unfortunately, this will slow down accesses to global variables, because an indirection will be needed.<br>

</blockquote><div><br>So with this several-gambit-vm:s-coexisting-in-the-same-os-process option, each read and write to a global var will require one more indirection and that's it?<br><br>
Does access to Gambit runtime procedures like |list| and |open-string| qualify as this?<br><br>You mean one indirection i.e. just following one pointer once right? If so I suppose this gives a max approx 0.5% performance decrease for typical code - if so, for when this functionality is needed, it's really worth it.<br>

<br>Will there be a configure argument to disable/enable this option both now, and later when running in SMP mode?<br></div></div><br>Kind regards, Mikael<br><br>