[ESS] Emacs, ESS and Rmarkdown: Is this the way compile is supposed to work?

Manuel Teodoro teoten @end|ng |rom gm@||@com
Mon Apr 24 08:45:31 CEST 2023


Hi Kevin,

I also get sometimes the problem with "cl" library but it is never a
critical error that stops me from using Rmd.

I think the main question is, what is in your emacs configuration file?
Probably the problem comes from there.

For example, for R markdown I have simply the following lines, maybe you
can try them and see if the error persist.

;; R markdown
(use-package polymode)
(use-package poly-R)
(use-package poly-markdown)

;; MARKDOWN
(add-to-list 'auto-mode-alist '("\\.md" . poly-markdown-mode))

 ;; R modes
(add-to-list 'auto-mode-alist '("\\.Snw" . poly-noweb+r-mode))
(add-to-list 'auto-mode-alist '("\\.Rnw" . poly-noweb+r-mode))
(add-to-list 'auto-mode-alist '("\\.Rmd" . poly-markdown+r-mode))
 ;

I just noticed, this is just in case you have installed use-package. If
not, change the first 3 lines for something like

(require 'polymode)
(require 'poly-R)
(require 'poly-markdown)

Although probably require could also give you trouble, in which case simply
remove the 3 lines. The most important are the following lines that are
telling emacs to recognize *.Rmd files as markdown.

If you already have this lines then it would be helpful to see your whole
config file because maybe something there is conflicting with markdown or
with r markdown.

Cheers
Manuel

On Sun, Apr 23, 2023, 20:11 Kevin Zembower via ESS-help <
ess-help using r-project.org> wrote:

> Jacob, thanks for your help.
>
> Here's the output. I don't understand much of it, but the first mention
> of anything which seems germane is of "poly-markdown-+r-mode":
> ===============================================
> Debugger entered--Lisp error: "Package cl is deprecated"
>    message("%s" "Package cl is deprecated")
>    #f(compiled-function (msg) #<bytecode 0x1fd0c5464193>)("Package cl is
> deprecated")
>    apply(#f(compiled-function (msg) #<bytecode 0x1fd0c5464193>) "Package
> cl is deprecated")
>    timer-event-handler([t 0 0 0 nil #f(compiled-function (msg)
> #<bytecode 0x1fd0c5464193>) ("Package cl is deprecated") idle 0])
>    recursive-edit()
>    debug(error (cl-no-applicable-method clone nil))
>    signal(cl-no-applicable-method (clone nil))
>    cl-no-applicable-method(#s(cl--generic :name clone :dispatches ((0
> #s(cl--generic-generalizer :name eieio--generic-generalizer :priority 50
> :tagcode-function cl--generic-struct-tag :specializers-function
> #f(compiled-function (tag &rest _) #<bytecode 0x155db7511469>))
> #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0
> :tagcode-function #f(compiled-function (name &rest _) #<bytecode
> 0x1fd0c5305c27>) :specializers-function #f(compiled-function (tag &rest
> _) #<bytecode 0x1fd0c5305c17>)))) :method-table (#s(cl--generic-method
> :specializers (eieio-named) :qualifiers nil :uses-cnm t :function
> #f(compiled-function (obj &rest params) "Clone OBJ, initializing
> `:parent' to OBJ.\nAll slots are unbound, except those initialized with
> PARAMS." #<bytecode 0x155db755ec35>)) #s(cl--generic-method
> :specializers (eieio-instance-inheritor) :qualifiers nil :uses-cnm t
> :function #f(compiled-function (obj &rest params) "Clone OBJ,
> initializing `:parent' to OBJ.\nAll slots are unbound, except those
> initialized with PARAMS." #<bytecode 0x155db74f9af1>))
> #s(cl--generic-method :specializers (eieio-default-superclass)
> :qualifiers nil :uses-cnm nil :function #f(compiled-function (obj &rest
> params) "Make a copy of OBJ, and then apply PARAMS." #<bytecode
> 0x155db7503511>))) :options nil) nil)
>    apply(cl-no-applicable-method #s(cl--generic :name clone :dispatches
> ((0 #s(cl--generic-generalizer :name eieio--generic-generalizer
> :priority 50 :tagcode-function cl--generic-struct-tag
> :specializers-function #f(compiled-function (tag &rest _) #<bytecode
> 0x155db7511469>)) #s(cl--generic-generalizer :name
> cl--generic-t-generalizer :priority 0 :tagcode-function
> #f(compiled-function (name &rest _) #<bytecode 0x1fd0c5305c27>)
> :specializers-function #f(compiled-function (tag &rest _) #<bytecode
> 0x1fd0c5305c17>)))) :method-table (#s(cl--generic-method :specializers
> (eieio-named) :qualifiers nil :uses-cnm t :function #f(compiled-function
> (obj &rest params) "Clone OBJ, initializing `:parent' to OBJ.\nAll slots
> are unbound, except those initialized with PARAMS." #<bytecode
> 0x155db755ec35>)) #s(cl--generic-method :specializers
> (eieio-instance-inheritor) :qualifiers nil :uses-cnm t :function
> #f(compiled-function (obj &rest params) "Clone OBJ, initializing
> `:parent' to OBJ.\nAll slots are unbound, except those initialized with
> PARAMS." #<bytecode 0x155db74f9af1>)) #s(cl--generic-method
> :specializers (eieio-default-superclass) :qualifiers nil :uses-cnm nil
> :function #f(compiled-function (obj &rest params) "Make a copy of OBJ,
> and then apply PARAMS." #<bytecode 0x155db7503511>))) :options nil) nil)
>    #f(compiled-function (&rest args) #<bytecode 0x155db79c1179>)(nil)
>    apply(#f(compiled-function (&rest args) #<bytecode 0x155db79c1179>)
> nil nil)
>    clone(nil)
>    (let ((config (clone poly-markdown+r-mode))) (eieio-oset config
> ':minor-mode 'poly-gfm+r-mode) (pm-initialize config))
>    (if pm/polymode nil (let ((config (clone poly-markdown+r-mode)))
> (eieio-oset config ':minor-mode 'poly-gfm+r-mode) (pm-initialize config)))
>    (let ((last-message (current-message))) (if pm/polymode nil (let
> ((config (clone poly-markdown+r-mode))) (eieio-oset config ':minor-mode
> 'poly-gfm+r-mode) (pm-initialize config))) (setq poly-gfm+r-mode t)
> (run-hooks 'poly-gfm+r-mode-hook) (if (and (called-interactively-p 'any)
> (or (null (current-message)) (not (equal last-message
> (current-message))))) (progn (message "gfm+r polymode enabled")))
> (force-mode-line-update))
>    (if poly-gfm+r-mode nil (let ((last-message (current-message))) (if
> pm/polymode nil (let ((config (clone poly-markdown+r-mode))) (eieio-oset
> config ':minor-mode 'poly-gfm+r-mode) (pm-initialize config))) (setq
> poly-gfm+r-mode t) (run-hooks 'poly-gfm+r-mode-hook) (if (and
> (called-interactively-p 'any) (or (null (current-message)) (not (equal
> last-message (current-message))))) (progn (message "gfm+r polymode
> enabled"))) (force-mode-line-update)))
>    poly-gfm+r-mode()
>    set-auto-mode-0(poly-gfm+r-mode nil)
>    set-auto-mode()
>    normal-mode(t)
>    after-find-file(nil t)
>    find-file-noselect-1(#<buffer Prob_17_Page_295.Rmd>
> "~/Documents/Dan/Math_Stats/Prob_17_Page_295.Rmd" nil nil
> "~/Documents/Dan/Math_Stats/Prob_17_Page_295.Rmd" (69338481 2067))
>
> find-file-noselect("/home/kevin/Documents/Dan/Math_Stats/Prob_17_Page_...")
>    #f(compiled-function (displayable-buffers dir line column name)
> #<bytecode 0x1fd0c5450cb9>)((nil) "~/Documents/Dan/Math_Stats/" (0) (0)
> "Prob_17_Page_295.Rmd")
>    command-line-1(("Prob_17_Page_295.Rmd"))
>    command-line()
>    normal-top-level()
> ========================================
>
> Thanks for any ongoing advice.
>
> -Kevin
>
> On 4/23/23 13:34, Jacob Kasper wrote:
> > For package cl is depreciated you can read this thread. I don't think
> > this is causing any issues with markdown.
> >
> https://www.reddit.com/r/emacs/comments/zslyem/package_cl_is_deprecated_debugging/
> <
> https://www.reddit.com/r/emacs/comments/zslyem/package_cl_is_deprecated_debugging/
> >
> >
> > On Sun, Apr 23, 2023, 17:16 Kevin Zembower via ESS-help
> > <ess-help using r-project.org <mailto:ess-help using r-project.org>> wrote:
> >
> >     Tyler, thanks again for your help.
> >
> >     I'm sorry to burden you with my problems, but I'm stuck again.
> >
> >     I think I have everything installed and up to date. Here's an excerpt
> >     from M-x package-list-packages:
> >         markdown-mode      20220212.728  installed             Major
> >     mode for
> >     Markdown-formatted text
> >         poly-R             20230416.1454 installed             Various
> >     polymodes for R language
> >         poly-markdown      20230202.1210 installed             Polymode
> for
> >     markdown-mode
> >         poly-noweb         20200316.1315 installed             Polymode
> >     for noweb
> >         polymode           20230317.1218 installed             Extensible
> >     framework for multiple major modes
> >
> >     With the exception of poly-noweb, they're all 2023 packages.
> >
> >     Yet, when I open an *.Rmd file, I get this in the Messages buffer:
> >
> >     File mode specification error: (error Autoloading file
> >     /home/kevin/.emacs.d/polymode/modes/poly-R.el failed to define
> function
> >     poly-gfm+r-mode)
> >     Package cl is deprecated
> >
> >     I then added your alternative define-polymode section, and the error
> >     about poly-gfm+r-mode went away, but I still have this message in the
> >     Messages buffer when I start Emacs with an *.Rmd file:
> >
> >     File mode specification error: (cl-no-applicable-method clone nil)
> >     Package cl is deprecated
> >
> >     I can't find a reference to a 'cl' package in my init.el. In
> addition,
> >     the *.Rmd file is in Fundamental mode, and not ESS or poly-R mode.
> >
> >     When I try to manually invoke the poly mode, with 'M-x
> >     poly-gfm+r-mode',
> >     I get the message:
> >
> >     cl-no-applicable-method: No applicable method: clone, nil
> >
> >     Any ideas what's going on with my system? I'm so worried I'm just
> >     making
> >     a hash of things with these changes.
> >
> >     Thanks for any advice or guidance.
> >
> >     -Kevin
> >
> >     On 4/22/23 06:00, ess-help-request using r-project.org
> >     <mailto:ess-help-request using r-project.org> wrote:
> >      > ------------------------------
> >      >
> >      > Message: 2
> >      > Date: Fri, 21 Apr 2023 11:09:43 -0400
> >      > From: "Tyler Smith"<tyler using plantarum.ca <mailto:tyler using plantarum.ca
> >>
> >      > To: ESS-help<ess-help using r-project.org <mailto:
> ess-help using r-project.org>>
> >      > Subject: Re: [ESS] Emacs, ESS and Rmarkdown: Is this the way
> compile
> >      >       is supposed to work?
> >      > Message-ID:<a2b88f26-7760-41c2-8e9d-e4ea5de4bf21 using app.fastmail.com
> >     <mailto:a2b88f26-7760-41c2-8e9d-e4ea5de4bf21 using app.fastmail.com>>
> >      > Content-Type: text/plain; charset="us-ascii"
> >      >
> >      > Hi Kevin,
> >      >
> >      > If you have an older version of `poly-R`, the function
> >     `poly-gfm+r-mode` might not be present. This was added to `poly-R`
> >     dev in July 2021, I'm not sure exactly when it would have been added
> >     to the released version.
> >      >
> >      > If that's the case, updating to the current version of `poly-R`
> >     should fix the problem.
> >      >
> >      > Alternatively, you need the following code evaluated*after*
> >     `(require 'poly-R)` and*before*  `(add-to-list ...)`:
> >      >
> >      > ```
> >      > (define-polymode poly-gfm+r-mode poly-markdown+r-mode
> >      >    :lighter " PM-Rmd(gfm)"
> >      >    :hostmode 'poly-gfm-hostmode)
> >      > ```
> >      >
> >      > But that really shouldn't be necessary.
> >      >
> >      > Best,
> >      >
> >      > Tyler
> >      > -- plantarum.ca <http://plantarum.ca>
> >
> >
> >     ______________________________________________
> >     ESS-help using r-project.org <mailto:ESS-help using r-project.org> mailing list
> >     https://stat.ethz.ch/mailman/listinfo/ess-help
> >     <https://stat.ethz.ch/mailman/listinfo/ess-help>
> >
>
>
> ______________________________________________
> ESS-help using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/ess-help
>

	[[alternative HTML version deleted]]



More information about the ESS-help mailing list