[ESS-bugs] ess-mode 5.0; M-x R ==> (error (wrong-type-argument stringp nil))

Gregory D. Weber gdweber at indiana.edu
Wed Nov 24 01:56:35 CET 2004


Greetings!  Thanks for providing ESS!

I've made this change in ess-inf.el, version 5.0, to avoid an error
caused by (ess-proc-name 1 "R"), called by (inferior-ess),
initiated by the command "M-x R" in GNU Emacs.  The error
message is:

(wrong-type-argument stringp nil) 

Here's my revision:

(defun ess-proc-name (n name)
  "Return process name of process N, as a string, with NAME
  prepended."
  (if ess-plain-first-buffername
      (if (> n 1)
	  (format "%s:%d" name n) ;; changed!
	(concat name))
    (format "%s:%d" name n))) ;; changed!

;; Original definition:

;; (defun ess-proc-name (n name)
;;   "Return process name of process N, as a string, with NAME
;;   prepended."
;;   (if ess-plain-first-buffername
;;       (if (> n 1)
;; 	  (concat name ":" n)
;; 	(concat name))
;;     (concat name ":" n)))



Emacs  : GNU Emacs 21.3.1 (i386-redhat-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2003-10-27 on daffy.perf.redhat.com
Package: ess-mode 5.0

current state:
==============
(setq
 ess-language "S"
 ess-dialect "R"
 ess-ask-for-ess-directory t
 ess-ask-about-transfile nil
 ess-directory nil
 ess-keep-dump-files "always"
 ess-source-directory "/tmp/"
 )
(ess-setq-vars-local): ess-language=S, buf=foo.R 
(ess-mode-1): ess-language=S, ess-dialect=R buf=foo.R 
(ess-mode-1.5): alist=((ess-local-customize-alist quote R-customize-alist) (ess-language . S) (ess-dialect . R) (ess-suffix . R) (ess-dump-filename-template concat (user-login-name) .%s. ess-suffix) (ess-mode-editing-alist . S-editing-alist) (ess-mode-syntax-table . S-syntax-table) (ess-help-sec-regex . ess-help-R-sec-regex) (ess-help-sec-keys-alist . R-help-sec-keys-alist) (ess-loop-timeout . 100000) (ess-object-name-db-file . ess-r-namedb.el) (ess-retr-lastvalue-command . .Last.value <- get(".ess.lvsave",inherits=T)
) (ess-save-lastvalue-command . assign(".ess.lvsave",.Last.value,inherits=T)
) (inferior-ess-program . inferior-R-program-name) (inferior-ess-help-command . help("%s")
) (inferior-ess-objects-command . objects(pos = %d)
) (inferior-ess-exit-command . q()
) (inferior-ess-primary-prompt . [][a-zA-Z0-9() ]*> ?) (inferior-ess-start-file) (inferior-ess-start-args . )) 
(ess-mode-1.6): editing-alist=((paragraph-start concat ^$\| page-delimiter) (paragraph-separate concat ^$\| page-delimiter) (paragraph-ignore-fill-prefix . t) (require-final-newline . t) (comment-start . #) (comment-start-skip . #+ *) (comment-column . 40) (indent-line-function quote S-indent-line) (parse-sexp-ignore-comments . t) (ess-set-style . ess-default-style) (ess-local-process-name) (ess-mode-syntax-table . S-syntax-table) (font-lock-defaults quote (ess-mode-font-lock-keywords))) 
(ess-setq-vars-local): ess-language=S, buf=foo.R 

Finished setting up ESS-mode.
(R): ess-dialect=R , buf=foo.R, start-arg=nil
(R): current-prefix-arg=nil 
(inferior-ess 0): ess-start-args=nil 
(ess-setq-vars-default): ess-language=S, buf=*ESS* 
(inferior-ess 1): ess-lang=S, ess-dialect=R, temp-dialect=R, buf=foo.R 
(ess-setq-vars-local): ess-language=S, buf=foo.R 
(ess-mode-1): ess-language=S, ess-dialect=R buf=foo.R 
(ess-mode-1.5): alist=((ess-local-customize-alist quote R-customize-alist) (ess-language . S) (ess-dialect . R) (ess-suffix . R) (ess-dump-filename-template concat (user-login-name) .%s. ess-suffix) (ess-mode-editing-alist . S-editing-alist) (ess-mode-syntax-table . S-syntax-table) (ess-help-sec-regex . ess-help-R-sec-regex) (ess-help-sec-keys-alist . R-help-sec-keys-alist) (ess-loop-timeout . 100000) (ess-object-name-db-file . ess-r-namedb.el) (ess-retr-lastvalue-command . .Last.value <- get(".ess.lvsave",inherits=T)
) (ess-save-lastvalue-command . assign(".ess.lvsave",.Last.value,inherits=T)
) (inferior-ess-program . inferior-R-program-name) (inferior-ess-help-command . help("%s")
) (inferior-ess-objects-command . objects(pos = %d)
) (inferior-ess-exit-command . q()
) (inferior-ess-primary-prompt . [][a-zA-Z0-9() ]*> ?) (inferior-ess-start-file) (inferior-ess-start-args . )) 
(ess-mode-1.6): editing-alist=((paragraph-start concat ^$\| page-delimiter) (paragraph-separate concat ^$\| page-delimiter) (paragraph-ignore-fill-prefix . t) (require-final-newline . t) (comment-start . #) (comment-start-skip . #+ *) (comment-column . 40) (indent-line-function quote S-indent-line) (parse-sexp-ignore-comments . t) (ess-set-style . ess-default-style) (ess-local-process-name) (ess-mode-syntax-table . S-syntax-table) (font-lock-defaults quote (ess-mode-font-lock-keywords))) 
(ess-setq-vars-local): ess-language=S, buf=foo.R 

Finished setting up ESS-mode.
(R): ess-dialect=R , buf=tmp, start-arg=nil
(R): current-prefix-arg=nil 
(inferior-ess 0): ess-start-args=nil 
(ess-setq-vars-default): ess-language=S, buf=*ESS* 
(inferior-ess 1): ess-lang=S, ess-dialect=R, temp-dialect=R, buf=tmp 
(R): ess-dialect=R , buf=tmp, start-arg=nil
(R): current-prefix-arg=nil 
(inferior-ess 0): ess-start-args=nil 
(ess-setq-vars-default): ess-language=S, buf=*ESS* 
(inferior-ess 1): ess-lang=S, ess-dialect=R, temp-dialect=R, buf=tmp 
(inferior-ess 0): ess-start-args=nil 
(ess-setq-vars-default): ess-language=S, buf=*ESS* 
(inferior-ess 1): ess-lang=S, ess-dialect=R, temp-dialect=R, buf=*scratch* 
(inferior-ess 0): ess-start-args=nil 
(ess-setq-vars-default): ess-language=S, buf=*ESS* 
(inferior-ess 1): ess-lang=S, ess-dialect=R, temp-dialect=R, buf=*scratch* 
(inferior-ess 0): ess-start-args=(1 R) 
(ess-setq-vars-default): ess-language=S, buf=*ESS* 
(inferior-ess 1): ess-lang=S, ess-dialect=R, temp-dialect=R, buf=*scratch* 
(inferior-ess 0): ess-start-args=1 R 
(ess-setq-vars-default): ess-language=S, buf=*ESS* 
(inferior-ess 1): ess-lang=S, ess-dialect=R, temp-dialect=R, buf=*scratch* 
(inferior-ess 0): ess-start-args=R:1 
(ess-setq-vars-default): ess-language=S, buf=*ESS* 
(inferior-ess 1): ess-lang=S, ess-dialect=R, temp-dialect=R, buf=*scratch* 
(R): ess-dialect=R , buf=*scratch*, start-arg=nil
(R): current-prefix-arg=nil 
(inferior-ess 0): ess-start-args=nil 
(ess-setq-vars-default): ess-language=S, buf=*ESS* 
(inferior-ess 1): ess-lang=S, ess-dialect=R, temp-dialect=R, buf=*scratch* 
(inf-ess 1.1): procname=R:1 temp-dialect=R, buf-name=*R:1* 
(inferior-ess) Method #3
(ess-setq-vars-local): ess-language=S, buf=*R:1* 
(inf-ess 2.1): ess-language=S, ess-dialect=R buf=*R:1* 
(inf-ess 2.2): start args = nil, inf-ess-start-args= 
(ess-setq-vars-local): ess-language=S, buf=*R:1* 
(ess-multi 1):  inf-ess-start-args= 
Making Process...Buf *R:1*, Proc R:1, Prog R
 Start File=nil, Args= .
(R): ess-dialect=R , buf=*scratch*, start-arg=nil
(R): current-prefix-arg=nil 
(inferior-ess 0): ess-start-args=nil 
(ess-setq-vars-default): ess-language=S, buf=*ESS* 
(inferior-ess 1): ess-lang=S, ess-dialect=R, temp-dialect=R, buf=*scratch* 
(inf-ess 1.1): procname=R:2 temp-dialect=R, buf-name=*R:2* 
(inferior-ess) Method #3
(ess-setq-vars-local): ess-language=S, buf=*R:2* 
(inf-ess 2.1): ess-language=S, ess-dialect=R buf=*R:2* 
(inf-ess 2.2): start args = nil, inf-ess-start-args= 
(ess-setq-vars-local): ess-language=S, buf=*R:2* 
(ess-multi 1):  inf-ess-start-args= 
Making Process...Buf *R:2*, Proc R:2, Prog R
 Start File=nil, Args= .

-- 
Gregory D. Weber

Associate Professor of Computer Science, Indiana University East
2325 Chester Boulevard, Richmond, Indiana 47374-1289, U.S.A.
Telephone (765) 973-8420          World-Wide Web http://mypage.iu.edu/~gdweber/

----
ASCII plain text is the document format that maximizes readability and 
minimizes hassle and hazard.  It is the format of the official documents
defining Internet protocols (http://www.rfc-editor.org/).




More information about the ESS-bugs mailing list