J'ai fixé Common Lisp the Language de Steele jusqu'à en devenir bleu, et j'ai encore cette question. Si je compile :
(defun x ()
(labels ((y ()))
5))
(princ (x))
(terpri)
ceci se produit :
home:~/clisp/experiments$ clisp -c -q x.lisp
;; Compiling file /u/home/clisp/experiments/x.lisp ...
WARNING in lines 1..3 :
function X-Y is not used.
Misspelled or missing IGNORE declaration?
;; Wrote file /u/home/clisp/experiments/x.fas
0 errors, 1 warning
home:~/clisp/experiments$
C'est juste. Alors comment demander au compilateur d'ignorer la fonction y ? J'ai essayé ceci :
(defun x ()
(labels (#+ignore(y ()))
5))
(princ (x))
(terpri)
et ça a fonctionné :
home:~/clisp/experiments$ clisp -c -q y.lisp
;; Compiling file /u/home/clisp/experiments/y.lisp ...
;; Wrote file /u/home/clisp/experiments/y.fas
0 errors, 0 warnings
home:~/clisp/experiments$
mais je ne pense pas que c'est ce que suggère l'avertissement de faire.
Que dois-je faire ?