Byte compiler issue
Aidan Kehoe
kehoea at parhasard.net
Wed May 16 11:57:42 EDT 2012
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 at 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)
More information about the XEmacs-Beta
mailing list