Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various cl-no-applicable-method errors when trying to load forge #706

Closed
aspiers opened this issue Sep 22, 2024 · 12 comments
Closed

Various cl-no-applicable-method errors when trying to load forge #706

aspiers opened this issue Sep 22, 2024 · 12 comments
Labels
support User needs some help

Comments

@aspiers
Copy link

aspiers commented Sep 22, 2024

M-x load-library forge has stopped working after updating it to the latest main and updating various dependencies to their latest git versions:

Debugger entered--Lisp error: (cl-no-applicable-method initialize-instance #<transient-prefix transient-prefix-15664c1c1d70> (:command forge-post-dispatch))
  signal(cl-no-applicable-method (initialize-instance #<transient-prefix transient-prefix-15664c1c1d70> (:command forge-post-dispatch)))
  cl-no-applicable-method(#s(cl--generic :name initialize-instance :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 0x1fa9a8880f51243>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x1cba0b13a96764e4>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0x2b662d08469105e>)))) :method-table (#s(cl--generic-method :specializers (gh-oauth-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (gh-password-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (gh-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (emacsql-sqlite-builtin-connection) :qualifiers (:after) :call-con nil :function #f(compiled-function 
  apply(cl-no-applicable-method #s(cl--generic :name initialize-instance :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 0x1fa9a8880f51243>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x1cba0b13a96764e4>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0x2b662d08469105e>)))) :method-table (#s(cl--generic-method :specializers (gh-oauth-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (gh-password-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (gh-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (emacsql-sqlite-builtin-connection) :qualifiers (:after) :call-con nil :function #f(compiled-function 
  initialize-instance(#<transient-prefix transient-prefix-15664c1c1d70> (:command forge-post-dispatch))
  #f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object." #<bytecode -0xd78f3608de3c14a>)(transient-prefix :command forge-post-dispatch)
  apply(#f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object." #<bytecode -0xd78f3608de3c14a>) transient-prefix (:command forge-post-dispatch))
  make-instance(transient-prefix :command forge-post-dispatch)
  transient-prefix(:command forge-post-dispatch)
  (put 'forge-post-dispatch 'transient--prefix (transient-prefix :command 'forge-post-dispatch))
  load-with-code-conversion("/home/adam/.emacs.d/straight/build/forge/forge-pos..." "/home/adam/.emacs.d/straight/build/forge/forge-pos..." nil t)
  require(forge-post)
  load-with-code-conversion("/home/adam/.emacs.d/straight/build/forge/forge.el" "/home/adam/.emacs.d/straight/build/forge/forge.el" nil nil)
  load-library("/home/adam/.emacs.d/straight/build/forge/forge.el")
  funcall-interactively(load-library "/home/adam/.emacs.d/straight/build/forge/forge.el")
  command-execute(load-library record)
  execute-extended-command(nil "load-library" "load-lib")
  funcall-interactively(execute-extended-command nil "load-library" "load-lib")
  command-execute(execute-extended-command)

M-x magit-version RET returns:

Magit v3.3.0-1123-gec031e94, Transient 0.5.2, Forge 0.4.3, Git 2.43.0, Emacs 29.1, gnu/linux

I get a similar error if I launch a clean emacs -q, bootstrap straight.el, do M-x straight-use-package forge RET, and then M-x magit-status:

Debugger entered--Lisp error: (cl-no-applicable-method forge-get-repository :known?)
  signal(cl-no-applicable-method (forge-get-repository :known?))
  cl-no-applicable-method(#s(cl--generic :name forge-get-repository :dispatches ((1 #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x1cba0b13a96764e4>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0x2b662d08469105e>))) (0 #s(cl--generic-generalizer :name cl--generic-eql-generalizer :priority 100 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x1c36ff3453f6897c>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0xc2bce8c284e955a>)) #s(cl--generic-generalizer :name eieio--generic-generalizer :priority 50 :tagcode-function cl--generic-struct-tag :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x108e0a1cc0af08c3>)) #s(cl--generic-generalizer :name cl--generic-typeof-generalizer :priority 10 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x48dff7a0d9cb3a2>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0x1a9dc1d41e5b809c>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x1cba0b13a96764e4>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0x2b662d08469105e>)))) :method-table (#s(cl--generic-method :specializers (forge-topic) :qualifiers nil :call-con nil :function (closure (t) (topic) (progn (closql-get (forge-db) (eieio-oref topic ...) 'forge-repository)))) #s(cl--generic-method :specializers (forge-post) :qualifiers nil :call-con nil :function (closure (t) (post) (progn (forge-get-repository (forge-get-topic post))))) #s(cl--generic-method :specializers (null) :qualifiers nil :call-con nil :function (closure (t) (_ &optional noerror demand) (progn (if (and ... ...) (error "(Maybe repository) is nil; `%s' not satisfied" demand) nil)))) #s(cl--generic-method :specializers (forge-repository) :qualifiers nil :call-con nil :function (closure (t) (repo &optional noerror demand) (progn (progn (setq noerror ...) (let* ... ...))))) #s(cl--generic-method :specializers (list) :qualifiers nil :call-con nil :function (closure (t) (&rest --cl-rest--) "((HOST OWNER NAME) &optional REMOTE DEMAND)\n\nRetur..." (progn (let* (... ... ... ... ... ...) (progn ... ... ... ... ... ...))))) #s(cl--generic-method :specializers (string) :qualifiers nil :call-con nil :function (closure (t) (url &optional remote demand) "Return the repository at URL." (progn (let* (...) (if parts ... ...))))) #s(cl--generic-method :specializers (symbol) :qualifiers nil :call-con nil :function (closure (t) (demand &optional remote notatpt) "Return the current forge repository.\n\nFirst check ..." (progn (or (let* ... ...) (let* ... ...) (if magit--refresh-cache ... ...))))) #s(cl--generic-method :specializers ((eql :dir) t) :qualifiers nil :call-con nil :function (closure (t) (_ dir) (progn (let (... ... ...) (forge-get-repository :stub? nil ...))))) #s(cl--generic-method :specializers ((eql :id) t) :qualifiers nil :call-con nil :function (closure (t) (_ id) (progn (closql-get (forge-db) (substring-no-properties id) 'forge-repository))))) :options nil) :known?)
  apply(cl-no-applicable-method #s(cl--generic :name forge-get-repository :dispatches ((1 #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x1cba0b13a96764e4>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0x2b662d08469105e>))) (0 #s(cl--generic-generalizer :name cl--generic-eql-generalizer :priority 100 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x1c36ff3453f6897c>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0xc2bce8c284e955a>)) #s(cl--generic-generalizer :name eieio--generic-generalizer :priority 50 :tagcode-function cl--generic-struct-tag :specializers-function #f(compiled-function (tag &rest _) #<bytecode 0x108e0a1cc0af08c3>)) #s(cl--generic-generalizer :name cl--generic-typeof-generalizer :priority 10 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x48dff7a0d9cb3a2>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0x1a9dc1d41e5b809c>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x1cba0b13a96764e4>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0x2b662d08469105e>)))) :method-table (#s(cl--generic-method :specializers (forge-topic) :qualifiers nil :call-con nil :function (closure (t) (topic) (progn (closql-get (forge-db) (eieio-oref topic ...) 'forge-repository)))) #s(cl--generic-method :specializers (forge-post) :qualifiers nil :call-con nil :function (closure (t) (post) (progn (forge-get-repository (forge-get-topic post))))) #s(cl--generic-method :specializers (null) :qualifiers nil :call-con nil :function (closure (t) (_ &optional noerror demand) (progn (if (and ... ...) (error "(Maybe repository) is nil; `%s' not satisfied" demand) nil)))) #s(cl--generic-method :specializers (forge-repository) :qualifiers nil :call-con nil :function (closure (t) (repo &optional noerror demand) (progn (progn (setq noerror ...) (let* ... ...))))) #s(cl--generic-method :specializers (list) :qualifiers nil :call-con nil :function (closure (t) (&rest --cl-rest--) "((HOST OWNER NAME) &optional REMOTE DEMAND)\n\nRetur..." (progn (let* (... ... ... ... ... ...) (progn ... ... ... ... ... ...))))) #s(cl--generic-method :specializers (string) :qualifiers nil :call-con nil :function (closure (t) (url &optional remote demand) "Return the repository at URL." (progn (let* (...) (if parts ... ...))))) #s(cl--generic-method :specializers (symbol) :qualifiers nil :call-con nil :function (closure (t) (demand &optional remote notatpt) "Return the current forge repository.\n\nFirst check ..." (progn (or (let* ... ...) (let* ... ...) (if magit--refresh-cache ... ...))))) #s(cl--generic-method :specializers ((eql :dir) t) :qualifiers nil :call-con nil :function (closure (t) (_ dir) (progn (let (... ... ...) (forge-get-repository :stub? nil ...))))) #s(cl--generic-method :specializers ((eql :id) t) :qualifiers nil :call-con nil :function (closure (t) (_ id) (progn (closql-get (forge-db) (substring-no-properties id) 'forge-repository))))) :options nil) :known?)
  forge-get-repository(:known?)
  (and t (forge-get-repository :known?))
  (let* ((repo (and t (forge-get-repository :known?)))) (if repo (progn (setq forge-buffer-repository (eieio-oref repo 'id)))))
  (if forge-buffer-repository nil (let* ((repo (and t (forge-get-repository :known?)))) (if repo (progn (setq forge-buffer-repository (eieio-oref repo 'id))))))
  forge-set-buffer-repository()
  run-hooks(change-major-mode-after-body-hook special-mode-hook magit-section-mode-hook magit-mode-hook magit-status-mode-hook)
  apply(run-hooks (change-major-mode-after-body-hook special-mode-hook magit-section-mode-hook magit-mode-hook magit-status-mode-hook))
  run-mode-hooks(magit-status-mode-hook)
  magit-status-mode()
  funcall(magit-status-mode)
  (save-current-buffer (set-buffer buffer) (setq magit-previous-section section) (if directory (progn (setq default-directory directory))) (funcall mode) (magit-xref-setup #'magit-setup-buffer-internal bindings) (let ((tail bindings)) (while tail (let ((x12 (car tail))) (progn (ignore (consp x12)) (let* ((x13 ...) (x14 ...)) (progn (ignore ...) (let* ... ...)))) (setq tail (cdr tail))))) (if created (progn (run-hooks 'magit-create-buffer-hook))))
  (let* ((value (and locked (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ...) (and ... ...)))))) (buffer (if buffer-or-name (get-buffer-create buffer-or-name) (magit-get-mode-buffer mode value))) (section (and buffer (magit-current-section))) (created (not buffer))) (if buffer nil (setq buffer (magit-generate-new-buffer mode value))) (save-current-buffer (set-buffer buffer) (setq magit-previous-section section) (if directory (progn (setq default-directory directory))) (funcall mode) (magit-xref-setup #'magit-setup-buffer-internal bindings) (let ((tail bindings)) (while tail (let ((x12 (car tail))) (progn (ignore (consp x12)) (let* (... ...) (progn ... ...))) (setq tail (cdr tail))))) (if created (progn (run-hooks 'magit-create-buffer-hook)))) (magit-display-buffer buffer) (save-current-buffer (set-buffer buffer) (run-hooks 'magit-setup-buffer-hook) (magit-refresh-buffer) (if created (progn (run-hooks 'magit-post-create-buffer-hook)))) buffer)
  magit-setup-buffer-internal(magit-status-mode nil ((magit-buffer-diff-args ("--no-ext-diff")) (magit-buffer-diff-files nil) (magit-buffer-log-args ("-n256" "--decorate")) (magit-buffer-log-files nil)))
  (let* ((default-directory directory) (d (magit-diff--get-value 'magit-status-mode magit-status-use-buffer-arguments)) (l (magit-log--get-value 'magit-status-mode magit-status-use-buffer-arguments)) (file (and magit-status-goto-file-position (magit-file-relative-name))) (line (and file (save-restriction (widen) (line-number-at-pos)))) (col (and file (save-restriction (widen) (current-column)))) (buf (magit-setup-buffer-internal #'magit-status-mode nil (list (list 'magit-buffer-diff-args (nth 0 d)) (list 'magit-buffer-diff-files (nth 1 d)) (list 'magit-buffer-log-args (nth 0 l)) (list 'magit-buffer-log-files (nth 1 l)))))) (if file (progn (save-current-buffer (set-buffer buf) (let ((staged (magit-get-section ...))) (if (and staged (car ...)) (magit-diff--goto-position file line col staged) (let (...) (if ... nil ...))))))) buf)
  magit-status-setup-buffer("/home/adam/.GIT/emacs/.emacs.d/init...")
  (if directory (let ((toplevel (magit-toplevel directory))) (setq directory (file-name-as-directory (expand-file-name directory))) (if (and toplevel (file-equal-p directory toplevel)) (magit-status-setup-buffer directory) (if (y-or-n-p (if toplevel (format "%s is a repository.  Create another in %s? " toplevel directory) (format "Create repository in %s? " directory))) (progn (setq magit--refresh-cache nil) (magit-init directory))))) (magit-status-setup-buffer default-directory))
  (let ((magit--refresh-cache (or cache (list (cons 0 0))))) (if directory (let ((toplevel (magit-toplevel directory))) (setq directory (file-name-as-directory (expand-file-name directory))) (if (and toplevel (file-equal-p directory toplevel)) (magit-status-setup-buffer directory) (if (y-or-n-p (if toplevel (format "%s is a repository.  Create another in %s? " toplevel directory) (format "Create repository in %s? " directory))) (progn (setq magit--refresh-cache nil) (magit-init directory))))) (magit-status-setup-buffer default-directory)))
  magit-status(nil ((4 . 5) (("/home/adam/.GIT/emacs/.emacs.d/init..." . magit-toplevel) . "/home/adam/.GIT/emacs/") (("/home/adam/.GIT/emacs/" "rev-parse" "--show-toplevel") . "/home/adam/.GIT/emacs") (("/home/adam/.GIT/emacs/" "rev-parse" "--show-cdup") . "") (("/home/adam/.GIT/emacs/.emacs.d/init..." "rev-parse" "--show-cdup") . "../../") (("/home/adam/.GIT/emacs/.emacs.d/init..." "rev-parse" "--show-toplevel") . "/home/adam/.GIT/emacs")))
  funcall-interactively(magit-status nil ((4 . 5) (("/home/adam/.GIT/emacs/.emacs.d/init..." . magit-toplevel) . "/home/adam/.GIT/emacs/") (("/home/adam/.GIT/emacs/" "rev-parse" "--show-toplevel") . "/home/adam/.GIT/emacs") (("/home/adam/.GIT/emacs/" "rev-parse" "--show-cdup") . "") (("/home/adam/.GIT/emacs/.emacs.d/init..." "rev-parse" "--show-cdup") . "../../") (("/home/adam/.GIT/emacs/.emacs.d/init..." "rev-parse" "--show-toplevel") . "/home/adam/.GIT/emacs")))
  command-execute(magit-status record)
  execute-extended-command(nil "magit-status" nil)
  funcall-interactively(execute-extended-command nil "magit-status" nil)
  command-execute(execute-extended-command)
@aspiers
Copy link
Author

aspiers commented Sep 22, 2024

If I then try to load forge*.el manually from source, I get:

Load error for /home/adam/.emacs.d/straight/repos/forge/lisp/forge-bitbucket.el:
(error forge-topic-mark-read is already defined as something else than a generic function)
Load error for /home/adam/.emacs.d/straight/repos/forge/lisp/forge-commands.el:
(error forge-topic-mark-read is already defined as something else than a generic function)
Load error for /home/adam/.emacs.d/straight/repos/forge/lisp/forge-core.el:
(error forge-topic-mark-read is already defined as something else than a generic function)
Load error for /home/adam/.emacs.d/straight/repos/forge/lisp/forge.el:
(error forge-topic-mark-read is already defined as something else than a generic function)
Load error for /home/adam/.emacs.d/straight/repos/forge/lisp/forge-gitea.el:
(error forge-topic-mark-read is already defined as something else than a generic function)
Load error for /home/adam/.emacs.d/straight/repos/forge/lisp/forge-github.el:
(error forge-topic-mark-read is already defined as something else than a generic function)
Load error for /home/adam/.emacs.d/straight/repos/forge/lisp/forge-gitlab.el:
(error forge-topic-mark-read is already defined as something else than a generic function)
Load error for /home/adam/.emacs.d/straight/repos/forge/lisp/forge-gogs.el:
(error forge-topic-mark-read is already defined as something else than a generic function)

and so on. If I do C-h f forge-topic-mark-read RET then I see:

forge-topic-mark-read is an alias for ‘dummy’, which is not defined.

Not documented.


This is a generic function.

Implementations:

(forge-topic-mark-read (TOPIC forge-topic))
Undocumented

[back]

I've search high and low for where this might be getting defined, but can't find it. I even removed a bunch of .elc and .eln files to make sure it wasn't some old compilation artifacts getting in the way, but that didn't help.

@aspiers
Copy link
Author

aspiers commented Sep 22, 2024

Here are some more:

Debugger entered--Lisp error: (cl-no-applicable-method initialize-instance #<magit-section nil [nil] nil-nil> (:type status))
  signal(cl-no-applicable-method (initialize-instance #<magit-section nil [nil] nil-nil> (:type status)))
  cl-no-applicable-method(#s(cl--generic :name initialize-instance :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 -0xb8427526d83ccfd>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x1cba0b13a96764e4>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0x2b662d08469105e>)))) :method-table (#s(cl--generic-method :specializers (gh-oauth-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (gh-password-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (gh-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (emacsql-sqlite-builtin-connection) :qualifiers (:after) :call-con nil :function #f(compiled-function 
  apply(cl-no-applicable-method #s(cl--generic :name initialize-instance :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 -0xb8427526d83ccfd>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x1cba0b13a96764e4>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0x2b662d08469105e>)))) :method-table (#s(cl--generic-method :specializers (gh-oauth-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (gh-password-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (gh-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (emacsql-sqlite-builtin-connection) :qualifiers (:after) :call-con nil :function #f(compiled-function 
  initialize-instance(#<magit-section nil [nil] nil-nil> (:type status))
  #f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object." #<bytecode 0xb0dfddf8e1c3ec2>)(magit-section :type status)
  apply(#f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object." #<bytecode 0xb0dfddf8e1c3ec2>) magit-section (:type status))
  make-instance(magit-section :type status)
  magit-section(:type status)
  magit-insert-section--create(status nil nil)
  (let* ((section57 (magit-insert-section--create 'status nil nil)) (magit-insert-section--current section57) (magit-insert-section--oldroot (or magit-insert-section--oldroot (and (not magit-insert-section--parent) (prog1 magit-root-section (setq magit-root-section section57))))) (magit-insert-section--parent section57)) (catch 'cancel-section (magit-run-section-hook 'magit-status-sections-hook) (magit-insert-section--finish section57)) section57)
  magit-status-refresh-buffer()
  funcall(magit-status-refresh-buffer)
  (save-excursion (funcall refresh))
  (let ((inhibit-read-only t)) (erase-buffer) (save-excursion (funcall refresh)))
  (let* ((buffer (current-buffer)) (windows (cl-mapcan #'(lambda (window) (let (...) (save-current-buffer ...))) (or (nreverse (get-buffer-window-list buffer nil t)) (list (selected-window)))))) (deactivate-mark) (setq magit-section-pre-command-section nil) (setq magit-section-highlight-overlays nil) (setq magit-section-highlighted-sections nil) (setq magit-section-unhighlight-sections nil) (let ((inhibit-read-only t)) (erase-buffer) (save-excursion (funcall refresh))) (let ((tail windows)) (while tail (let ((x364 (car tail))) (progn (ignore (consp x364)) (let* ((x365 ...) (x366 ...)) (let (... ...) (if ... ... ...)))) (setq tail (cdr tail))))) (run-hooks 'magit-refresh-buffer-hook) (magit-section-update-highlight) (set-buffer-modified-p nil))
  (progn (if magit-refresh-verbose (progn (message "Refreshing buffer `%s'..." (buffer-name)))) (let* ((buffer (current-buffer)) (windows (cl-mapcan #'(lambda (window) (let ... ...)) (or (nreverse (get-buffer-window-list buffer nil t)) (list (selected-window)))))) (deactivate-mark) (setq magit-section-pre-command-section nil) (setq magit-section-highlight-overlays nil) (setq magit-section-highlighted-sections nil) (setq magit-section-unhighlight-sections nil) (let ((inhibit-read-only t)) (erase-buffer) (save-excursion (funcall refresh))) (let ((tail windows)) (while tail (let ((x364 (car tail))) (progn (ignore (consp x364)) (let* (... ...) (let ... ...))) (setq tail (cdr tail))))) (run-hooks 'magit-refresh-buffer-hook) (magit-section-update-highlight) (set-buffer-modified-p nil)) (if magit-refresh-verbose (progn (message "Refreshing buffer `%s'...done (%.3fs)" (buffer-name) (float-time (time-since magit-refresh-start-time))))))
  (if (functionp refresh) (progn (if magit-refresh-verbose (progn (message "Refreshing buffer `%s'..." (buffer-name)))) (let* ((buffer (current-buffer)) (windows (cl-mapcan #'(lambda ... ...) (or (nreverse ...) (list ...))))) (deactivate-mark) (setq magit-section-pre-command-section nil) (setq magit-section-highlight-overlays nil) (setq magit-section-highlighted-sections nil) (setq magit-section-unhighlight-sections nil) (let ((inhibit-read-only t)) (erase-buffer) (save-excursion (funcall refresh))) (let ((tail windows)) (while tail (let ((x364 ...)) (progn (ignore ...) (let* ... ...)) (setq tail (cdr tail))))) (run-hooks 'magit-refresh-buffer-hook) (magit-section-update-highlight) (set-buffer-modified-p nil)) (if magit-refresh-verbose (progn (message "Refreshing buffer `%s'...done (%.3fs)" (buffer-name) (float-time (time-since magit-refresh-start-time)))))))
  (let ((refresh (intern (format "%s-refresh-buffer" (substring (symbol-name major-mode) 0 -5)))) (magit--refresh-cache (or magit--refresh-cache (list (cons 0 0))))) (if (functionp refresh) (progn (if magit-refresh-verbose (progn (message "Refreshing buffer `%s'..." (buffer-name)))) (let* ((buffer (current-buffer)) (windows (cl-mapcan #'... (or ... ...)))) (deactivate-mark) (setq magit-section-pre-command-section nil) (setq magit-section-highlight-overlays nil) (setq magit-section-highlighted-sections nil) (setq magit-section-unhighlight-sections nil) (let ((inhibit-read-only t)) (erase-buffer) (save-excursion (funcall refresh))) (let ((tail windows)) (while tail (let (...) (progn ... ...) (setq tail ...)))) (run-hooks 'magit-refresh-buffer-hook) (magit-section-update-highlight) (set-buffer-modified-p nil)) (if magit-refresh-verbose (progn (message "Refreshing buffer `%s'...done (%.3fs)" (buffer-name) (float-time (time-since magit-refresh-start-time))))))))
  magit-refresh-buffer()
  (cond ((derived-mode-p 'magit-mode) (magit-refresh-buffer)) ((derived-mode-p 'tabulated-list-mode) (revert-buffer)))
  (let ((start (current-time)) (magit--refresh-cache (or magit--refresh-cache (list (cons 0 0))))) (if magit-refresh-verbose (progn (message "Refreshing magit..."))) (magit-run-hook-with-benchmark 'magit-pre-refresh-hook) (cond ((derived-mode-p 'magit-mode) (magit-refresh-buffer)) ((derived-mode-p 'tabulated-list-mode) (revert-buffer))) (let* ((buffer (and t (and magit-refresh-status-buffer (not (derived-mode-p ...)) (magit-get-mode-buffer 'magit-status-mode))))) (if buffer (save-current-buffer (set-buffer buffer) (magit-refresh-buffer)) nil)) (magit-run-hook-with-benchmark 'magit-post-refresh-hook) (if magit-refresh-verbose (progn (let* ((c (car (car magit--refresh-cache))) (a (+ c (cdr ...)))) (message "Refreshing magit...done (%.3fs, cached %s/%s (%.0f..." (float-time (time-since start)) c a (* (/ c (* a 1.0)) 100))))))
  (unwind-protect (let ((start (current-time)) (magit--refresh-cache (or magit--refresh-cache (list (cons 0 0))))) (if magit-refresh-verbose (progn (message "Refreshing magit..."))) (magit-run-hook-with-benchmark 'magit-pre-refresh-hook) (cond ((derived-mode-p 'magit-mode) (magit-refresh-buffer)) ((derived-mode-p 'tabulated-list-mode) (revert-buffer))) (let* ((buffer (and t (and magit-refresh-status-buffer (not ...) (magit-get-mode-buffer ...))))) (if buffer (save-current-buffer (set-buffer buffer) (magit-refresh-buffer)) nil)) (magit-run-hook-with-benchmark 'magit-post-refresh-hook) (if magit-refresh-verbose (progn (let* ((c (car ...)) (a (+ c ...))) (message "Refreshing magit...done (%.3fs, cached %s/%s (%.0f..." (float-time (time-since start)) c a (* (/ c ...) 100)))))) (run-hooks 'magit-unwind-refresh-hook))
  (if magit-inhibit-refresh nil (unwind-protect (let ((start (current-time)) (magit--refresh-cache (or magit--refresh-cache (list (cons 0 0))))) (if magit-refresh-verbose (progn (message "Refreshing magit..."))) (magit-run-hook-with-benchmark 'magit-pre-refresh-hook) (cond ((derived-mode-p 'magit-mode) (magit-refresh-buffer)) ((derived-mode-p 'tabulated-list-mode) (revert-buffer))) (let* ((buffer (and t (and magit-refresh-status-buffer ... ...)))) (if buffer (save-current-buffer (set-buffer buffer) (magit-refresh-buffer)) nil)) (magit-run-hook-with-benchmark 'magit-post-refresh-hook) (if magit-refresh-verbose (progn (let* ((c ...) (a ...)) (message "Refreshing magit...done (%.3fs, cached %s/%s (%.0f..." (float-time ...) c a (* ... 100)))))) (run-hooks 'magit-unwind-refresh-hook)))
  magit-refresh()
  funcall-interactively(magit-refresh)
  command-execute(magit-refresh)
Debugger entered--Lisp error: (cl-no-applicable-method initialize-instance #<emacsql-sqlite-builtin-connection emacsql-sqlite-builtin-connection-15573ee71ee2> (:file "/home/adam/.emacs.d/forge-database.sqlite"))
  signal(cl-no-applicable-method (initialize-instance #<emacsql-sqlite-builtin-connection emacsql-sqlite-builtin-connection-15573ee71ee2> (:file "/home/adam/.emacs.d/forge-database.sqlite")))
  cl-no-applicable-method(#s(cl--generic :name initialize-instance :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 -0xb8427526d83ccfd>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x1cba0b13a96764e4>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0x2b662d08469105e>)))) :method-table (#s(cl--generic-method :specializers (gh-oauth-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (gh-password-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (gh-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (emacsql-sqlite-builtin-connection) :qualifiers (:after) :call-con nil :function #f(compiled-function 
  apply(cl-no-applicable-method #s(cl--generic :name initialize-instance :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 -0xb8427526d83ccfd>)) #s(cl--generic-generalizer :name cl--generic-t-generalizer :priority 0 :tagcode-function #f(compiled-function (name &rest _) #<bytecode -0x1cba0b13a96764e4>) :specializers-function #f(compiled-function (tag &rest _) #<bytecode -0x2b662d08469105e>)))) :method-table (#s(cl--generic-method :specializers (gh-oauth-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (gh-password-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (gh-authenticator) :qualifiers nil :call-con curried :function (closure (t) (cl--nm) (let ((cl--nmp ...)) #'(lambda ... "\n\n(fn AUTH &rest ARGS)" ...)))) #s(cl--generic-method :specializers (emacsql-sqlite-builtin-connection) :qualifiers (:after) :call-con nil :function #f(compiled-function 
  initialize-instance(#<emacsql-sqlite-builtin-connection emacsql-sqlite-builtin-connection-15573ee71ee2> (:file "/home/adam/.emacs.d/forge-database.sqlite"))
  #f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object." #<bytecode 0xb0dfddf8e1c3ec2>)(emacsql-sqlite-builtin-connection :file "/home/adam/.emacs.d/forge-database.sqlite")
  apply(#f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method is called when an object is constructed.\nIt allocates the vector used to represent an EIEIO object, and then\ncalls `initialize-instance' on that object." #<bytecode 0xb0dfddf8e1c3ec2>) emacsql-sqlite-builtin-connection (:file "/home/adam/.emacs.d/forge-database.sqlite"))
  make-instance(emacsql-sqlite-builtin-connection :file "/home/adam/.emacs.d/forge-database.sqlite")
  #f(compiled-function (class &optional livep connection-class) #<bytecode 0x19beb641b4af74a0>)(forge-database nil nil)
  apply(#f(compiled-function (class &optional livep connection-class) #<bytecode 0x19beb641b4af74a0>) forge-database (nil nil))
  closql-db(forge-database nil nil)
  forge-db()
  (apply #'emacsql (forge-db) sql args)
  (if (stringp sql) (emacsql (forge-db) (apply #'format sql args)) (apply #'emacsql (forge-db) sql args))
  forge-sql([:select * :from repository :where (and (= forge $s1) (= owner $s2) (= name $s3))] "github.com" "magit" "closql")
  (car (forge-sql [:select * :from repository :where (and (= forge $s1) (= owner $s2) (= name $s3))] webhost owner name))
  (let* ((row (car (forge-sql [:select * :from repository :where (and (= forge $s1) (= owner $s2) (= name $s3))] webhost owner name))) (obj (and row (closql--remake-instance class (forge-db) row)))) (if obj (progn (eieio-oset obj 'apihost apihost) (eieio-oset obj 'githost githost) (eieio-oset obj 'remote remote))) (let* ((val (list demand (and obj (eq (eieio-oref obj ...) :tracked))))) (if (consp val) (let* ((x2194 (car-safe val))) (cond ((eq x2194 :tracked?) (let* (...) (if ... ...))) ((eq x2194 :tracked) (let* (...) (if ... ...))))))) (if (and (memq demand '(:insert! :valid? :stub :stub?)) (not obj)) (progn (let* ((val (forge--repository-ids class webhost owner name (memq demand ...) (eq demand :valid?)))) (progn (ignore (consp val)) (let* ((x2201 ...) (x2202 ...)) (let (... ...) (if ... ... ...))))))) obj)
  (let ((githost x2186) (apihost x2188) (webhost x2190) (class x2192)) (let* ((row (car (forge-sql [:select * :from repository :where (and ... ... ...)] webhost owner name))) (obj (and row (closql--remake-instance class (forge-db) row)))) (if obj (progn (eieio-oset obj 'apihost apihost) (eieio-oset obj 'githost githost) (eieio-oset obj 'remote remote))) (let* ((val (list demand (and obj (eq ... :tracked))))) (if (consp val) (let* ((x2194 (car-safe val))) (cond ((eq x2194 :tracked?) (let* ... ...)) ((eq x2194 :tracked) (let* ... ...)))))) (if (and (memq demand '(:insert! :valid? :stub :stub?)) (not obj)) (progn (let* ((val (forge--repository-ids class webhost owner name ... ...))) (progn (ignore (consp val)) (let* (... ...) (let ... ...)))))) obj))
  (progn (ignore (null x2193)) (let ((githost x2186) (apihost x2188) (webhost x2190) (class x2192)) (let* ((row (car (forge-sql [:select * :from repository :where ...] webhost owner name))) (obj (and row (closql--remake-instance class (forge-db) row)))) (if obj (progn (eieio-oset obj 'apihost apihost) (eieio-oset obj 'githost githost) (eieio-oset obj 'remote remote))) (let* ((val (list demand (and obj ...)))) (if (consp val) (let* ((x2194 ...)) (cond (... ...) (... ...))))) (if (and (memq demand '(:insert! :valid? :stub :stub?)) (not obj)) (progn (let* ((val ...)) (progn (ignore ...) (let* ... ...))))) obj)))
  (let* ((x2192 (car-safe x2191)) (x2193 (cdr-safe x2191))) (progn (ignore (null x2193)) (let ((githost x2186) (apihost x2188) (webhost x2190) (class x2192)) (let* ((row (car (forge-sql ... webhost owner name))) (obj (and row (closql--remake-instance class ... row)))) (if obj (progn (eieio-oset obj 'apihost apihost) (eieio-oset obj 'githost githost) (eieio-oset obj 'remote remote))) (let* ((val (list demand ...))) (if (consp val) (let* (...) (cond ... ...)))) (if (and (memq demand '...) (not obj)) (progn (let* (...) (progn ... ...)))) obj))))
  (progn (ignore (consp x2191)) (let* ((x2192 (car-safe x2191)) (x2193 (cdr-safe x2191))) (progn (ignore (null x2193)) (let ((githost x2186) (apihost x2188) (webhost x2190) (class x2192)) (let* ((row (car ...)) (obj (and row ...))) (if obj (progn (eieio-oset obj ... apihost) (eieio-oset obj ... githost) (eieio-oset obj ... remote))) (let* ((val ...)) (if (consp val) (let* ... ...))) (if (and (memq demand ...) (not obj)) (progn (let* ... ...))) obj)))))
  (let* ((x2190 (car-safe x2189)) (x2191 (cdr-safe x2189))) (progn (ignore (consp x2191)) (let* ((x2192 (car-safe x2191)) (x2193 (cdr-safe x2191))) (progn (ignore (null x2193)) (let ((githost x2186) (apihost x2188) (webhost x2190) (class x2192)) (let* ((row ...) (obj ...)) (if obj (progn ... ... ...)) (let* (...) (if ... ...)) (if (and ... ...) (progn ...)) obj))))))
  (progn (ignore (consp x2189)) (let* ((x2190 (car-safe x2189)) (x2191 (cdr-safe x2189))) (progn (ignore (consp x2191)) (let* ((x2192 (car-safe x2191)) (x2193 (cdr-safe x2191))) (progn (ignore (null x2193)) (let ((githost x2186) (apihost x2188) (webhost x2190) (class x2192)) (let* (... ...) (if obj ...) (let* ... ...) (if ... ...) obj)))))))
  (let* ((x2188 (car-safe x2187)) (x2189 (cdr-safe x2187))) (progn (ignore (consp x2189)) (let* ((x2190 (car-safe x2189)) (x2191 (cdr-safe x2189))) (progn (ignore (consp x2191)) (let* ((x2192 (car-safe x2191)) (x2193 (cdr-safe x2191))) (progn (ignore (null x2193)) (let (... ... ... ...) (let* ... ... ... ... obj))))))))
  (progn (ignore (consp x2187)) (let* ((x2188 (car-safe x2187)) (x2189 (cdr-safe x2187))) (progn (ignore (consp x2189)) (let* ((x2190 (car-safe x2189)) (x2191 (cdr-safe x2189))) (progn (ignore (consp x2191)) (let* ((x2192 ...) (x2193 ...)) (progn (ignore ...) (let ... ...))))))))
  (let* ((x2186 (car-safe spec)) (x2187 (cdr-safe spec))) (progn (ignore (consp x2187)) (let* ((x2188 (car-safe x2187)) (x2189 (cdr-safe x2187))) (progn (ignore (consp x2189)) (let* ((x2190 (car-safe x2189)) (x2191 (cdr-safe x2189))) (progn (ignore (consp x2191)) (let* (... ...) (progn ... ...))))))))
  (progn (ignore (consp spec)) (let* ((x2186 (car-safe spec)) (x2187 (cdr-safe spec))) (progn (ignore (consp x2187)) (let* ((x2188 (car-safe x2187)) (x2189 (cdr-safe x2187))) (progn (ignore (consp x2189)) (let* ((x2190 ...) (x2191 ...)) (progn (ignore ...) (let* ... ...))))))))
  (if spec (progn (ignore (consp spec)) (let* ((x2186 (car-safe spec)) (x2187 (cdr-safe spec))) (progn (ignore (consp x2187)) (let* ((x2188 (car-safe x2187)) (x2189 (cdr-safe x2187))) (progn (ignore (consp x2189)) (let* (... ...) (progn ... ...))))))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  No entry for %..." host 'forge-alist))))
  (let* ((spec (and t (forge--get-forge-host host t)))) (if spec (progn (ignore (consp spec)) (let* ((x2186 (car-safe spec)) (x2187 (cdr-safe spec))) (progn (ignore (consp x2187)) (let* ((x2188 ...) (x2189 ...)) (progn (ignore ...) (let* ... ...)))))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  No entry for %..." host 'forge-alist)))))
  (progn (if --cl-rest-- (signal 'wrong-number-of-arguments (list nil (+ 3 (length --cl-rest--))))) (setq host (substring-no-properties host)) (setq owner (substring-no-properties owner)) (setq name (substring-no-properties name)) (if (memq demand '(:tracked :tracked? :known? :insert! :valid? :stub :stub?)) nil (let* ((new (and t (cond (... ...) (... ...) (... ...) (... ...) (... ...) (... ...))))) (if new (progn (message "Obsolete value for `%s's DEMAND: `%s'; use `%s' in..." 'forge-get-repository demand new) (setq demand new)) (error "Unknown value for `%s's DEMAND: `%s'" 'forge-get-repository demand)))) (let* ((spec (and t (forge--get-forge-host host t)))) (if spec (progn (ignore (consp spec)) (let* ((x2186 (car-safe spec)) (x2187 (cdr-safe spec))) (progn (ignore (consp x2187)) (let* (... ...) (progn ... ...))))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  No entry for %..." host 'forge-alist))))))
  (let* ((--cl-rest-- (if --cl-rest-- (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--))))) (host (if (= (length --cl-rest--) 3) (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--))))) (owner (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--))))) (name (car-safe --cl-rest--)) (remote (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--))))) (demand (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))))) (progn (if --cl-rest-- (signal 'wrong-number-of-arguments (list nil (+ 3 (length --cl-rest--))))) (setq host (substring-no-properties host)) (setq owner (substring-no-properties owner)) (setq name (substring-no-properties name)) (if (memq demand '(:tracked :tracked? :known? :insert! :valid? :stub :stub?)) nil (let* ((new (and t (cond ... ... ... ... ... ...)))) (if new (progn (message "Obsolete value for `%s's DEMAND: `%s'; use `%s' in..." 'forge-get-repository demand new) (setq demand new)) (error "Unknown value for `%s's DEMAND: `%s'" 'forge-get-repository demand)))) (let* ((spec (and t (forge--get-forge-host host t)))) (if spec (progn (ignore (consp spec)) (let* ((x2186 ...) (x2187 ...)) (progn (ignore ...) (let* ... ...)))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  No entry for %..." host 'forge-alist)))))))
  (progn (let* ((--cl-rest-- (if --cl-rest-- (car-safe (prog1 --cl-rest-- (setq --cl-rest-- ...))) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--))))) (host (if (= (length --cl-rest--) 3) (car-safe (prog1 --cl-rest-- (setq --cl-rest-- ...))) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--))))) (owner (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--))))) (name (car-safe --cl-rest--)) (remote (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--))))) (demand (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))))) (progn (if --cl-rest-- (signal 'wrong-number-of-arguments (list nil (+ 3 (length --cl-rest--))))) (setq host (substring-no-properties host)) (setq owner (substring-no-properties owner)) (setq name (substring-no-properties name)) (if (memq demand '(:tracked :tracked? :known? :insert! :valid? :stub :stub?)) nil (let* ((new (and t ...))) (if new (progn (message "Obsolete value for `%s's DEMAND: `%s'; use `%s' in..." ... demand new) (setq demand new)) (error "Unknown value for `%s's DEMAND: `%s'" 'forge-get-repository demand)))) (let* ((spec (and t (forge--get-forge-host host t)))) (if spec (progn (ignore (consp spec)) (let* (... ...) (progn ... ...))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  No entry for %..." host ...))))))))
  (closure (t) (&rest --cl-rest--) "((HOST OWNER NAME) &optional REMOTE DEMAND)\n\nRetur..." (progn (let* ((--cl-rest-- (if --cl-rest-- (car-safe ...) (signal ... ...))) (host (if (= ... 3) (car-safe ...) (signal ... ...))) (owner (car-safe (prog1 --cl-rest-- ...))) (name (car-safe --cl-rest--)) (remote (car-safe (prog1 --cl-rest-- ...))) (demand (car-safe (prog1 --cl-rest-- ...)))) (progn (if --cl-rest-- (signal 'wrong-number-of-arguments (list nil ...))) (setq host (substring-no-properties host)) (setq owner (substring-no-properties owner)) (setq name (substring-no-properties name)) (if (memq demand '...) nil (let* (...) (if new ... ...))) (let* ((spec ...)) (if spec (progn ... ...) (if ... ...)))))))(("github.com" "magit" "closql") "origin" :known?)
  apply((closure (t) (&rest --cl-rest--) "((HOST OWNER NAME) &optional REMOTE DEMAND)\n\nRetur..." (progn (let* ((--cl-rest-- (if --cl-rest-- (car-safe ...) (signal ... ...))) (host (if (= ... 3) (car-safe ...) (signal ... ...))) (owner (car-safe (prog1 --cl-rest-- ...))) (name (car-safe --cl-rest--)) (remote (car-safe (prog1 --cl-rest-- ...))) (demand (car-safe (prog1 --cl-rest-- ...)))) (progn (if --cl-rest-- (signal 'wrong-number-of-arguments (list nil ...))) (setq host (substring-no-properties host)) (setq owner (substring-no-properties owner)) (setq name (substring-no-properties name)) (if (memq demand '...) nil (let* (...) (if new ... ...))) (let* ((spec ...)) (if spec (progn ... ...) (if ... ...))))))) ("github.com" "magit" "closql") ("origin" :known?))
  forge-get-repository(("github.com" "magit" "closql") "origin" :known?)
  (if parts (forge-get-repository parts remote (or demand :known?)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s isn't a for..." url "You might have to customize `forge-alist'."))))
  (let* ((parts (and t (forge--split-forge-url url)))) (if parts (forge-get-repository parts remote (or demand :known?)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s isn't a for..." url "You might have to customize `forge-alist'.")))))
  (progn (let* ((parts (and t (forge--split-forge-url url)))) (if parts (forge-get-repository parts remote (or demand :known?)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s isn't a for..." url "You might have to customize `forge-alist'."))))))
  (closure (t) (url &optional remote demand) "Return the repository at URL." (progn (let* ((parts (and t (forge--split-forge-url url)))) (if parts (forge-get-repository parts remote (or demand :known?)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s isn't a for..." url "You might have to customize `forge-alist'.")))))))("[email protected]:magit/closql.git" "origin" :known?)
  apply((closure (t) (url &optional remote demand) "Return the repository at URL." (progn (let* ((parts (and t (forge--split-forge-url url)))) (if parts (forge-get-repository parts remote (or demand :known?)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s isn't a for..." url "You might have to customize `forge-alist'."))))))) "[email protected]:magit/closql.git" ("origin" :known?))
  forge-get-repository("[email protected]:magit/closql.git" "origin" :known?)
  (and t (forge-get-repository url remote demand))
  (let* ((repo (and t (forge-get-repository url remote demand)))) (if repo (progn (progn (eieio-oset repo 'worktree (magit-toplevel)) repo))))
  (if url (let* ((repo (and t (forge-get-repository url remote demand)))) (if repo (progn (progn (eieio-oset repo 'worktree (magit-toplevel)) repo)))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s\nSee %s." (cond (remote (format "No url configured for %S." remote)) ((let* (...) (if config ...))) ((magit-list-remotes) "Cannot decide on remote to use.") (t "No remote configured.")) "https://magit.vc/manual/forge/How-Forge-Detection-..."))))
  (let* ((url (and t (and remote (magit-git-string "remote" "get-url" remote))))) (if url (let* ((repo (and t (forge-get-repository url remote demand)))) (if repo (progn (progn (eieio-oset repo 'worktree (magit-toplevel)) repo)))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s\nSee %s." (cond (remote (format "No url configured for %S." remote)) ((let* ... ...)) ((magit-list-remotes) "Cannot decide on remote to use.") (t "No remote configured.")) "https://magit.vc/manual/forge/How-Forge-Detection-...")))))
  (if (not (magit-gitdir)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine Forge repository outside of Git r..."))) (if remote nil (setq remote (forge--get-remote 'warn))) (let* ((url (and t (and remote (magit-git-string "remote" "get-url" remote))))) (if url (let* ((repo (and t (forge-get-repository url remote demand)))) (if repo (progn (progn (eieio-oset repo ... ...) repo)))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s\nSee %s." (cond (remote ...) (...) (... "Cannot decide on remote to use.") (t "No remote configured.")) "https://magit.vc/manual/forge/How-Forge-Detection-..."))))))
  (let ((value (if (not (magit-gitdir)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine Forge repository outside of Git r..."))) (if remote nil (setq remote (forge--get-remote 'warn))) (let* ((url (and t ...))) (if url (let* (...) (if repo ...)) (if (memq demand forge--signal-no-entry) (progn ...))))))) (let* ((x (cons G196 value)) (v magit--refresh-cache)) (setcdr v (cons x (cdr v)))) value)
  (progn (let* ((v magit--refresh-cache)) (setcdr (car v) (+ (cdr (car v)) 1))) (let ((value (if (not (magit-gitdir)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine Forge repository outside of Git r..."))) (if remote nil (setq remote (forge--get-remote ...))) (let* ((url ...)) (if url (let* ... ...) (if ... ...)))))) (let* ((x (cons G196 value)) (v magit--refresh-cache)) (setcdr v (cons x (cdr v)))) value))
  (if G197 (progn (let* ((v magit--refresh-cache)) (setcar (car v) (+ (car (car v)) 1))) (cdr G197)) (progn (let* ((v magit--refresh-cache)) (setcdr (car v) (+ (cdr (car v)) 1))) (let ((value (if (not (magit-gitdir)) (if (memq demand forge--signal-no-entry) (progn ...)) (if remote nil (setq remote ...)) (let* (...) (if url ... ...))))) (let* ((x (cons G196 value)) (v magit--refresh-cache)) (setcdr v (cons x (cdr v)))) value)))
  (let* ((G197 (and t (assoc G196 (cdr magit--refresh-cache))))) (if G197 (progn (let* ((v magit--refresh-cache)) (setcar (car v) (+ (car (car v)) 1))) (cdr G197)) (progn (let* ((v magit--refresh-cache)) (setcdr (car v) (+ (cdr (car v)) 1))) (let ((value (if (not ...) (if ... ...) (if remote nil ...) (let* ... ...)))) (let* ((x (cons G196 value)) (v magit--refresh-cache)) (setcdr v (cons x (cdr v)))) value))))
  (let ((G196 (list default-directory 'forge-get-repository demand))) (let* ((G197 (and t (assoc G196 (cdr magit--refresh-cache))))) (if G197 (progn (let* ((v magit--refresh-cache)) (setcar (car v) (+ (car ...) 1))) (cdr G197)) (progn (let* ((v magit--refresh-cache)) (setcdr (car v) (+ (cdr ...) 1))) (let ((value (if ... ... ... ...))) (let* ((x ...) (v magit--refresh-cache)) (setcdr v (cons x ...))) value)))))
  (if magit--refresh-cache (let ((G196 (list default-directory 'forge-get-repository demand))) (let* ((G197 (and t (assoc G196 (cdr magit--refresh-cache))))) (if G197 (progn (let* ((v magit--refresh-cache)) (setcar (car v) (+ ... 1))) (cdr G197)) (progn (let* ((v magit--refresh-cache)) (setcdr (car v) (+ ... 1))) (let ((value ...)) (let* (... ...) (setcdr v ...)) value))))) (if (not (magit-gitdir)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine Forge repository outside of Git r..."))) (if remote nil (setq remote (forge--get-remote 'warn))) (let* ((url (and t (and remote (magit-git-string "remote" "get-url" remote))))) (if url (let* ((repo (and t ...))) (if repo (progn (progn ... repo)))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s\nSee %s." (cond ... ... ... ...) "https://magit.vc/manual/forge/How-Forge-Detection-...")))))))
  (or (let* ((repo (and t (and (not notatpt) (forge-repository-at-point))))) (if repo (progn (forge-get-repository repo 'noerror demand)))) (let* ((repo (and t (or (forge-buffer-repository) (and forge-buffer-topic (forge-get-repository forge-buffer-topic)))))) (if repo (progn (forge-get-repository repo 'noerror demand)))) (if magit--refresh-cache (let ((G196 (list default-directory 'forge-get-repository demand))) (let* ((G197 (and t (assoc G196 ...)))) (if G197 (progn (let* (...) (setcar ... ...)) (cdr G197)) (progn (let* (...) (setcdr ... ...)) (let (...) (let* ... ...) value))))) (if (not (magit-gitdir)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine Forge repository outside of Git r..."))) (if remote nil (setq remote (forge--get-remote 'warn))) (let* ((url (and t (and remote ...)))) (if url (let* ((repo ...)) (if repo (progn ...))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s\nSee %s." ... "https://magit.vc/manual/forge/How-Forge-Detection-..."))))))))
  (progn (or (let* ((repo (and t (and (not notatpt) (forge-repository-at-point))))) (if repo (progn (forge-get-repository repo 'noerror demand)))) (let* ((repo (and t (or (forge-buffer-repository) (and forge-buffer-topic ...))))) (if repo (progn (forge-get-repository repo 'noerror demand)))) (if magit--refresh-cache (let ((G196 (list default-directory 'forge-get-repository demand))) (let* ((G197 (and t ...))) (if G197 (progn (let* ... ...) (cdr G197)) (progn (let* ... ...) (let ... ... value))))) (if (not (magit-gitdir)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine Forge repository outside of Git r..."))) (if remote nil (setq remote (forge--get-remote 'warn))) (let* ((url (and t ...))) (if url (let* (...) (if repo ...)) (if (memq demand forge--signal-no-entry) (progn ...))))))))
  (closure (t) (demand &optional remote notatpt) "Return the current forge repository.\n\nFirst check ..." (progn (or (let* ((repo (and t ...))) (if repo (progn (forge-get-repository repo ... demand)))) (let* ((repo (and t ...))) (if repo (progn (forge-get-repository repo ... demand)))) (if magit--refresh-cache (let ((G196 ...)) (let* (...) (if G197 ... ...))) (if (not (magit-gitdir)) (if (memq demand forge--signal-no-entry) (progn ...)) (if remote nil (setq remote ...)) (let* (...) (if url ... ...)))))))(:known? nil notatpt)
  apply((closure (t) (demand &optional remote notatpt) "Return the current forge repository.\n\nFirst check ..." (progn (or (let* ((repo (and t ...))) (if repo (progn (forge-get-repository repo ... demand)))) (let* ((repo (and t ...))) (if repo (progn (forge-get-repository repo ... demand)))) (if magit--refresh-cache (let ((G196 ...)) (let* (...) (if G197 ... ...))) (if (not (magit-gitdir)) (if (memq demand forge--signal-no-entry) (progn ...)) (if remote nil (setq remote ...)) (let* (...) (if url ... ...))))))) :known? (nil notatpt))
  forge-get-repository(:known? nil notatpt)
  (or (forge-buffer-repository) (forge-get-repository :known? nil 'notatpt))
  (and (not forge-buffer-unassociated-p) (or (forge-buffer-repository) (forge-get-repository :known? nil 'notatpt)))
  (or (magit-section-value-if 'forge-repo) (let* ((topic (and t (magit-section-value-if '(issue pullreq))))) (if topic (progn (forge-get-repository topic)))) (and (not forge-buffer-unassociated-p) (or (forge-buffer-repository) (forge-get-repository :known? nil 'notatpt))))
  forge--repo-for-thingatpt()
  (and t (forge--repo-for-thingatpt))
  (let* ((repo (and t (forge--repo-for-thingatpt)))) (if repo (progn (and (thing-at-point-looking-at (if (forge-gitlab-repository--eieio-childp repo) "\\(?2:[#!]\\)\\(?1:[0-9]+\\)\\_>" "#\\([0-9]+\\)\\_>")) (funcall (if (equal (match-string 2) "!") #'forge-get-pullreq #'forge-get-topic) repo (string-to-number (match-string-no-properties 1)))))))
  forge-thingatpt--topic()
  thing-at-point(forge-topic)
  (or (thing-at-point 'forge-topic) (magit-section-value-if '(issue pullreq)) (forge-get-pullreq :branch) (and demand (user-error "No topic at point")))
  forge-topic-at-point()
  (and t (forge-topic-at-point))
  (let* ((topic (and t (forge-topic-at-point)))) (if topic (progn (forge-get-repository topic))))
  (or (magit-section-value-if 'forge-repo) (let* ((topic (and t (forge-topic-at-point)))) (if topic (progn (forge-get-repository topic)))) (and (derived-mode-p 'forge-repository-list-mode) (let* ((id (and t (tabulated-list-get-id)))) (if id (progn (forge-get-repository :id id))))) (and demand (user-error "No repository at point")))
  forge-repository-at-point()
  (and (not notatpt) (forge-repository-at-point))
  (and t (and (not notatpt) (forge-repository-at-point)))
  (let* ((repo (and t (and (not notatpt) (forge-repository-at-point))))) (if repo (progn (forge-get-repository repo 'noerror demand))))
  (or (let* ((repo (and t (and (not notatpt) (forge-repository-at-point))))) (if repo (progn (forge-get-repository repo 'noerror demand)))) (let* ((repo (and t (or (forge-buffer-repository) (and forge-buffer-topic (forge-get-repository forge-buffer-topic)))))) (if repo (progn (forge-get-repository repo 'noerror demand)))) (if magit--refresh-cache (let ((G196 (list default-directory 'forge-get-repository demand))) (let* ((G197 (and t (assoc G196 ...)))) (if G197 (progn (let* (...) (setcar ... ...)) (cdr G197)) (progn (let* (...) (setcdr ... ...)) (let (...) (let* ... ...) value))))) (if (not (magit-gitdir)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine Forge repository outside of Git r..."))) (if remote nil (setq remote (forge--get-remote 'warn))) (let* ((url (and t (and remote ...)))) (if url (let* ((repo ...)) (if repo (progn ...))) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine forge repository.  %s\nSee %s." ... "https://magit.vc/manual/forge/How-Forge-Detection-..."))))))))
  (progn (or (let* ((repo (and t (and (not notatpt) (forge-repository-at-point))))) (if repo (progn (forge-get-repository repo 'noerror demand)))) (let* ((repo (and t (or (forge-buffer-repository) (and forge-buffer-topic ...))))) (if repo (progn (forge-get-repository repo 'noerror demand)))) (if magit--refresh-cache (let ((G196 (list default-directory 'forge-get-repository demand))) (let* ((G197 (and t ...))) (if G197 (progn (let* ... ...) (cdr G197)) (progn (let* ... ...) (let ... ... value))))) (if (not (magit-gitdir)) (if (memq demand forge--signal-no-entry) (progn (error "Cannot determine Forge repository outside of Git r..."))) (if remote nil (setq remote (forge--get-remote 'warn))) (let* ((url (and t ...))) (if url (let* (...) (if repo ...)) (if (memq demand forge--signal-no-entry) (progn ...))))))))
  (closure (t) (demand &optional remote notatpt) "Return the current forge repository.\n\nFirst check ..." (progn (or (let* ((repo (and t ...))) (if repo (progn (forge-get-repository repo ... demand)))) (let* ((repo (and t ...))) (if repo (progn (forge-get-repository repo ... demand)))) (if magit--refresh-cache (let ((G196 ...)) (let* (...) (if G197 ... ...))) (if (not (magit-gitdir)) (if (memq demand forge--signal-no-entry) (progn ...)) (if remote nil (setq remote ...)) (let* (...) (if url ... ...)))))))(:known?)
  apply((closure (t) (demand &optional remote notatpt) "Return the current forge repository.\n\nFirst check ..." (progn (or (let* ((repo (and t ...))) (if repo (progn (forge-get-repository repo ... demand)))) (let* ((repo (and t ...))) (if repo (progn (forge-get-repository repo ... demand)))) (if magit--refresh-cache (let ((G196 ...)) (let* (...) (if G197 ... ...))) (if (not (magit-gitdir)) (if (memq demand forge--signal-no-entry) (progn ...)) (if remote nil (setq remote ...)) (let* (...) (if url ... ...))))))) :known? nil)
  forge-get-repository(:known?)
  (and t (forge-get-repository :known?))
  (let* ((repo (and t (forge-get-repository :known?)))) (if repo (progn (setq forge-buffer-repository (eieio-oref repo 'id)))))
  (if forge-buffer-repository nil (let* ((repo (and t (forge-get-repository :known?)))) (if repo (progn (setq forge-buffer-repository (eieio-oref repo 'id))))))
  forge-set-buffer-repository()
  run-hooks(change-major-mode-after-body-hook special-mode-hook magit-section-mode-hook magit-mode-hook magit-status-mode-hook)
  apply(run-hooks (change-major-mode-after-body-hook special-mode-hook magit-section-mode-hook magit-mode-hook magit-status-mode-hook))
  run-mode-hooks(magit-status-mode-hook)
  magit-status-mode()
  funcall(magit-status-mode)
  (save-current-buffer (set-buffer buffer) (setq magit-previous-section section) (if directory (progn (setq default-directory directory))) (funcall mode) (magit-xref-setup #'magit-setup-buffer-internal bindings) (let ((tail bindings)) (while tail (let ((x358 (car tail))) (progn (ignore (consp x358)) (let* ((x359 ...) (x360 ...)) (progn (ignore ...) (let* ... ...)))) (setq tail (cdr tail))))) (if created (progn (run-hooks 'magit-create-buffer-hook))))
  (let* ((value (and locked (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ...) (and ... ...)))))) (buffer (if buffer-or-name (get-buffer-create buffer-or-name) (magit-get-mode-buffer mode value))) (section (and buffer (magit-current-section))) (created (not buffer))) (if buffer nil (setq buffer (magit-generate-new-buffer mode value))) (save-current-buffer (set-buffer buffer) (setq magit-previous-section section) (if directory (progn (setq default-directory directory))) (funcall mode) (magit-xref-setup #'magit-setup-buffer-internal bindings) (let ((tail bindings)) (while tail (let ((x358 (car tail))) (progn (ignore (consp x358)) (let* (... ...) (progn ... ...))) (setq tail (cdr tail))))) (if created (progn (run-hooks 'magit-create-buffer-hook)))) (magit-display-buffer buffer) (save-current-buffer (set-buffer buffer) (run-hooks 'magit-setup-buffer-hook) (magit-refresh-buffer) (if created (progn (run-hooks 'magit-post-create-buffer-hook)))) buffer)
  magit-setup-buffer-internal(magit-status-mode nil ((magit-buffer-diff-args ("--no-ext-diff")) (magit-buffer-diff-files nil) (magit-buffer-log-args ("-n256" "--decorate")) (magit-buffer-log-files nil)))
  (let* ((default-directory directory) (d (magit-diff--get-value 'magit-status-mode magit-status-use-buffer-arguments)) (l (magit-log--get-value 'magit-status-mode magit-status-use-buffer-arguments)) (file (and magit-status-goto-file-position (magit-file-relative-name))) (line (and file (save-restriction (widen) (line-number-at-pos)))) (col (and file (save-restriction (widen) (current-column)))) (buf (magit-setup-buffer-internal #'magit-status-mode nil (list (list 'magit-buffer-diff-args (nth 0 d)) (list 'magit-buffer-diff-files (nth 1 d)) (list 'magit-buffer-log-args (nth 0 l)) (list 'magit-buffer-log-files (nth 1 l)))))) (if file (progn (save-current-buffer (set-buffer buf) (let ((staged (magit-get-section ...))) (if (and staged (car ...)) (magit-diff--goto-position file line col staged) (let (...) (if ... nil ...))))))) buf)
  magit-status-setup-buffer("/home/adam/.emacs.d/straight/repos/closql/")
  (if (and toplevel (file-equal-p directory toplevel)) (magit-status-setup-buffer directory) (if (y-or-n-p (if toplevel (format "%s is a repository.  Create another in %s? " toplevel directory) (format "Create repository in %s? " directory))) (progn (setq magit--refresh-cache nil) (magit-init directory))))
  (let ((toplevel (magit-toplevel directory))) (setq directory (file-name-as-directory (expand-file-name directory))) (if (and toplevel (file-equal-p directory toplevel)) (magit-status-setup-buffer directory) (if (y-or-n-p (if toplevel (format "%s is a repository.  Create another in %s? " toplevel directory) (format "Create repository in %s? " directory))) (progn (setq magit--refresh-cache nil) (magit-init directory)))))
  (if directory (let ((toplevel (magit-toplevel directory))) (setq directory (file-name-as-directory (expand-file-name directory))) (if (and toplevel (file-equal-p directory toplevel)) (magit-status-setup-buffer directory) (if (y-or-n-p (if toplevel (format "%s is a repository.  Create another in %s? " toplevel directory) (format "Create repository in %s? " directory))) (progn (setq magit--refresh-cache nil) (magit-init directory))))) (magit-status-setup-buffer default-directory))
  (let ((magit--refresh-cache (or cache (list (cons 0 0))))) (if directory (let ((toplevel (magit-toplevel directory))) (setq directory (file-name-as-directory (expand-file-name directory))) (if (and toplevel (file-equal-p directory toplevel)) (magit-status-setup-buffer directory) (if (y-or-n-p (if toplevel (format "%s is a repository.  Create another in %s? " toplevel directory) (format "Create repository in %s? " directory))) (progn (setq magit--refresh-cache nil) (magit-init directory))))) (magit-status-setup-buffer default-directory)))
  magit-status("/home/adam/.emacs.d/straight/repos/closql/")
  projectile-vc()
  projectile-switch-project-by-name("~/.emacs.d/straight/repos/closql/" nil)
  #f(compiled-function (project) #<bytecode 0x6b9acbbfdf32a2d>)("~/.emacs.d/straight/repos/closql/")
  projectile-completing-read("Switch to project: " (<CENSORED>))
  projectile-switch-project(nil)
  funcall-interactively(projectile-switch-project nil)
  command-execute(projectile-switch-project)

@tarsius
Copy link
Member

tarsius commented Sep 22, 2024

That is (I believe) a known issue (#681), fixed in 03d012a.

I'm not sure whether it is enough to update Transient or whether you also have to reinstall packages that use it. Probably the former, but if that doesn't do the trick, then also do the latter.

Transient 0.5.2

You are stuck on an old release because all the popular package managers refuse to update built-in packages. See https://irreal.org/blog/?p=12426 and follow the links.

@aspiers
Copy link
Author

aspiers commented Sep 22, 2024

Thanks so much for the quick and helpful reply. I think I'd already updated Transient but in the end nuking the entire .eln cache seemed to do the trick. This also revealed an old version of rg.el which couldn't handle the newer Transient, but updating that solved it.

@aspiers aspiers closed this as completed Sep 22, 2024
@aspiers aspiers reopened this Sep 23, 2024
@aspiers
Copy link
Author

aspiers commented Sep 23, 2024

OK, I'm still getting this after restarting emacs fresh:

cl-no-applicable-method: No applicable method: initialize-instance, #s(#s(eieio--class emacsql-sqlite-builtin-connection "A connection to a SQLite database using builtin support." (#s(eieio--class emacsql--sqlite-base nil (#s(eieio--class emacsql-connection "A connection to a SQL database." nil [#s(cl-slot-descriptor handle 'eieio--unbound t ((:documentation . "Internal connection handler.
The value is a record-like object and should not be accessed
directly.  Depending on the concrete implementation, `type-of'
may return `process', `user-ptr' or `sqlite' for this value."))) #s(cl-slot-descriptor log-buffer nil (or null buffer) ((:documentation . "Output log (debug)."))) #s(cl-slot-descriptor finalizer 'eieio--unbound t ((:documentation . "Object returned from `make-finalizer'.")))] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (handle 1 log-buffer 2 finalizer 3)) (emacsql--sqlite-base) ((:handle . handle) (:log-buffer . log-buffer)) [#s(cl-slot-descriptor types nil t ((:documentation . "Maps EmacSQL types to SQL types.")))] [nil] ...)) [#s(cl-slot-descriptor handle 'eieio--unbound t ((:documentation . "Internal connection handler.
The value is a record-like object and should not be accessed
directly.  Depending on the concrete implementation, `type-of'
may return `process', `user-ptr' or `sqlite' for this value."))) #s(cl-slot-descriptor log-buffer nil (or null buffer) ((:documentation . "Output log (debug)."))) #s(cl-slot-descriptor finalizer 'eieio--unbound t ((:documentation . "Object returned from `make-finalizer'."))) #s(cl-slot-descriptor file nil (or null string) ((:documentation . "Database file name.")))] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (handle 1 log-buffer 2 finalizer 3 file 4)) (emacsql-sqlite-builtin-connection) ((:handle . handle) (:log-buffer . log-buffer) (:file . file)) [#s(cl-slot-descriptor types '((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil)) t ((:documentation . "Maps EmacSQL types to SQL types.")))] [((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil))] ...)) [#s(cl-slot-descriptor handle 'eieio--unbound t ((:documentation . "Internal connection handler.
The value is a record-like object and should not be accessed
directly.  Depending on the concrete implementation, `type-of'
may return `process', `user-ptr' or `sqlite' for this value."))) #s(cl-slot-descriptor log-buffer nil (or null buffer) ((:documentation . "Output log (debug)."))) #s(cl-slot-descriptor finalizer 'eieio--unbound t ((:documentation . "Object returned from `make-finalizer'."))) #s(cl-slot-descriptor file nil (or null string) ((:documentation . "Database file name.")))] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (handle 1 log-buffer 2 finalizer 3 file 4)) nil ((:handle . handle) (:log-buffer . log-buffer) (:file . file)) [#s(cl-slot-descriptor types '((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil)) t ((:documentation . "Maps EmacSQL types to SQL types.")))] [((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil))] ...) eieio--unbound nil eieio--unbound nil), (:file "/home/adam/.emacs.d/forge-database.sqlite")

However it gets really weird:

  • (featurep 'emacsql-sqlite-builtin) returns t
  • (emacsql-sqlite-default-connection) returns emacsql-sqlite-builtin-connection
  • Even after running this function (which I understand should (require 'emacsql-sqlite-builtin), the above error persists.
  • However if I finally manually load emacsql-sqlite-builtin.el and then everything suddenly works flawlessly.
  • If instead of loading that whole file, on a fresh emacs I just eval-defun the cl-defmethod initialize-instance, it also works.

So something is going wrong related to how that cl-defmethod is supposed to be executed. I would have expected it to be executed by the (require 'emacsql-sqlite-builtin) in emacsql-sqlite-default-connection, but apparently that's not happening.

I also see:

emacsql-sqlite-builtin-connection’s value is
‘emacsql-sqlite-builtin-connection’

This variable is obsolete since 25.1; use
'emacsql-sqlite-builtin-connection instead

A connection to a SQLite database using builtin support.

[back]

which seems very weird; not sure if it's related to the problem though.

@aspiers
Copy link
Author

aspiers commented Sep 23, 2024

Even weirder, I added this immediately after the (cl-defmethod initialize-instance ...) sexp:

(message "AFTER emacsql-sqlite-builtin initialize-instance defmethod")

and I see that message on startup. So the cl-defmethod is happening, but for some reason it doesn't take effect until I eval it manually after startup.

@tarsius
Copy link
Member

tarsius commented Sep 23, 2024

Are you absolutely sure you have done the complete re-installation dance? Uninstall transient and everything that depends on it. Exit Emacs. Restart Emacs. Re-install packages.

As I have said above, other users experienced the same weirdness with cl-defmethod somehow not working. We determined that that was causes by a top-level use of static-if. We did not figure out why that caused the issue, but we did find out that by moving the static-if into a function definition instead of around two variants of that function, made the issue go away. And since that is how static-if is supposed to be used anyway, I did just that. This fixed the issue for the users previously affected, but they had to re-install cleanly.

@tarsius tarsius added the support User needs some help label Sep 30, 2024
@tarsius tarsius closed this as completed Oct 2, 2024
@cassandracomar
Copy link

cassandracomar commented Oct 7, 2024

I manage my packages via straight so I blew away native comp artifacts, build caches, etc., and reinstalled all packages by blowing away the straight directory and re-cloning everything. transient is definitely at the latest commit at origin/main, as is forge. but I still see cl-no-applicable-method when trying to load forge:

(cl-no-applicable-method forge--repository-ids 'forge-github-repository "git.company.com" "org" "repo" (:stub?) nil)
  transient--exit-and-debug(error (cl-no-applicable-method forge--repository-ids 'forge-github-repository "git.company.com" "org" "repo" (:stub?) nil))
  signal(cl-no-applicable-method (forge--repository-ids 'forge-github-repository "git.company.com" "org" "repo" (:stub?) nil))

not really sure how to do a more thorough uninstall and reinstall.

what's weird is that I can run forge--repository-ids with the same arguments and it works fine. so this is just something weird with cl-defmethod and transient.

@aspiers
Copy link
Author

aspiers commented Oct 7, 2024

Yeah I ran out of things to clean / reinstall and it was still happening. I don't know what static-if is, but is it possible that loading forge in the wrong way via use-package could cause this? Here's how I do it:

https://github.com/aspiers/emacs/blob/e2dcde2ea8ecb62236f577f531b3d785104f97a3/.emacs.d/init.d/as-magit.el#L111-L127

@tarsius
Copy link
Member

tarsius commented Oct 8, 2024

Transient 0.5.2

I overlooked that before, sorry.

Magit and Forge need a newer version than this version, which is built into past Emacs releases. These packages of course declare the Transient version they need. Unfortunately the authors of the popular Emacs package managers have decided to by default ignore that information and just not ever update built-in packages, forcing each and every user to tell them that they indeed want to opt-in to non-broken Magit/Forge/Casual/etc. It is quite frustrating.

You will have to manually install the latest Transient release. I am not sure how one does that with Straight. Try to do it in a way that does not get you permanently stuck on whatever version you update to this time around. (While you are at it, also make sure Seq is updated.) Also make sure you do the full re-installation dance for Magit and Forge (and whatever other packages depend on Transient) afterwards.

I have just bumped up this task on my todo list: learn more about all the package managers, and set up testing configurations, so that I can experience first hand all the defects and steps to fix them.

@aspiers
Copy link
Author

aspiers commented Oct 8, 2024

Ahah, that could explain it! I had definitely upgraded Transient to the latest from git, but maybe it was still loading the built-in package... although https://github.com/radian-software/straight.el#how-can-i-use-the-built-in-version-of-a-package seems to imply that the version installed by straight.el should be used by default. At least this gives me something to watch out for next time.

@raghavio
Copy link

I use Prelude starter kit, and uninstalling Magit and doing a fresh install fixed it for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
support User needs some help
Projects
None yet
Development

No branches or pull requests

4 participants