[Ecls-list] Patches for defsystem and fixes for ECL
Edi Weitz
edi at agharta.de
Wed Dec 18 01:03:02 UTC 2002
Juan Jose Garcia Ripoll <worm at arrakis.es> writes:
> 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)
Thanks and sorry for the late reply. I think I'll currently give up on
trying to check whether my program will run with ECL. Whenever I apply
a new patch I end up with the next problem and at the moment I don't
have the time to debug the defsystem/ECL combination - maybe
later. Here's what I got:
> (load "/usr/local/lisp/defsystem")
;;; Loading "/usr/local/lisp/defsystem.so"
;;; Loading "/usr/local/lib/ecl/cmp.so"
#P"/usr/local/lisp/defsystem.so"
> (mk:compile-system "cl-ppcre")
;;; Loading T
T is not of type STREAM.
Broken at MAKE:COMPILE-SYSTEM.
or, alternatively:
> (load "/usr/local/lisp/defsystem")
;;; Loading "/usr/local/lisp/defsystem.so"
;;; Loading "/usr/local/lib/ecl/cmp.so"
#P"/usr/local/lisp/defsystem.so"
> mk:*central-registry*
("./" (MAKE::HOME-SUBDIRECTORY "lisp/systems/")
"/usr/local/lisp/Registry/")
> (load "cl-ppcre.system")
;;; Loading "cl-ppcre.system"
The variable MAKE::*LOAD-PATHNAME* is unbound.
Broken at EVAL.
Best regards,
Edi.
More information about the ecl-devel
mailing list