[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