When compiling a compiler macro, the &whole form seems to be referenced even if it is not:
----(s.lisp)------------------------------------------------------------ (DEFUN IMPLODE-STRING (CHAR-SEQ) " RETURN: A new string containing the characters in the sequence CHAR-SEQ. " (MAP 'STRING (FUNCTION CHARACTER) CHAR-SEQ)) (DEFINE-COMPILER-MACRO IMPLODE-STRING (&WHOLE FORM CHAR-SEQ) " RETURN: An optimized form for compiled code. NOTE: Unfortunately clisp does to take into account compiler-macros even when compiling... " (DECLARE (IGNORE FORM)) (WITH-GENSYMS (SEQ) `(LET ((,SEQ ,CHAR-SEQ)) (TYPECASE ,SEQ (STRING (COPY-SEQ ,SEQ)) (LIST (DO ((RESULT (MAKE-STRING (LENGTH ,SEQ))) (I 0 (1+ I)) (SEQU ,SEQ (CDR SEQU))) ((NULL SEQU) RESULT) (SETF (CHAR RESULT I) (CHARACTER (CAR SEQU))))) (OTHERWISE (DO ((RESULT (MAKE-STRING (LENGTH ,SEQ))) (I 0 (1+ I)) (MAX (LENGTH ,SEQ))) ((>= I MAX) RESULT) (SETF (CHAR RESULT I) (CHARACTER (AREF ,SEQ I)))))) ))) ------------------------------------------------------------------------ CL-USER> (compile-file "/tmp/s.lisp") ;;; ;;; Compiling /tmp/s.lisp. ;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=3 ;;; ;;; Compiling (DEFUN IMPLODE-STRING ...). ;;; Warning: ;;; in file s.lisp, position 158 ;;; at (DEFINE-COMPILER-MACRO IMPLODE-STRING ...) ;;; ! Variable FORM, declared as IGNORE, found in a lisp form. ;;; End of Pass 1. ;;; Emitting code for IMPLODE-STRING. ;;; Emitting code for IMPLODE-STRING. ;;; Note: ;;; Invoking external command: ;;; gcc "-I/usr/local/include/" -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fPIC -D_THREAD_SAFE -Dlinux -O2 -w -c "/tmp/s.c" -o "/tmp/s.o" ;;; ;;; Note: ;;; Invoking external command: ;;; gcc -o "/tmp/s.fas" -L"/usr/local/lib/" "/tmp/s.o" "-Wl,--rpath,/usr/local/lib/" -shared -lffi -lecl -lgmp -lpthread -ldl -lm ;;; ;;; Finished compiling /tmp/s.lisp. ;;; #P"/tmp/s.fas" T NIL CL-USER> -- __Pascal Bourguignon__ http://www.informatimago.com/ ------------------------------------------------------------------------------ Sell apps to millions through the Intel(R) Atom(Tm) Developer Program Be part of this innovative community and reach millions of netbook users worldwide. Take advantage of special opportunities to increase revenue and speed time-to-market. Join now, and jumpstart your future. http://p.sf.net/sfu/intel-atom-d2d _______________________________________________ Ecls-list mailing list Ecls-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ecls-list