[Ecls-list] Critical bug

Gabriel Dos Reis gdr at cs.tamu.edu
Sat Dec 22 12:12:27 UTC 2007


"Juan Jose Garcia-Ripoll" <jjgarcia at users.sourceforge.net> writes:

| On 21 Dec 2007 19:38:15 -0600, Gabriel Dos Reis <gdr at cs.tamu.edu> wrote:
| > "Juan Jose Garcia-Ripoll" <jjgarcia at users.sourceforge.net> writes:
| >
| > | Hi,
| > |
| > | I have fixed a long standing bug in ECL. Namely, C variables in
| > | compiled code were not always declared volatile. As of now, when a
| > | function uses setjmp(), all variables, including function arguments,
| > | are declared volatile and thus their value is preserved during calls
| > | of THROW, GOTO, etc.
| >
| > Hi Juanjo,
| >
| >   Should we expect a possible performance decrease from this patch, or
| > it should be in the noise?
| 
| There should be no significant performance decrease. The declarations
| of type "volatile" only happen in a function in which you have used
| CATCH, UNWIND-PROTECT or some kind of very nonlocal TAGBODY or BLOCK
| (i.e. the kind where GOTO or RETURN are used from within closure
| functions). All these sittuations do not happen in code where
| performance is critical.

Aha, thanks for the explanation.

-- Gaby




More information about the ecl-devel mailing list