[Ecls-list] Compiler problems (Important fixes)

Juan Jose Garcia Ripoll worm at arrakis.es
Sat Dec 14 09:05:02 UTC 2002


On Friday 13 December 2002 14:55, Rolf Wester wrote:
> The 3. Problem occurs when I try to compile "ext.lisp" of the
> "port"-package in the CLOCC. It doesn't compile unless I change the line:
>	 (declare (function f0 f1))
> in the function definitions of compose-f and compose-all to:
>	 #-ecl (declare (function f0 f1))
>
> When trying to load "ext.so" I get:
> ;;; Loading "/home/wester/progs2/clocc/src/port/ext.so"
> Segmentation violation.
> Wrong type argument to a compiled function.
> Broken at LOAD.

Several remarks. The first one, is that the "ext.lisp" file from the CLOCC 
archive needs patches to compile under ECL. Otherwise it removes a critical 
function, QUIT. Once you apply the patches which I have attached to this 
file, it should compile and run under the latest CVS version of ECL.

The second remark is that, thanks to your e-mail, I have discovered several 
bugs in ECL:

- As shipped, ECL defaulted to (OPTIMIZE (SAFETY 0) (SPEED 3)). This is a very 
bad thing, because function calls are made without checking whether a symbol 
has a function definition or not. I have fixed this. As additional safety 
measure, I introduced checks in APPLY and FUNCALL to ensure that a valid 
pointer is passed to them.

- LOAD-PATHNAME was not implemented. The segmentation violation was due to ECL 
trying to call this function, without checking whether the function was 
actually bound (See paragraph above).

- As I mentioned in a previous message, ECL interpreteted (DECLARE 
(FUNCTION...) as (DECLARE (FTYPE ...)). This has also been fixed in CVS.

Best regards

Juanjo





More information about the ecl-devel mailing list