[Ecls-list] Patches for defsystem and fixes for ECL

Juan Jose Garcia Ripoll worm at arrakis.es
Thu Nov 28 01:54:01 UTC 2002


On Thursday 28 November 2002 03:03, Edi Weitz wrote:
> [...] So I updated
> both my CVS trees for CLOCC and ECL some minutes ago, rebuilt ECL and
> then tried to compile defsystem again, but no luck... I ended up with this:
>   [ lots of compiler messages snipped ]
>   ;;; Compiling (EVAL-WHEN (COMPILE) ...).
>   ;;; Compiling (DEFUN SYSTEM-SOURCE-SIZE ...).
>   ;;; Compiling (DEFUN FILE-LIST-SIZE ...).
>   ;;; No FASL generated.
> Hmm, what's that? ECL simply refuses to compile the file without
> telling me why...

No, ECL has told you why, but you did not find the error messages. If you 
search the whole listing of compiler messages, you will find

;;; Compiling (DEFMACRO DEFINE-LANGUAGE ...).
;;; Compiling (DEFUN SCHEME-COMPILE-FILE ...).
;;; Error: In a call to FIND-SYMBOL, the type of the form 
'#:INTERACTION-ENVIRONMENT is SYMBOL, not STRING.
;;; Compiling (PROGN (SI:*MAKE-SPECIAL '*C-COMPILER*) ...).
;;; Compiling (SETQ *C-COMPILER* ...).
;;; The variable *C-COMPILER* is undefined.

The error is caused by a call to FIND-SYMBOL with a symbol argument. That is 
against the ANSI definition of FIND-SYMBOL, which expects a string. 
Therefore, the function SCHEME-COMPILE-FILE in defsystem.lisp should look as 
follows:

(defun scheme-compile-file (filename &rest args)
  (let ((scheme-package (find-package '#:scheme)))
    (apply (symbol-function (find-symbol (symbol-name 'compile-file)
					 scheme-package))
	   filename
	   (funcall (symbol-function
		     (find-symbol (symbol-name '#:interaction-environment)
				     scheme-package)))
	   args)))

I have attached the patches to solve this problem. I have also fixed ECL so 
that the final message in a failed compilation looks as follows:

;;; Compiling (EVAL-WHEN (COMPILE) ...).
;;; Compiling (DEFUN SYSTEM-SOURCE-SIZE ...).
;;; Compiling (DEFUN FILE-LIST-SIZE ...).
;;; Due to errors in the compilation process, no FASL was generated.
;;; Search above for the "Error:" tag to find the error messages.

I hope this is more descriptive.

Juanjo

Index: defsystem.lisp
===================================================================
RCS file: /cvsroot/clocc/clocc/src/defsystem-3.x/defsystem.lisp,v
retrieving revision 1.54
diff -r1.54 defsystem.lisp
3923c3923
< 		     (find-symbol '#:interaction-environment
---
> 		     (find-symbol (symbol-name '#:interaction-environment)





More information about the ecl-devel mailing list