[mcclim-devel] ACL70 bug: Ignorable in argument acceptor functions for define-command
rpgoldman at real-time.com
rpgoldman at real-time.com
Tue Aug 30 17:39:00 UTC 2005
I find that with allegro version 7.0, McCLIM crashes while compiling.
The problem first crops up compiling
(define-command (com-query-exit :command-table accepting-values
:name nil
:provide-output-destination-keyword nil)
()
(signal 'av-exit))
which macroexpands to:
(PROGN (DEFUN COM-QUERY-EXIT () (SIGNAL 'AV-EXIT))
(ADD-COMMAND-TO-COMMAND-TABLE 'COM-QUERY-EXIT 'ACCEPTING-VALUES
:NAME NIL
:MENU 'NIL
:KEYSTROKE 'NIL
:ERRORP NIL)
(DEFUN COM-QUERY-EXIT%ACCEPTOR%9 (#:STREAM61697)
(LET ((#:KEY-RESULTS61698 NIL))
(BLOCK ACTIVATED
(FLET ((EAT-DELIMITER-OR-ACTIVATOR NIL
(LET ((GESTURE (READ-GESTURE :STREAM #:STREAM61697)))
(WHEN (OR (NULL GESTURE) (ACTIVATION-GESTURE-P GESTURE))
(RETURN-FROM ACTIVATED NIL))
(UNLESS (DELIMITER-GESTURE-P GESTURE)
(UNREAD-GESTURE GESTURE :STREAM #:STREAM61697)))))
(DECLARE (IGNORABLE #'EAT-DELIMITER-OR-ACTIVATOR))
(LET ((GESTURE (READ-GESTURE :STREAM #:STREAM61697 :TIMEOUT 0 :PEEK-P T)))
(COND ((AND GESTURE (ACTIVATION-GESTURE-P GESTURE)) (RETURN-FROM ACTIVATED NIL)))
NIL)))
(LIST* #:KEY-RESULTS61698)))
(DEFUN COM-QUERY-EXIT%PARTIAL%8 (#:COMMAND-TABLE61699 #:STREAM61700 #:PARTIAL-COMMAND61701)
(DESTRUCTURING-BIND (#:COMMAND-NAME61702) #:PARTIAL-COMMAND61701
(LET ((#:COMMAND-LINE-NAME61703
(COMMAND-LINE-NAME-FOR-COMMAND #:COMMAND-NAME61702
#:COMMAND-TABLE61699
:ERRORP NIL)))
(ACCEPTING-VALUES (#:STREAM61700)
(FORMAT #:STREAM61700
"You are being prompted for arguments to ~S~%"
#:COMMAND-LINE-NAME61703))
(LIST #:COMMAND-NAME61702))))
(DEFUN |COM-QUERY-EXIT%unparser%9| (#:COMMAND61707 #:STREAM61709)
(DECLARE (IGNORABLE #:STREAM61709))
(LET* ((#:SEPERATOR61712 #\Space) (#:COMMAND-ARGS61708 (CDR #:COMMAND61707)))
(DECLARE (IGNORABLE #:SEPERATOR61712 #:COMMAND-ARGS61708))))
NIL
(SETF (GETHASH 'COM-QUERY-EXIT *COMMAND-PARSER-TABLE*)
(MAKE-INSTANCE 'COMMAND-PARSERS :PARSER #'COM-QUERY-EXIT%ACCEPTOR%9 :PARTIAL-PARSER
#'COM-QUERY-EXIT%PARTIAL%8 :REQUIRED-ARGS 'NIL :KEYWORD-ARGS 'NIL
:ARGUMENT-UNPARSER #'|COM-QUERY-EXIT%unparser%9|))
'COM-QUERY-EXIT)
Allegro v 7.0 chokes on
(DECLARE (IGNORABLE #'EAT-DELIMITER-OR-ACTIVATOR))
AFAICT, Allegro 7.0 can't compile ignorable declarations applied to
constant functions like this.
I believe this is an allegro bug, as is suggested by the error
message:
; While compiling COM-QUERY-EXIT%ACCEPTOR%0:
Error: We don't yet handle ignore of #'EAT-DELIMITER-OR-ACTIVATOR.
For now, I was just going to put the following conditional compilation
directive in commands.lisp:
#-ALLEGRO-V7.0 (declare (ignorable (function eat-delimiter-or-activator)))
Any reason not to commit this change?
Actually, I'm on vacation, and it may be difficult for me to make this
commit for a week or so, so if anyone else would like to, that would
be great!
R
More information about the mcclim-devel
mailing list