[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