yuya373 / emacs-slack

slack client for emacs
1.1k stars 117 forks source link

void-variable cl--nm #570

Open unhammer opened 1 year ago

unhammer commented 1 year ago

Describe the bug When I try to select a certain room, I immediately get an error about cl--nm being a void variable

To Reproduce I'm not sure how one would reproduce, since it's only on a certain room that I get it :-( But perhaps the backtrace can help.

Backtrace

Debugger entered--Lisp error: (void-variable cl--nm)
  #f(compiled-function (&rest args) #<bytecode -0x155fd65d33546c36>)()
  #f(compiled-function (cl--cnm m team) #<bytecode -0x84ae134e6eca8a9>)(#f(compiled-function (&rest args) #<bytecode -0x155fd65d33546c36>) #<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> #<slack-team slack-team-156525f886e4>)
  apply(#f(compiled-function (cl--cnm m team) #<bytecode -0x84ae134e6eca8a9>) #f(compiled-function (&rest args) #<bytecode -0x155fd65d33546c36>) (#<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> #<slack-team slack-team-156525f886e4>))
  #f(compiled-function (&rest cl--args) #<bytecode -0x3581f75d71b7455>)(#<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> #<slack-team slack-team-156525f886e4>)
  apply(#f(compiled-function (&rest cl--args) #<bytecode -0x3581f75d71b7455>) #<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> #<slack-team slack-team-156525f886e4>)
  slack-message-body(#<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> #<slack-team slack-team-156525f886e4>)
  #f(compiled-function (m team) #<bytecode 0x1aa7f2e6cf02a598>)(#<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> #<slack-team slack-team-156525f886e4>)
  apply(#f(compiled-function (m team) #<bytecode 0x1aa7f2e6cf02a598>) #<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> #<slack-team slack-team-156525f886e4>)
  slack-message-to-string(#<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> #<slack-team slack-team-156525f886e4>)
  #f(compiled-function (this message merge-message-p) #<bytecode -0x86434496d927b62>)(#<slack-message-buffer slack-message-buffer-15652555ca9e> #<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> nil)
  apply(#f(compiled-function (this message merge-message-p) #<bytecode -0x86434496d927b62>) #<slack-message-buffer slack-message-buffer-15652555ca9e> (#<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> nil))
  slack-buffer-message-text(#<slack-message-buffer slack-message-buffer-15652555ca9e> #<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> nil)
  #f(compiled-function (this message &optional not-tracked-p prev-message) #<bytecode -0x1c51a86a62455aec>)(#<slack-message-buffer slack-message-buffer-15652555ca9e> #<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> t #<slack-user-message slack-user-message-15652394e8ca>)
  apply(#f(compiled-function (this message &optional not-tracked-p prev-message) #<bytecode -0x1c51a86a62455aec>) #<slack-message-buffer slack-message-buffer-15652555ca9e> (#<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> t #<slack-user-message slack-user-message-15652394e8ca>))
  slack-buffer-insert(#<slack-message-buffer slack-message-buffer-15652555ca9e> #<slack-reply-broadcast-message slack-reply-broadcast-message-15652636ec9e> t #<slack-user-message slack-user-message-15652394e8ca>)
  #f(compiled-function (this messages &optional filter-by-oldest not-tracked-p) #<bytecode -0x1f4558a0edf16c8f>)(#<slack-message-buffer slack-message-buffer-15652555ca9e> (#<slack-user-message slack-user-message-156525fbae66> #<slack-user-message slack-user-message-156525fb9768> #<slack-user-message slack-user-message-156525fb94bc> #<slack-user-message slack-user-message-156525fb81dc> #<slack-user-message slack-user-message-1565237332f4> #<slack-user-message slack-user-message-156523731f8e> #<slack-user-message slack-user-message-1565237313ca> #<slack-user-message slack-user-message-15652373110c> #<slack-user-message slack-user-message-15652372fd52> #<slack-user-message slack-user-message-156525d9bc3c> #<slack-user-message slack-user-message-156525d98c38> #<slack-user-message slack-user-message-156524386d42> #<slack-user-message slack-user-message-156524386a82> #<slack-user-message slack-user-message-156524383740> #<slack-user-message slack-user-message-15652635fafe> #<slack-user-message slack-user-message-15652635e5b4> #<slack-user-message slack-user-message-15652635cea0> #<slack-user-message slack-user-message-15652635bbb6> #<slack-user-message slack-user-message-15652635b8f6> #<slack-user-message slack-user-message-1565262b66ee> #<slack-user-message slack-user-message-1565262b47fa> #<slack-user-message slack-user-message-1565262b340c> #<slack-user-message slack-user-message-1565262b315e> #<slack-user-message slack-user-message-156525f8c11c> #<slack-user-message slack-user-message-1565251cea62> #<slack-user-message slack-user-message-1565251ccb86> #<slack-user-message slack-user-message-1565251cc8ca> #<slack-user-message slack-user-message-156524f4d4e2> #<slack-user-message slack-user-message-156524f4c982> #<slack-user-message slack-user-message-156524f4c6d4> #<slack-user-message slack-user-message-156524f4b386> #<slack-user-message slack-user-message-156524f4a8ae> #<slack-user-message slack-user-message-1565254a2632> #<slack-user-message slack-user-message-1565254a124e> #<slack-user-message slack-user-message-156524ecfd2a> #<slack-user-message slack-user-message-156524ecfa14> #<slack-user-message slack-user-message-156524ecd2cc> #<slack-user-message slack-user-message-156524ed6f2a> #<slack-user-message slack-user-message-1565255a2174> #<slack-user-message slack-user-message-156524af7e54> #<slack-user-message slack-user-message-156524af7b8e> #<slack-user-message slack-user-message-156524a3b2a4> #<slack-user-message slack-user-message-156524a39e74> #<slack-user-message slack-user-message-156524a326d4> #<slack-user-message slack-user-message-156524e2ffb8> #<slack-user-message slack-user-message-156526592be2> #<slack-user-message slack-user-message-156526592936> #<slack-user-message slack-user-message-156526591638> #<slack-user-message slack-user-message-15652508bcf8> #<slack-user-message slack-user-message-15652508ba32> ...) nil t)
  apply(#f(compiled-function (this messages &optional filter-by-oldest not-tracked-p) #<bytecode -0x1f4558a0edf16c8f>) #<slack-message-buffer slack-message-buffer-15652555ca9e> ((#<slack-user-message slack-user-message-156525fbae66> #<slack-user-message slack-user-message-156525fb9768> #<slack-user-message slack-user-message-156525fb94bc> #<slack-user-message slack-user-message-156525fb81dc> #<slack-user-message slack-user-message-1565237332f4> #<slack-user-message slack-user-message-156523731f8e> #<slack-user-message slack-user-message-1565237313ca> #<slack-user-message slack-user-message-15652373110c> #<slack-user-message slack-user-message-15652372fd52> #<slack-user-message slack-user-message-156525d9bc3c> #<slack-user-message slack-user-message-156525d98c38> #<slack-user-message slack-user-message-156524386d42> #<slack-user-message slack-user-message-156524386a82> #<slack-user-message slack-user-message-156524383740> #<slack-user-message slack-user-message-15652635fafe> #<slack-user-message slack-user-message-15652635e5b4> #<slack-user-message slack-user-message-15652635cea0> #<slack-user-message slack-user-message-15652635bbb6> #<slack-user-message slack-user-message-15652635b8f6> #<slack-user-message slack-user-message-1565262b66ee> #<slack-user-message slack-user-message-1565262b47fa> #<slack-user-message slack-user-message-1565262b340c> #<slack-user-message slack-user-message-1565262b315e> #<slack-user-message slack-user-message-156525f8c11c> #<slack-user-message slack-user-message-1565251cea62> #<slack-user-message slack-user-message-1565251ccb86> #<slack-user-message slack-user-message-1565251cc8ca> #<slack-user-message slack-user-message-156524f4d4e2> #<slack-user-message slack-user-message-156524f4c982> #<slack-user-message slack-user-message-156524f4c6d4> #<slack-user-message slack-user-message-156524f4b386> #<slack-user-message slack-user-message-156524f4a8ae> #<slack-user-message slack-user-message-1565254a2632> #<slack-user-message slack-user-message-1565254a124e> #<slack-user-message slack-user-message-156524ecfd2a> #<slack-user-message slack-user-message-156524ecfa14> #<slack-user-message slack-user-message-156524ecd2cc> #<slack-user-message slack-user-message-156524ed6f2a> #<slack-user-message slack-user-message-1565255a2174> #<slack-user-message slack-user-message-156524af7e54> #<slack-user-message slack-user-message-156524af7b8e> #<slack-user-message slack-user-message-156524a3b2a4> #<slack-user-message slack-user-message-156524a39e74> #<slack-user-message slack-user-message-156524a326d4> #<slack-user-message slack-user-message-156524e2ffb8> #<slack-user-message slack-user-message-156526592be2> #<slack-user-message slack-user-message-156526592936> #<slack-user-message slack-user-message-156526591638> #<slack-user-message slack-user-message-15652508bcf8> #<slack-user-message slack-user-message-15652508ba32> ...) nil t))
  slack-buffer-insert-messages(#<slack-message-buffer slack-message-buffer-15652555ca9e> (#<slack-user-message slack-user-message-156525fbae66> #<slack-user-message slack-user-message-156525fb9768> #<slack-user-message slack-user-message-156525fb94bc> #<slack-user-message slack-user-message-156525fb81dc> #<slack-user-message slack-user-message-1565237332f4> #<slack-user-message slack-user-message-156523731f8e> #<slack-user-message slack-user-message-1565237313ca> #<slack-user-message slack-user-message-15652373110c> #<slack-user-message slack-user-message-15652372fd52> #<slack-user-message slack-user-message-156525d9bc3c> #<slack-user-message slack-user-message-156525d98c38> #<slack-user-message slack-user-message-156524386d42> #<slack-user-message slack-user-message-156524386a82> #<slack-user-message slack-user-message-156524383740> #<slack-user-message slack-user-message-15652635fafe> #<slack-user-message slack-user-message-15652635e5b4> #<slack-user-message slack-user-message-15652635cea0> #<slack-user-message slack-user-message-15652635bbb6> #<slack-user-message slack-user-message-15652635b8f6> #<slack-user-message slack-user-message-1565262b66ee> #<slack-user-message slack-user-message-1565262b47fa> #<slack-user-message slack-user-message-1565262b340c> #<slack-user-message slack-user-message-1565262b315e> #<slack-user-message slack-user-message-156525f8c11c> #<slack-user-message slack-user-message-1565251cea62> #<slack-user-message slack-user-message-1565251ccb86> #<slack-user-message slack-user-message-1565251cc8ca> #<slack-user-message slack-user-message-156524f4d4e2> #<slack-user-message slack-user-message-156524f4c982> #<slack-user-message slack-user-message-156524f4c6d4> #<slack-user-message slack-user-message-156524f4b386> #<slack-user-message slack-user-message-156524f4a8ae> #<slack-user-message slack-user-message-1565254a2632> #<slack-user-message slack-user-message-1565254a124e> #<slack-user-message slack-user-message-156524ecfd2a> #<slack-user-message slack-user-message-156524ecfa14> #<slack-user-message slack-user-message-156524ecd2cc> #<slack-user-message slack-user-message-156524ed6f2a> #<slack-user-message slack-user-message-1565255a2174> #<slack-user-message slack-user-message-156524af7e54> #<slack-user-message slack-user-message-156524af7b8e> #<slack-user-message slack-user-message-156524a3b2a4> #<slack-user-message slack-user-message-156524a39e74> #<slack-user-message slack-user-message-156524a326d4> #<slack-user-message slack-user-message-156524e2ffb8> #<slack-user-message slack-user-message-156526592be2> #<slack-user-message slack-user-message-156526592936> #<slack-user-message slack-user-message-156526591638> #<slack-user-message slack-user-message-15652508bcf8> #<slack-user-message slack-user-message-15652508ba32> ...) nil t)
  #f(compiled-function (cl--cnm this) #<bytecode -0x2bd55a704b3905d>)(#f(compiled-function (&rest args) #<bytecode -0x7fc6c1da920c9e4>) #<slack-message-buffer slack-message-buffer-15652555ca9e>)
  apply(#f(compiled-function (cl--cnm this) #<bytecode -0x2bd55a704b3905d>) #f(compiled-function (&rest args) #<bytecode -0x7fc6c1da920c9e4>) #<slack-message-buffer slack-message-buffer-15652555ca9e>)
  #f(compiled-function (this) #<bytecode -0x870cd75a3a25ca2>)(#<slack-message-buffer slack-message-buffer-15652555ca9e>)
  apply(#f(compiled-function (this) #<bytecode -0x870cd75a3a25ca2>) #<slack-message-buffer slack-message-buffer-15652555ca9e>)
  #f(compiled-function (&rest args) #<bytecode 0x2df53a74770ae14>)(#<slack-message-buffer slack-message-buffer-15652555ca9e>)
  apply(#f(compiled-function (&rest args) #<bytecode 0x2df53a74770ae14>) #<slack-message-buffer slack-message-buffer-15652555ca9e> nil)
  slack-buffer-init-buffer(#<slack-message-buffer slack-message-buffer-15652555ca9e>)
  (or (let ((buf (and (slot-boundp this 'buf) (eieio-oref this 'buf)))) (and (buffer-live-p buf) buf)) (slack-buffer-init-buffer this))
  (progn (or (let ((buf (and (slot-boundp this 'buf) (eieio-oref this 'buf)))) (and (buffer-live-p buf) buf)) (slack-buffer-init-buffer this)))
  (closure (t) (this) (progn (or (let ((buf (and ... ...))) (and (buffer-live-p buf) buf)) (slack-buffer-init-buffer this))))(#<slack-message-buffer slack-message-buffer-15652555ca9e>)
  apply((closure (t) (this) (progn (or (let ((buf (and ... ...))) (and (buffer-live-p buf) buf)) (slack-buffer-init-buffer this)))) #<slack-message-buffer slack-message-buffer-15652555ca9e>)
  #f(compiled-function (&rest args) #<bytecode -0x7fc6c1da920c9e4>)()
  #f(compiled-function (cl--cnm this) #<bytecode 0x9b497e9f2b66e07>)(#f(compiled-function (&rest args) #<bytecode -0x7fc6c1da920c9e4>) #<slack-message-buffer slack-message-buffer-15652555ca9e>)
  apply(#f(compiled-function (cl--cnm this) #<bytecode 0x9b497e9f2b66e07>) #f(compiled-function (&rest args) #<bytecode -0x7fc6c1da920c9e4>) #<slack-message-buffer slack-message-buffer-15652555ca9e>)
  #f(compiled-function (this) #<bytecode 0x139e64c1303ff5ba>)(#<slack-message-buffer slack-message-buffer-15652555ca9e>)
  apply(#f(compiled-function (this) #<bytecode 0x139e64c1303ff5ba>) #<slack-message-buffer slack-message-buffer-15652555ca9e> nil)
  slack-buffer-buffer(#<slack-message-buffer slack-message-buffer-15652555ca9e>)
  (funcall slack-buffer-function (slack-buffer-buffer this))
  (if slack-debug (funcall slack-buffer-function (slack-buffer-buffer this)) (condition-case err (funcall slack-buffer-function (slack-buffer-buffer this)) (error (progn (let* ((buf (and t ...))) (if buf (kill-buffer buf))) (condition-case nil (progn (slack-log (format "Backtrace: %S" ...) (slack-buffer-team this) :level 'error)) (error nil)) (signal (car err) (cdr err))))))
  (progn (if slack-debug (funcall slack-buffer-function (slack-buffer-buffer this)) (condition-case err (funcall slack-buffer-function (slack-buffer-buffer this)) (error (progn (let* ((buf ...)) (if buf (kill-buffer buf))) (condition-case nil (progn (slack-log ... ... :level ...)) (error nil)) (signal (car err) (cdr err)))))))
  (closure (t) (this) (progn (if slack-debug (funcall slack-buffer-function (slack-buffer-buffer this)) (condition-case err (funcall slack-buffer-function (slack-buffer-buffer this)) (error (progn (let* ... ...) (condition-case nil ... ...) (signal ... ...)))))))(#<slack-message-buffer slack-message-buffer-15652555ca9e>)
  apply((closure (t) (this) (progn (if slack-debug (funcall slack-buffer-function (slack-buffer-buffer this)) (condition-case err (funcall slack-buffer-function (slack-buffer-buffer this)) (error (progn (let* ... ...) (condition-case nil ... ...) (signal ... ...))))))) #<slack-message-buffer slack-message-buffer-15652555ca9e> nil)
  slack-buffer-display(#<slack-message-buffer slack-message-buffer-15652555ca9e>)
  slack-room-display(#<slack-im slack-im-156526212d12> #<slack-team slack-team-156525f886e4>)
  slack-select-rooms()

Expected behavior The chat buffer should open without errors :)

Environment:

reifieure commented 1 year ago

I've been encountering this as well, possibly there were EIEIO changes in Emacs' trunk.

The specific issue seems to be that (cl-call-next-method) is called when there isn't a next method, ex. in slack-message-body.

I'm not sure what the right solution is, but I'll experiment; it may be that (cl-call-next-method) needs arguments supplied, or it may need a (cl-next-method-p) guard before it's called.

reifieure commented 1 year ago

This is an Emacs bug. I'll see if I can get a minimal testcase and let them know.

ieure commented 1 year ago

This is the Emacs bug report: https://lists.gnu.org/archive/html/bug-gnu-emacs/2022-07/msg01456.html