[Ecls-list] Latest changes

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Sat Oct 30 09:42:50 UTC 2010


* ECL's printer moves towards total independence from underlying C
libraries. Not yet complete, as we still use the C library for character
upcasing, downcasing, etc (a decision to be rethinked) and there are still
uses of printf, sprintf, etc.

* Introduced read-write locks, based on POSIX read-write locks where
available. Elsewhere they just use ordinary locks internally.

* Changed package locks to use read-write locks but also to solve some
problems with some operations not really being protected.

* Several files have been split into separate directories, c/printer,
c/reader, c/ffi, ... with the aim of identifying better the individual
components, cleaning header dependencies, and overall better code
readability.

* LOAD no longer uses a global lock. Library loading and unloading also does
not. This means that in principle it is possible to load files from
different threads at the same time, even when the compiler is running. In
practice you will still have to be careful, for if two threads attempt to
create the same package there may be conflicts (and other problems you may
think of).

On a second phase ECL will incorporate atomic operations (libatomic, already
included but not used), to speed up the way we handle core structures. I
still have to learn how to do this and it is not going to be the holy grail
(some operations such as package handling set up locks around huge lists of
forms, not trivial ones), but it should help in cleaning up how slots,
structures and objects in general are modified.

This is also one of the reasons why I would like to solve once and for all
the issues with signals and unwanted interrupts.

Juanjo

-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20101030/51500f95/attachment.html>


More information about the ecl-devel mailing list