Hi Rodney,
Ar an ceathrú lá déag de mí Bealtaine, scríobh Rodney Sparapani:
I have a file that byte compiles with 21.4.22, but not with
the latest as of last Friday nor 21.5.31. The file is
https://svn.r-project.org/ESS/trunk/lisp/ess-sas-a.el
The backtrace from the latest is:
Debugger entered--Lisp error: (invalid-function #<keymap map size 0 0x11e>)
(map nil #<compiled-function (from
"/home/rsparapa/hg/xemacs/lisp/bytecomp.elc") (&rest #:--rest--32884)
"...(46)" [function #:--rest--32884 nargs 1 signal
wrong-number-of-arguments nil put byte-compile-keyword-start] 5
"\n\narguments: ((FUNCTION &rest NARGS))\n" 0x1afa> (quote (... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ...)))
Thanks for the bug report! This is a problem with ESS, not with XEmacs; I’ve
a patch below.
Best,
Aidan
2012-05-16 Aidan Kehoe <kehoea(a)parhasard.net>
* ess-developer.el (ess-developer-map):
* ess-developer.el (inferior-ess-mode-map):
* ess-tracebug.el (ess-tracebug-map):
* ess-tracebug.el (ess-debug-singlekey-map):
Don't ever call (define-prefix-command 'map), this trashes the
function binding of that symbol, which is important for those who
call (require 'cl), including all XEmacs users.
diff --git a/lisp/ess-developer.el b/lisp/ess-developer.el
index 4b13508..5df7870 100644
--- a/lisp/ess-developer.el
+++ lisp/ess-developer.el
@@ -65,13 +65,13 @@
;; :type 'string)
(defvar ess-developer-map
- (let ((map (make-sparse-keymap)))
- (define-prefix-command 'map)
- (define-key map "t" 'ess-developer)
- (define-key map "a" 'ess-developer-add-package)
- (define-key map "r" 'ess-developer-remove-package)
- (define-key map "s" 'ess-developer-source-current-file)
- map)
+ (let (ess-developer-map)
+ (define-prefix-command 'ess-developer-map)
+ (define-key ess-developer-map "t" 'ess-developer)
+ (define-key ess-developer-map "a" 'ess-developer-add-package)
+ (define-key ess-developer-map "r" 'ess-developer-remove-package)
+ (define-key ess-developer-map "s" 'ess-developer-source-current-file)
+ ess-developer-map)
"Ess-developer keymap.")
(define-key ess-mode-map "\C-cd" ess-developer-map)
diff --git a/lisp/ess-tracebug.el b/lisp/ess-tracebug.el
index 3b1309e..4d1b7b0 100644
--- a/lisp/ess-tracebug.el
+++ lisp/ess-tracebug.el
@@ -129,41 +129,41 @@ Use `add-hook' to insert append your functions to this list.
:type 'hook)
(defvar ess-tracebug-map
- (let ((map (make-sparse-keymap)))
- (define-prefix-command 'map)
- (define-key map "`" 'ess-show-R-traceback)
- (define-key map "w" 'ess-watch)
- (define-key map "i" 'ess-dbg-goto-input-event-marker)
- (define-key map "I" 'ess-dbg-goto-input-event-marker)
- (define-key map "d" 'ess-dbg-flag-for-debugging)
- (define-key map "D" 'ess-dbg-unflag-for-debugging)
- (define-key map "u" 'ess-dbg-unflag-for-debugging)
- (define-key map "b" 'ess-bp-set)
- (define-key map "B" 'ess-bp-set-conditional)
- (define-key map "l" 'ess-bp-set-logger)
- (define-key map "t" 'ess-bp-toggle-state)
- (define-key map "k" 'ess-bp-kill)
- (define-key map "K" 'ess-bp-kill-all)
- (define-key map "\C-n" 'ess-bp-next)
- (define-key map "\C-p" 'ess-bp-previous)
- (define-key map "e" 'ess-dbg-toggle-error-action)
- (define-key map "c" 'ess-dbg-singlekey-command)
- (define-key map "n" 'ess-dbg-singlekey-command)
- (define-key map "p" 'ess-dbg-singlekey-command)
- (define-key map "q" 'ess-dbg-singlekey-command)
- (define-key map "0" 'ess-dbg-singlekey-command)
- (define-key map "1" 'ess-dbg-singlekey-command)
- (define-key map "2" 'ess-dbg-singlekey-command)
- (define-key map "3" 'ess-dbg-singlekey-command)
- (define-key map "4" 'ess-dbg-singlekey-command)
- (define-key map "5" 'ess-dbg-singlekey-command)
- (define-key map "6" 'ess-dbg-singlekey-command)
- (define-key map "7" 'ess-dbg-singlekey-command)
- (define-key map "8" 'ess-dbg-singlekey-command)
- (define-key map "9" 'ess-dbg-singlekey-command)
- (define-key map "s" 'ess-tracebug-source-current-file)
- (define-key map "?" 'ess-tracebug-show-help)
- map)
+ (let (ess-tracebug-map)
+ (define-prefix-command 'ess-tracebug-map)
+ (define-key ess-tracebug-map "`" 'ess-show-R-traceback)
+ (define-key ess-tracebug-map "w" 'ess-watch)
+ (define-key ess-tracebug-map "i" 'ess-dbg-goto-input-event-marker)
+ (define-key ess-tracebug-map "I" 'ess-dbg-goto-input-event-marker)
+ (define-key ess-tracebug-map "d" 'ess-dbg-flag-for-debugging)
+ (define-key ess-tracebug-map "D" 'ess-dbg-unflag-for-debugging)
+ (define-key ess-tracebug-map "u" 'ess-dbg-unflag-for-debugging)
+ (define-key ess-tracebug-map "b" 'ess-bp-set)
+ (define-key ess-tracebug-map "B" 'ess-bp-set-conditional)
+ (define-key ess-tracebug-map "l" 'ess-bp-set-logger)
+ (define-key ess-tracebug-map "t" 'ess-bp-toggle-state)
+ (define-key ess-tracebug-map "k" 'ess-bp-kill)
+ (define-key ess-tracebug-map "K" 'ess-bp-kill-all)
+ (define-key ess-tracebug-map "\C-n" 'ess-bp-next)
+ (define-key ess-tracebug-map "\C-p" 'ess-bp-previous)
+ (define-key ess-tracebug-map "e" 'ess-dbg-toggle-error-action)
+ (define-key ess-tracebug-map "c" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "n" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "p" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "q" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "0" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "1" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "2" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "3" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "4" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "5" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "6" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "7" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "8" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "9" 'ess-dbg-singlekey-command)
+ (define-key ess-tracebug-map "s" 'ess-tracebug-source-current-file)
+ (define-key ess-tracebug-map "?" 'ess-tracebug-show-help)
+ ess-tracebug-map)
"Keymap used as a binding for `ess-tracebug-prefix' key
in ESS and iESS mode.
@@ -865,24 +865,24 @@ If nil, the currently debugged line is highlighted for
:type 'boolean)
(defvar ess-debug-singlekey-map
- (let ((map (make-sparse-keymap)))
- (define-prefix-command 'map)
- (define-key map "c" 'ess-dbg-command-c)
- (define-key map "n" 'ess-dbg-command-n)
- (define-key map "p" 'ess-dbg-previous-error)
- (define-key map "q" 'ess-dbg-command-Q)
- (define-key map "0" 'ess-dbg-command-digit)
- (define-key map "1" 'ess-dbg-command-digit)
- (define-key map "2" 'ess-dbg-command-digit)
- (define-key map "3" 'ess-dbg-command-digit)
- (define-key map "4" 'ess-dbg-command-digit)
- (define-key map "5" 'ess-dbg-command-digit)
- (define-key map "6" 'ess-dbg-command-digit)
- (define-key map "7" 'ess-dbg-command-digit)
- (define-key map "8" 'ess-dbg-command-digit)
- (define-key map "9" 'ess-dbg-command-digit)
- (define-key map "?" 'ess-tracebug-show-help)
- map)
+ (let (ess-debug-singlekey-map)
+ (define-prefix-command 'ess-debug-singlekey-map)
+ (define-key ess-debug-singlekey-map "c" 'ess-dbg-command-c)
+ (define-key ess-debug-singlekey-map "n" 'ess-dbg-command-n)
+ (define-key ess-debug-singlekey-map "p" 'ess-dbg-previous-error)
+ (define-key ess-debug-singlekey-map "q" 'ess-dbg-command-Q)
+ (define-key ess-debug-singlekey-map "0" 'ess-dbg-command-digit)
+ (define-key ess-debug-singlekey-map "1" 'ess-dbg-command-digit)
+ (define-key ess-debug-singlekey-map "2" 'ess-dbg-command-digit)
+ (define-key ess-debug-singlekey-map "3" 'ess-dbg-command-digit)
+ (define-key ess-debug-singlekey-map "4" 'ess-dbg-command-digit)
+ (define-key ess-debug-singlekey-map "5" 'ess-dbg-command-digit)
+ (define-key ess-debug-singlekey-map "6" 'ess-dbg-command-digit)
+ (define-key ess-debug-singlekey-map "7" 'ess-dbg-command-digit)
+ (define-key ess-debug-singlekey-map "8" 'ess-dbg-command-digit)
+ (define-key ess-debug-singlekey-map "9" 'ess-dbg-command-digit)
+ (define-key ess-debug-singlekey-map "?" 'ess-tracebug-show-help)
+ ess-debug-singlekey-map)
"Keymap used to define commands for single key input mode.
This commands are triggered by `ess-dbg-singlekey-command' .
--
‘Liston operated so fast that he once accidentally amputated an assistant’s
fingers along with a patient’s leg, […] The patient and the assistant both
died of sepsis, and a spectator reportedly died of shock, resulting in the
only known procedure with a 300% mortality.’ (Atul Gawande, NEJM, 2012)
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-beta