<div class="gmail_quote">On Mon, Jan 18, 2010 at 10:29 AM, Gabriel Dos Reis <span dir="ltr"><<a href="mailto:gdr@integrable-solutions.net">gdr@integrable-solutions.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Is it conceivable to pass (a pointer to) the lisp environment to each<br>
C function, as
opposed to storing it in a thread local storage?</blockquote></div><br>It is conceivable, but it would involve a major rewrite. Right now what I try to do is to minimize the damage by calling ecl_process_env() once per function at most.<br>
<br>There is also one thing I forgot to mention: special variable binding & access is  bit too expensive in the multithreaded environment right now -- we use an EQ-hash table instead of an index into a thread-local vector.If Axiom uses a lot of special variables it could profit from rewriting that part with the unfortunate consequence that symbols garbage collection might become more complicated.<br>
<br>Juanjo<br clear="all"><br>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com">http://juanjose.garciaripoll.googlepages.com</a><br>