Hi Nicholas,
Sorry I missed this when it first came in.
First, if you aren't already, try using the version of matlab-mode from
git in case you happen to have an older version. I happen to be on
Emacs 27 which required some changes to mlint / linemark to work
correctly with those versions of eieio (the clos library in Emacs.) I
haven't tried it with E29.
You stack trace is a bit hard to interpret when byte compiled. If you
do this:
M-x load-librry RET mlint.el RET
it will load the src, not the byte compiled version, and you should get
an easier to understand stack.
Since the error is related to a cl-* variable within one of the clos
macros, I wouldn't be surprised if more changes were needed to account
for anything new in E29. In the E29 NEWS file in git, I see it says you
may need to add '(require 'eieio-compat')' to some files written against
older versions of eieio, so that is a possibility.
Eric
On 7/18/22 5:48 AM, Nicholas Harrison wrote:
Hi and thanks for the package!
I'm trying to get linting to work, but nothing will show. I would love
help debugging.
My steps:
1. Open .m file and turn on matlab-mode
2. Turn on mlint-minor-mode
3. Run mlint-buffer
This is run from emacs -Q with packages loaded first and variables to
executables set. Apparently something right is happening since I see
some lines in the *M-Lint* buffer, but I get the following error and
stack trace:
Debugger entered--Lisp error: (void-variable cl--nm)
#f(compiled-function (&rest args) #<bytecode -0x155fd570868d38f2>)()
#f(compiled-function (cl--cnm e active-p) #<bytecode
0xbaea774c3e9d26b>)(#f(compiled-function (&rest args) #<bytecode
-0x155fd570868d38f2>) #<mlint-lm-entry
mlint-lm-entry-158f7c4907cc> nil)
apply(#f(compiled-function (cl--cnm e active-p) #<bytecode
0xbaea774c3e9d26b>) #f(compiled-function (&rest args) #<bytecode
-0x155fd570868d38f2>) (#<mlint-lm-entry
mlint-lm-entry-158f7c4907cc> nil))
#f(compiled-function (&rest cl--args) "Set object E to be
active.\nACTIVE-P if it should be made visible." #<bytecode
-0x1e9379681ed694e5>)(#<mlint-lm-entry
mlint-lm-entry-158f7c4907cc> nil)
apply(#f(compiled-function (&rest cl--args) "Set object E to be
active.\nACTIVE-P if it should be made visible." #<bytecode
-0x1e9379681ed694e5>) #<mlint-lm-entry
mlint-lm-entry-158f7c4907cc> nil)
linemark-display(#<mlint-lm-entry mlint-lm-entry-158f7c4907cc> nil)
#f(compiled-function (e) #<bytecode
0x11b9e8c2c87755be>)(#<mlint-lm-entry mlint-lm-entry-158f7c4907cc>)
apply(#f(compiled-function (e) #<bytecode 0x11b9e8c2c87755be>)
#<mlint-lm-entry mlint-lm-entry-158f7c4907cc> nil)
linemark-delete(#<mlint-lm-entry mlint-lm-entry-158f7c4907cc>)
#<subr
F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_28>(#<mlint-lm-entry
mlint-lm-entry-158f7c4907cc>)
mapc(#<subr
F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_28>
(#<mlint-lm-entry mlint-lm-entry-158f7c4907cc>))
mlint-clear-warnings()
mlint-buffer()
funcall(mlint-buffer)
(condition-case e (funcall hook) ((debug error) (signal
'doom-hook-error (list hook e))))
doom-run-hook(mlint-buffer)
run-hook-wrapped(doom-run-hook mlint-buffer)
(condition-case e (run-hook-wrapped hook #'doom-run-hook)
((debug doom-hook-error) (if debug-on-error nil (lwarn hook :error
"Error running hook %S because: %s" (if (symbolp (car (cdr e)))
(symbol-name (car (cdr e))) (car (cdr e))) (car (cdr (cdr e)))))
(signal 'doom-hook-error (cons hook (cdr e)))))
(let ((hook (car --dolist-tail--))) (condition-case e
(run-hook-wrapped hook #'doom-run-hook) ((debug doom-hook-error)
(if debug-on-error nil (lwarn hook :error "Error running hook %S
because: %s" (if (symbolp (car ...)) (symbol-name (car ...)) (car
(cdr e))) (car (cdr (cdr e))))) (signal 'doom-hook-error (cons
hook (cdr e))))) (setq --dolist-tail-- (cdr --dolist-tail--)))
(while --dolist-tail-- (let ((hook (car --dolist-tail--)))
(condition-case e (run-hook-wrapped hook #'doom-run-hook) ((debug
doom-hook-error) (if debug-on-error nil (lwarn hook :error "Error
running hook %S because: %s" (if (symbolp ...) (symbol-name ...)
(car ...)) (car (cdr ...)))) (signal 'doom-hook-error (cons hook
(cdr e))))) (setq --dolist-tail-- (cdr --dolist-tail--))))
(let ((--dolist-tail-- hooks)) (while --dolist-tail-- (let
((hook (car --dolist-tail--))) (condition-case e (run-hook-wrapped
hook #'doom-run-hook) ((debug doom-hook-error) (if debug-on-error
nil (lwarn hook :error "Error running hook %S because: %s" (if ...
... ...) (car ...))) (signal 'doom-hook-error (cons hook (cdr
e))))) (setq --dolist-tail-- (cdr --dolist-tail--)))))
doom-run-hooks(after-save-hook)
apply(doom-run-hooks after-save-hook)
run-hooks(after-save-hook)
basic-save-buffer(nil)
save-buffer()
mlint-buffer()
#<subr funcall-interactively>(mlint-buffer)
apply(#<subr funcall-interactively> mlint-buffer)
funcall-interactively(mlint-buffer)
#<subr call-interactively>(mlint-buffer nil nil)
apply(#<subr call-interactively> (mlint-buffer nil nil))
explain-pause--wrap-call-interactively(#<subr
call-interactively> mlint-buffer nil nil)
apply(explain-pause--wrap-call-interactively #<subr
call-interactively> (mlint-buffer nil nil))
call-interactively(mlint-buffer nil nil)
command-execute(mlint-buffer)
Any ideas?
Emacs version: GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+
Version 3.24.20, cairo version 1.16.0) of 2022-06-14
Matlab version: R2022a
OS: Linux Mint 20.3 Cinnamon
Nick
_______________________________________________
Matlab-emacs-discuss mailing list
Matlab-emacs-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matlab-emacs-discuss
_______________________________________________
Matlab-emacs-discuss mailing list
Matlab-emacs-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matlab-emacs-discuss