[Ecls-list] Long time building of OpenAxiom with ECL 10.1.1

Gabriel Dos Reis gdr at integrable-solutions.net
Mon Jan 18 09:49:37 UTC 2010


On Mon, Jan 18, 2010 at 3:41 AM, Juan Jose Garcia-Ripoll
<juanjose.garciaripoll at googlemail.com> wrote:
> On Mon, Jan 18, 2010 at 10:29 AM, Gabriel Dos Reis
> <gdr at integrable-solutions.net> wrote:
>>
>> Is it conceivable to pass (a pointer to) the lisp environment to each
>> C function, as opposed to storing it in a thread local storage?
>
> 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.
>
> 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.

There is a fair bit of special variables in OpenAxiom (though much less than
say in Maxima).  Those are essentially used by the OpenAxiom compiler and
interpreter.  However, compiled Spad codes (e.g. OpenAxiom library and
user inputs) have very limited uses of special variables so they should not
incur the performance hit.  I suspect we would get some comparative
numbers once Yue is able to build his parallel library with ECL.

-- Gaby




More information about the ecl-devel mailing list