doomemacs / doomemacs

An Emacs framework for the stubborn martian hacker
MIT License
19.56k stars 3.06k forks source link

persp-mode emits "selecting deleted buffer" error sometimes when killing Emacs #1525

Closed rgrinberg closed 4 years ago

rgrinberg commented 5 years ago

This is triggered every time I do SPC q r. I'm not sure if this a purpose or doom bug:

Debugger entered--Lisp error: (error "Selecting deleted buffer")
  #f(compiled-function (s-f) #<bytecode 0x4365bd69>)((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda (buffer &rest rest-args) (when ... ...)))) buffer) (let ((vars-list (with-current-buffer buffer (delete-if-not ... ... :key ...)))) (funcall (with-no-warnings (quote (closure ... ... ...))) buffer (quote def-indirect-buffer) vars-list)))))
  cl--position(nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) 0 nil nil)
  cl-position(nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :if #f(compiled-function (sl) #<bytecode 0x4365bd5d>) :key #f(compiled-function (s-f) #<bytecode 0x4365bd69>))
  apply(cl-position nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) (:if #f(compiled-function (sl) #<bytecode 0x4365bd5d>) :key #f(compiled-function (s-f) #<bytecode 0x4365bd69>)))
  cl-find(nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :if #f(compiled-function (sl) #<bytecode 0x4365bd5d>) :key #f(compiled-function (s-f) #<bytecode 0x4365bd69>))
  apply(cl-find nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :if #f(compiled-function (sl) #<bytecode 0x4365bd5d>) (:key #f(compiled-function (s-f) #<bytecode 0x4365bd69>)))
  find-if(#f(compiled-function (sl) #<bytecode 0x4365bd5d>) ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :key #f(compiled-function (s-f) #<bytecode 0x4365bd69>))
  #f(compiled-function (b) #<bytecode 0x4365c151>)(#<killed buffer>)
  mapcar(#f(compiled-function (b) #<bytecode 0x4365c151>) (#<buffer *Messages*> #<buffer *helpful variable: company-idle-delay*> #<buffer bootstrap.ml> #<buffer simple.el.gz> #<killed buffer> #<buffer packages.el> #<killed buffer> #<buffer config.el> #<buffer init.el> #<buffer dune-project> #<buffer configure.ml>))
  persp-buffers-to-savelist(#s(perspective :name "main" :buffers (#<buffer *Backtrace*> #<buffer *Messages*> #<buffer *helpful variable: company-idle-delay*> #<buffer bootstrap.ml> #<buffer simple.el.gz> #<killed buffer> #<buffer packages.el> #<killed buffer> #<buffer config.el> #<buffer init.el> #<buffer dune-project> #<buffer configure.ml>) :window-conf (((min-height . 4) (min-width . 10) (min-height-ignore . 3) (min-width-ignore . 3) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 76) (min-pixel-width . 80) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 24) (min-pixel-height-safe . 19) (min-pixel-width-safe . 16)) leaf (pixel-width . 1436) (pixel-height . 763) (total-width . 180) (total-height . 40) (normal-height . 1.0) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 19 . [... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...]) :idx -1))) (buffer "config.el" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 174) (start . 1))) :parameters nil :weak nil :auto nil :hidden nil))
  persp-to-savelist(#s(perspective :name "main" :buffers (#<buffer *Backtrace*> #<buffer *Messages*> #<buffer *helpful variable: company-idle-delay*> #<buffer bootstrap.ml> #<buffer simple.el.gz> #<killed buffer> #<buffer packages.el> #<killed buffer> #<buffer config.el> #<buffer init.el> #<buffer dune-project> #<buffer configure.ml>) :window-conf (((min-height . 4) (min-width . 10) (min-height-ignore . 3) (min-width-ignore . 3) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 76) (min-pixel-width . 80) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 24) (min-pixel-height-safe . 19) (min-pixel-width-safe . 16)) leaf (pixel-width . 1436) (pixel-height . 763) (total-width . 180) (total-height . 40) (normal-height . 1.0) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 19 . [... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...]) :idx -1))) (buffer "config.el" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 174) (start . 1))) :parameters nil :weak nil :auto nil :hidden nil))
  mapcar(persp-to-savelist (nil #s(perspective :name "main" :buffers (#<buffer *Backtrace*> #<buffer *Messages*> #<buffer *helpful variable: company-idle-delay*> #<buffer bootstrap.ml> #<buffer simple.el.gz> #<killed buffer> #<buffer packages.el> #<killed buffer> #<buffer config.el> #<buffer init.el> #<buffer dune-project> #<buffer configure.ml>) :window-conf (((min-height . 4) (min-width . 10) (min-height-ignore . 3) (min-width-ignore . 3) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 76) (min-pixel-width . 80) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 24) (min-pixel-height-safe . 19) (min-pixel-width-safe . 16)) leaf (pixel-width . 1436) (pixel-height . 763) (total-width . 180) (total-height . 40) (normal-height . 1.0) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 19 . [... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...]) :idx -1))) (buffer "config.el" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 174) (start . 1))) :parameters nil :weak nil :auto nil :hidden nil)))
  persps-to-savelist(#<hash-table equal 2/10 0x43661a01>)
  persp-save-state-to-file("/Users/rgrinberg/.emacs.d/.local/etc/workspaces/autosave")
siddharthshekar commented 5 years ago

I see this every so often too. It doesn't happen every time I try to restart so I'm unsure what triggers it or how to reproduce it.

hlissner commented 5 years ago

I've narrowed it down to these lines. Please this to ~/.doom.d/config.el and see if it fixes the issue:

(after! persp-mode
  (persp-def-buffer-save/load
   :tag-symbol 'def-indirect-buffer
   :predicate #'buffer-base-buffer
   :save-function (lambda (buf tag vars)
                    (list tag (buffer-name buf) vars
                          (buffer-name (buffer-base-buffer buf))))
   :load-function (lambda (savelist &rest _rest)
                    (cl-destructuring-bind (buf-name _vars base-buf-name &rest _)
                        (cdr savelist)
                      (push (cons buf-name base-buf-name)
                            +workspaces--indirect-buffers-to-restore)
                      nil))))
rgrinberg commented 5 years ago

Thanks. I will try this out the next time I get this issue. I only observe it sporadically so it will take time before I get the opportunity to test the fix.

@hlissner could you explain what you think the issue is in a few more words? Perhaps it will help me to reproduce.

kot-behemoth commented 5 years ago

@hlissner I just tried that code snippet — eval'ed it from within a running session that was throwing the same error. After evaluating it, the error persisted.

However, the message seems to have disappeared after a restart. Will report if it persists.

Emantor commented 5 years ago

@kot-behemoth since this uses the after! macro, afair this is only executed when persp-mode is loaded. If you execute it in a running session, it won't be executed since persp-mode is loaded already.

hlissner commented 5 years ago

@rgrinberg In a nutshell, Selecting deleted buffer errors occur when you try to switch to a killed buffer (with switch-to-buffer, display-buffer or with-current-buffer, for instance). Somewhere in this persp-def-buffer-save/load call in ui/workspace is doing this.

To produce a more informative backtrace, could you delete all .elc files in `~/.emacs.d/.local/packages/elpa/persp-mode-/`, restart Emacs and try to produce a new backtrace?

This should de-obfuscate all the "compiled-function" entries in the backtrace.

rgrinberg commented 5 years ago

@hlissner I'll try. Isn't this a problem in purpose however? It shouldn't be passing deleted buffers to these callbacks as far as I can tell.

hlissner commented 5 years ago

I don't know what this has to do with purpose. Do you mean persp-mode? In any case it's hard to tell without a more detailed backtrace.

rgrinberg commented 5 years ago

Indeed, I meant persp-mode. I'll try and get a detailed stacktrace ASAP

siddharthshekar commented 5 years ago

Still seeing this error even with that code snippet added to my config.el file. I tried getting a debug backtrace using debug-on-entry and stepping through the commands in doom/restart-and-restore but emacs crashed after a particular command. I'll try to note down what command that was the next time if I can reproduce it.

Update: It fails on this command * ucs-normalize-HFS-NFD-region(1 55)

hlissner commented 5 years ago

@siddharthshekar It is likely hitting byte-compiled functions. Try deleting all .elc files in `~/.emacs.d/.local/packages/elpa/persp-mode-/`, then restart Emacs and produce a new backtrace, if possible.

siddharthshekar commented 5 years ago

I deleted all the .elc files in my .emacs.d just to be sure and saw the same persp-mode error again with debug-on-entry crashing Emacs at the same point again.

CodyWilson commented 5 years ago

Okay. I've been following this issue for a while and I finally got a debug with Henrik's fix and the .elc files deleted. It just happens seemingly randomly so it's pretty weird and takes a while to trigger again.

Debug Info ```lisp Debugger entered--Lisp error: (error "Selecting deleted buffer") set-buffer(#) (save-current-buffer (set-buffer b) (funcall s-f b)) (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b)))((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda (buffer &rest rest-args) (when ... ...)))) buffer) (let ((vars-list (with-current-buffer buffer (delete-if-not ... ... :key ...)))) (funcall (with-no-warnings (quote (closure ... ... ...))) buffer (quote def-indirect-buffer) vars-list))))) cl--position(nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) 0 nil nil) cl-position(nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :if (lambda (sl) (if sl (progn (setq find-ret sl)))) :key (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b)))) apply(cl-position nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) (:if (lambda (sl) (if sl (progn (setq find-ret sl)))) :key (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b))))) cl-find(nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :if (lambda (sl) (if sl (progn (setq find-ret sl)))) :key (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b)))) apply(cl-find nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :if (lambda (sl) (if sl (progn (setq find-ret sl)))) (:key (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b))))) find-if((lambda (sl) (if sl (progn (setq find-ret sl)))) ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :key (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b)))) (lambda (b) (setq find-ret nil) (find-if (function (lambda (sl) (if sl (progn (setq find-ret sl))))) persp-save-buffer-functions :key (function (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b))))) find-ret)(#) mapcar((lambda (b) (setq find-ret nil) (find-if (function (lambda (sl) (if sl (progn (setq find-ret sl))))) persp-save-buffer-functions :key (function (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b))))) find-ret) (# # #> # # # # # # #> # # # # # # # #)) (let (find-ret) (mapcar (function (lambda (b) (setq find-ret nil) (find-if (function (lambda (sl) (if sl ...))) persp-save-buffer-functions :key (function (lambda (s-f) (save-current-buffer ... ...)))) find-ret)) (if persp (progn (or (and (memq (type-of persp) cl-struct-perspective-tags) t) (signal (quote wrong-type-argument) (list (quote perspective) persp))) (aref persp 2)) (delete-if-not (function persp-buffer-free-p) (funcall persp-buffer-list-function))))) (delete-if (function symbolp) (let (find-ret) (mapcar (function (lambda (b) (setq find-ret nil) (find-if (function (lambda ... ...)) persp-save-buffer-functions :key (function (lambda ... ...))) find-ret)) (if persp (progn (or (and (memq ... cl-struct-perspective-tags) t) (signal (quote wrong-type-argument) (list ... persp))) (aref persp 2)) (delete-if-not (function persp-buffer-free-p) (funcall persp-buffer-list-function)))))) persp-buffers-to-savelist(#s(perspective :name "main" :buffers (# # #> # # # # # # #> # # # # # # # #) :window-conf (((min-height . 8) (min-width . 20) (min-height-ignore . 6) (min-width-ignore . 6) (min-height-safe . 2) (min-width-safe . 4) (min-pixel-height . 184) (min-pixel-width . 200) (min-pixel-height-ignore . 126) (min-pixel-width-ignore . 57) (min-pixel-height-safe . 46) (min-pixel-width-safe . 40)) hc (pixel-width . 2556) (pixel-height . 1368) (total-width . 256) (total-height . 59) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (vc (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (combination-limit) (leaf (pixel-width . 1278) (pixel-height . 667) (total-width . 128) (total-height . 29) (normal-height . 0.48757309941520466) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "UnsubscribeController.php" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 1043) (start . 128))) (leaf (last . t) (pixel-width . 1278) (pixel-height . 701) (total-width . 128) (total-height . 30) (normal-height . 0.5124269005847953) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "Loan.php" (selected) (hscroll . 29) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 3874) (start . 3464)))) (leaf (last . t) (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 19 . [... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...]) :idx -1))) (buffer "index.phtml<3>" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 112) (start . 1)))) :parameters ((last-project-root . "/Users/codywilson/Development/cmx/")) :weak nil :auto nil :hidden nil)) (list (quote def-persp) (and persp (progn (or (and (memq (type-of persp) cl-struct-perspective-tags) t) (signal (quote wrong-type-argument) (list (quote perspective) persp))) (aref persp 1))) (persp-buffers-to-savelist persp) (persp-window-conf-to-savelist persp) (persp-parameters-to-savelist persp) (safe-persp-weak persp) (safe-persp-auto persp) (safe-persp-hidden persp)) persp-to-savelist(#s(perspective :name "main" :buffers (# # #> # # # # # # #> # # # # # # # #) :window-conf (((min-height . 8) (min-width . 20) (min-height-ignore . 6) (min-width-ignore . 6) (min-height-safe . 2) (min-width-safe . 4) (min-pixel-height . 184) (min-pixel-width . 200) (min-pixel-height-ignore . 126) (min-pixel-width-ignore . 57) (min-pixel-height-safe . 46) (min-pixel-width-safe . 40)) hc (pixel-width . 2556) (pixel-height . 1368) (total-width . 256) (total-height . 59) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (vc (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (combination-limit) (leaf (pixel-width . 1278) (pixel-height . 667) (total-width . 128) (total-height . 29) (normal-height . 0.48757309941520466) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "UnsubscribeController.php" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 1043) (start . 128))) (leaf (last . t) (pixel-width . 1278) (pixel-height . 701) (total-width . 128) (total-height . 30) (normal-height . 0.5124269005847953) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "Loan.php" (selected) (hscroll . 29) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 3874) (start . 3464)))) (leaf (last . t) (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 19 . [... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...]) :idx -1))) (buffer "index.phtml<3>" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 112) (start . 1)))) :parameters ((last-project-root . "/Users/codywilson/Development/cmx/")) :weak nil :auto nil :hidden nil)) mapcar(persp-to-savelist (nil #s(perspective :name "main" :buffers (# # #> # # # # # # #> # # # # # # # #) :window-conf (((min-height . 8) (min-width . 20) (min-height-ignore . 6) (min-width-ignore . 6) (min-height-safe . 2) (min-width-safe . 4) (min-pixel-height . 184) (min-pixel-width . 200) (min-pixel-height-ignore . 126) (min-pixel-width-ignore . 57) (min-pixel-height-safe . 46) (min-pixel-width-safe . 40)) hc (pixel-width . 2556) (pixel-height . 1368) (total-width . 256) (total-height . 59) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (vc (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (combination-limit) (leaf (pixel-width . 1278) (pixel-height . 667) (total-width . 128) (total-height . 29) (normal-height . 0.48757309941520466) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "UnsubscribeController.php" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 1043) (start . 128))) (leaf (last . t) (pixel-width . 1278) (pixel-height . 701) (total-width . 128) (total-height . 30) (normal-height . 0.5124269005847953) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "Loan.php" (selected) (hscroll . 29) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 3874) (start . 3464)))) (leaf (last . t) (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "index.phtml<3>" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 112) (start . 1)))) :parameters ((last-project-root . "/Users/codywilson/Development/cmx/")) :weak nil :auto nil :hidden nil) #s(perspective :name "#2" :buffers (# # # #) :window-conf (((min-height . 4) (min-width . 10) (min-height-ignore . 3) (min-width-ignore . 3) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 92) (min-pixel-width . 100) (min-pixel-height-ignore . 63) (min-pixel-width-ignore . 28) (min-pixel-height-safe . 23) (min-pixel-width-safe . 20)) leaf (pixel-width . 2556) (pixel-height . 1368) (total-width . 256) (total-height . 59) (normal-height . 1.0) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 10 . [... ... ... ... ... ... ... ... ... ... nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...]) :idx -1))) (buffer "config.el" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 11648) (start . 10614))) :parameters ((last-project-root . "/Users/codywilson/Development/dot-files/")) :weak nil :auto nil :hidden nil) #s(perspective :name "#3" :buffers (# # #) :window-conf (((min-height . 4) (min-width . 10) (min-height-ignore . 3) (min-width-ignore . 3) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 92) (min-pixel-width . 100) (min-pixel-height-ignore . 63) (min-pixel-width-ignore . 28) (min-pixel-height-safe . 23) (min-pixel-width-safe . 20)) leaf (pixel-width . 2556) (pixel-height . 1368) (total-width . 256) (total-height . 59) (normal-height . 1.0) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 10 . [... ... ... ... ... ... ... ... ... ... nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...]) :idx -1))) (buffer "index.php" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 1178) (start . 1))) :parameters ((last-project-root . "/Users/codywilson/Development/stc/")) :weak nil :auto nil :hidden nil) #s(perspective :name "#4" :buffers (#> # #) :window-conf (((min-height . 4) (min-width . 10) (min-height-ignore . 3) (min-width-ignore . 3) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 92) (min-pixel-width . 100) (min-pixel-height-ignore . 63) (min-pixel-width-ignore . 28) (min-pixel-height-safe . 23) (min-pixel-width-safe . 20)) leaf (pixel-width . 2556) (pixel-height . 1368) (total-width . 255) (total-height . 59) (normal-height . 1.0) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 8 . [... ... ... ... ... ... ... ... nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...]) :idx -1))) (buffer "role-group-menu.phtml" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 1533) (start . 850))) :parameters ((last-project-root . "/Users/codywilson/Development/ols/")) :weak nil :auto nil :hidden nil))) persps-to-savelist(#) (prin1-to-string (persps-to-savelist phash)) (let (print-length print-level) (prin1-to-string (persps-to-savelist phash))) (insert (let (print-length print-level) (prin1-to-string (persps-to-savelist phash)))) (progn (buffer-disable-undo) (erase-buffer) (goto-char (point-min)) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert (let (print-length print-level) (prin1-to-string (persps-to-savelist phash)))) (persp-save-with-backups p-save-file)) (unwind-protect (progn (buffer-disable-undo) (erase-buffer) (goto-char (point-min)) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert (let (print-length print-level) (prin1-to-string (persps-to-savelist phash)))) (persp-save-with-backups p-save-file)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (buffer-disable-undo) (erase-buffer) (goto-char (point-min)) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert (let (print-length print-level) (prin1-to-string (persps-to-savelist phash)))) (persp-save-with-backups p-save-file)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (buffer-disable-undo) (erase-buffer) (goto-char (point-min)) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert (let (print-length print-level) (prin1-to-string (persps-to-savelist phash)))) (persp-save-with-backups p-save-file)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if (and respect-persp-file-parameter (member-if (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil))) (let (persp-auto-save-persps-to-their-file persp-before-save-state-to-file-functions) (mapc (function (lambda (gr) (let* ((pl gr) (pfname ...)) (let (...) (if pfname ... ...))))) (persp-group-by (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil t) t))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (buffer-disable-undo) (erase-buffer) (goto-char (point-min)) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert (let (print-length print-level) (prin1-to-string ...))) (persp-save-with-backups p-save-file)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (if (not (and (file-exists-p p-save-dir) (file-directory-p p-save-dir))) (progn (message "[persp-mode] Error: Can't save perspectives -- `persp-save-dir' does not exists or not a directory %S." p-save-dir) nil) (mapc (function persp-save-state) (persp-persps phash)) (run-hook-with-args (quote persp-before-save-state-to-file-functions) fname phash respect-persp-file-parameter) (if (and respect-persp-file-parameter (member-if (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil))) (let (persp-auto-save-persps-to-their-file persp-before-save-state-to-file-functions) (mapc (function (lambda (gr) (let* (... ...) (let ... ...)))) (persp-group-by (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil t) t))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (buffer-disable-undo) (erase-buffer) (goto-char (point-min)) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert (let ... ...)) (persp-save-with-backups p-save-file)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))))) (let* ((p-save-dir (or (file-name-directory fname) (expand-file-name persp-save-dir))) (p-save-file (concat p-save-dir (file-name-nondirectory fname)))) (if (and (file-exists-p p-save-dir) (file-directory-p p-save-dir)) nil (message "[persp-mode] Info: Trying to create the `persp-conf-dir'.") (make-directory p-save-dir t)) (if (not (and (file-exists-p p-save-dir) (file-directory-p p-save-dir))) (progn (message "[persp-mode] Error: Can't save perspectives -- `persp-save-dir' does not exists or not a directory %S." p-save-dir) nil) (mapc (function persp-save-state) (persp-persps phash)) (run-hook-with-args (quote persp-before-save-state-to-file-functions) fname phash respect-persp-file-parameter) (if (and respect-persp-file-parameter (member-if (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil))) (let (persp-auto-save-persps-to-their-file persp-before-save-state-to-file-functions) (mapc (function (lambda (gr) (let* ... ...))) (persp-group-by (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil t) t))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (buffer-disable-undo) (erase-buffer) (goto-char ...) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert ...) (persp-save-with-backups p-save-file)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))))) (progn (if (< (string-width (file-name-nondirectory fname)) 1) (progn (message "[persp-mode] Error: You must provide nonempty filename to save perspectives.") (throw (quote --cl-block-persp-save-state-to-file--) nil))) (let* ((p-save-dir (or (file-name-directory fname) (expand-file-name persp-save-dir))) (p-save-file (concat p-save-dir (file-name-nondirectory fname)))) (if (and (file-exists-p p-save-dir) (file-directory-p p-save-dir)) nil (message "[persp-mode] Info: Trying to create the `persp-conf-dir'.") (make-directory p-save-dir t)) (if (not (and (file-exists-p p-save-dir) (file-directory-p p-save-dir))) (progn (message "[persp-mode] Error: Can't save perspectives -- `persp-save-dir' does not exists or not a directory %S." p-save-dir) nil) (mapc (function persp-save-state) (persp-persps phash)) (run-hook-with-args (quote persp-before-save-state-to-file-functions) fname phash respect-persp-file-parameter) (if (and respect-persp-file-parameter (member-if (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil))) (let (persp-auto-save-persps-to-their-file persp-before-save-state-to-file-functions) (mapc (function (lambda ... ...)) (persp-group-by (apply-partially ... ...) (persp-persps phash nil t) t))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ... ... ... ... ...) (and ... ...)))))))) (if (and (stringp fname) phash) (progn (if (< (string-width (file-name-nondirectory fname)) 1) (progn (message "[persp-mode] Error: You must provide nonempty filename to save perspectives.") (throw (quote --cl-block-persp-save-state-to-file--) nil))) (let* ((p-save-dir (or (file-name-directory fname) (expand-file-name persp-save-dir))) (p-save-file (concat p-save-dir (file-name-nondirectory fname)))) (if (and (file-exists-p p-save-dir) (file-directory-p p-save-dir)) nil (message "[persp-mode] Info: Trying to create the `persp-conf-dir'.") (make-directory p-save-dir t)) (if (not (and (file-exists-p p-save-dir) (file-directory-p p-save-dir))) (progn (message "[persp-mode] Error: Can't save perspectives -- `persp-save-dir' does not exists or not a directory %S." p-save-dir) nil) (mapc (function persp-save-state) (persp-persps phash)) (run-hook-with-args (quote persp-before-save-state-to-file-functions) fname phash respect-persp-file-parameter) (if (and respect-persp-file-parameter (member-if (apply-partially ... ...) (persp-persps phash nil))) (let (persp-auto-save-persps-to-their-file persp-before-save-state-to-file-functions) (mapc (function ...) (persp-group-by ... ... t))) (let ((temp-buffer ...)) (save-current-buffer (set-buffer temp-buffer) (unwind-protect ... ...)))))))) (catch (quote --cl-block-persp-save-state-to-file--) (if (and (stringp fname) phash) (progn (if (< (string-width (file-name-nondirectory fname)) 1) (progn (message "[persp-mode] Error: You must provide nonempty filename to save perspectives.") (throw (quote --cl-block-persp-save-state-to-file--) nil))) (let* ((p-save-dir (or (file-name-directory fname) (expand-file-name persp-save-dir))) (p-save-file (concat p-save-dir (file-name-nondirectory fname)))) (if (and (file-exists-p p-save-dir) (file-directory-p p-save-dir)) nil (message "[persp-mode] Info: Trying to create the `persp-conf-dir'.") (make-directory p-save-dir t)) (if (not (and (file-exists-p p-save-dir) (file-directory-p p-save-dir))) (progn (message "[persp-mode] Error: Can't save perspectives -- `persp-save-dir' does not exists or not a directory %S." p-save-dir) nil) (mapc (function persp-save-state) (persp-persps phash)) (run-hook-with-args (quote persp-before-save-state-to-file-functions) fname phash respect-persp-file-parameter) (if (and respect-persp-file-parameter (member-if ... ...)) (let (persp-auto-save-persps-to-their-file persp-before-save-state-to-file-functions) (mapc ... ...)) (let (...) (save-current-buffer ... ...)))))))) (progn (if --cl-rest-- (signal (quote wrong-number-of-arguments) (list (quote persp-save-state-to-file) (+ 4 (length --cl-rest--))))) (catch (quote --cl-block-persp-save-state-to-file--) (if (and (stringp fname) phash) (progn (if (< (string-width (file-name-nondirectory fname)) 1) (progn (message "[persp-mode] Error: You must provide nonempty filename to save perspectives.") (throw (quote --cl-block-persp-save-state-to-file--) nil))) (let* ((p-save-dir (or ... ...)) (p-save-file (concat p-save-dir ...))) (if (and (file-exists-p p-save-dir) (file-directory-p p-save-dir)) nil (message "[persp-mode] Info: Trying to create the `persp-conf-dir'.") (make-directory p-save-dir t)) (if (not (and ... ...)) (progn (message "[persp-mode] Error: Can't save perspectives -- `persp-save-dir' does not exists or not a directory %S." p-save-dir) nil) (mapc (function persp-save-state) (persp-persps phash)) (run-hook-with-args (quote persp-before-save-state-to-file-functions) fname phash respect-persp-file-parameter) (if (and respect-persp-file-parameter ...) (let ... ...) (let ... ...)))))))) (let* ((fname (if --cl-rest-- (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) persp-auto-save-fname)) (phash (if --cl-rest-- (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) *persp-hash*)) (respect-persp-file-parameter (if --cl-rest-- (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) persp-auto-save-persps-to-their-file)) (keep-others-in-non-parametric-file (if --cl-rest-- (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) (quote no)))) (progn (if --cl-rest-- (signal (quote wrong-number-of-arguments) (list (quote persp-save-state-to-file) (+ 4 (length --cl-rest--))))) (catch (quote --cl-block-persp-save-state-to-file--) (if (and (stringp fname) phash) (progn (if (< (string-width ...) 1) (progn (message "[persp-mode] Error: You must provide nonempty filename to save perspectives.") (throw ... nil))) (let* ((p-save-dir ...) (p-save-file ...)) (if (and ... ...) nil (message "[persp-mode] Info: Trying to create the `persp-conf-dir'.") (make-directory p-save-dir t)) (if (not ...) (progn ... nil) (mapc ... ...) (run-hook-with-args ... fname phash respect-persp-file-parameter) (if ... ... ...)))))))) persp-save-state-to-file("/Users/codywilson/.emacs.d/.local/etc/workspaces/autosave") (cond ((require (quote persp-mode) nil t) (if persp-mode nil (persp-mode 1)) (setq persp-auto-save-opt 0) (persp-save-state-to-file file)) ((and (require (quote frameset) nil t) (require (quote restart-emacs) nil t)) (let ((frameset-filter-alist (append (quote (...)) frameset-filter-alist)) (desktop-base-file-name (file-name-nondirectory file)) (desktop-dirname (file-name-directory file)) (desktop-restore-eager t) desktop-file-modtime) (make-directory desktop-dirname t) (let ((desktop-file-modtime (nth 5 (file-attributes ...)))) (desktop-save desktop-dirname t)))) ((error "No session backend to save session with"))) doom-save-session() doom/quicksave-session() funcall-interactively(doom/quicksave-session) call-interactively(doom/quicksave-session nil nil) command-execute(doom/quicksave-session) ```
hlissner commented 5 years ago

I've pushed a potential fix for this issue in e32fd0c. Please update and let me know if it addresses the error.

EDIT: fixed the fix in 0cf669a (fixing intensifies).

CodyWilson commented 5 years ago

I upgraded and ran this all day at work. Ran into it again towards the end of the day.

Edit2: I hope it's not a problem that I'm doing SPC q s or doom/quicksave-session to get these backtraces. If it is, let me know.

Also I removed the old fix you posted here. Don't know if I should have left that in or not.

Debug Info ```lisp Debugger entered--Lisp error: (error "Selecting deleted buffer") set-buffer(#) (save-current-buffer (set-buffer b) (funcall s-f b)) (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b)))((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda (buffer &rest rest-args) (when ... ...)))) buffer) (let ((vars-list (with-current-buffer buffer (delete-if-not ... ... :key ...)))) (funcall (with-no-warnings (quote (closure ... ... ...))) buffer (quote def-indirect-buffer) vars-list))))) cl--position(nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) 0 nil nil) cl-position(nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :if (lambda (sl) (if sl (progn (setq find-ret sl)))) :key (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b)))) apply(cl-position nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) (:if (lambda (sl) (if sl (progn (setq find-ret sl)))) :key (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b))))) cl-find(nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :if (lambda (sl) (if sl (progn (setq find-ret sl)))) :key (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b)))) apply(cl-find nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :if (lambda (sl) (if sl (progn (setq find-ret sl)))) (:key (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b))))) find-if((lambda (sl) (if sl (progn (setq find-ret sl)))) ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :key (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b)))) (lambda (b) (setq find-ret nil) (find-if (function (lambda (sl) (if sl (progn (setq find-ret sl))))) persp-save-buffer-functions :key (function (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b))))) find-ret)(#) mapcar((lambda (b) (setq find-ret nil) (find-if (function (lambda (sl) (if sl (progn (setq find-ret sl))))) persp-save-buffer-functions :key (function (lambda (s-f) (save-current-buffer (set-buffer b) (funcall s-f b))))) find-ret) (# # # # #> # # #> # # # #)) (let (find-ret) (mapcar (function (lambda (b) (setq find-ret nil) (find-if (function (lambda (sl) (if sl ...))) persp-save-buffer-functions :key (function (lambda (s-f) (save-current-buffer ... ...)))) find-ret)) (if persp (progn (or (and (memq (type-of persp) cl-struct-perspective-tags) t) (signal (quote wrong-type-argument) (list (quote perspective) persp))) (aref persp 2)) (delete-if-not (function persp-buffer-free-p) (funcall persp-buffer-list-function))))) (delete-if (function symbolp) (let (find-ret) (mapcar (function (lambda (b) (setq find-ret nil) (find-if (function (lambda ... ...)) persp-save-buffer-functions :key (function (lambda ... ...))) find-ret)) (if persp (progn (or (and (memq ... cl-struct-perspective-tags) t) (signal (quote wrong-type-argument) (list ... persp))) (aref persp 2)) (delete-if-not (function persp-buffer-free-p) (funcall persp-buffer-list-function)))))) (lambda (persp) (delete-if (function symbolp) (let (find-ret) (mapcar (function (lambda (b) (setq find-ret nil) (find-if (function ...) persp-save-buffer-functions :key (function ...)) find-ret)) (if persp (progn (or (and ... t) (signal ... ...)) (aref persp 2)) (delete-if-not (function persp-buffer-free-p) (funcall persp-buffer-list-function)))))))(#s(perspective :name "#1" :buffers (# # # # # #> # # #> # # # #) :window-conf (((min-height . 8) (min-width . 20) (min-height-ignore . 6) (min-width-ignore . 6) (min-height-safe . 2) (min-width-safe . 4) (min-pixel-height . 184) (min-pixel-width . 200) (min-pixel-height-ignore . 126) (min-pixel-width-ignore . 57) (min-pixel-height-safe . 46) (min-pixel-width-safe . 40)) hc (pixel-width . 2556) (pixel-height . 1368) (total-width . 256) (total-height . 59) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (leaf (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 10 . [... ... ... ... ... ... ... ... ... ... nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...]) :idx -1))) (buffer "header-splash.phtml" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 7718) (start . 6940))) (vc (last . t) (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (combination-limit) (leaf (pixel-width . 1278) (pixel-height . 684) (total-width . 128) (total-height . 29) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "header-splash.phtml<2>" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 4758) (start . 4522))) (leaf (last . t) (pixel-width . 1278) (pixel-height . 684) (total-width . 128) (total-height . 30) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "footer-splash.phtml" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 4457) (start . 3861))))) :parameters ((last-project-root . "/Users/codywilson/Development/dot-files/")) :weak nil :auto nil :hidden nil)) apply((lambda (persp) (delete-if (function symbolp) (let (find-ret) (mapcar (function (lambda (b) (setq find-ret nil) (find-if ... persp-save-buffer-functions :key ...) find-ret)) (if persp (progn (or ... ...) (aref persp 2)) (delete-if-not (function persp-buffer-free-p) (funcall persp-buffer-list-function))))))) #s(perspective :name "#1" :buffers (# # # # # #> # # #> # # # #) :window-conf (((min-height . 8) (min-width . 20) (min-height-ignore . 6) (min-width-ignore . 6) (min-height-safe . 2) (min-width-safe . 4) (min-pixel-height . 184) (min-pixel-width . 200) (min-pixel-height-ignore . 126) (min-pixel-width-ignore . 57) (min-pixel-height-safe . 46) (min-pixel-width-safe . 40)) hc (pixel-width . 2556) (pixel-height . 1368) (total-width . 256) (total-height . 59) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (leaf (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 10 . [... ... ... ... ... ... ... ... ... ... nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...]) :idx -1))) (buffer "header-splash.phtml" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 7718) (start . 6940))) (vc (last . t) (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (combination-limit) (leaf (pixel-width . 1278) (pixel-height . 684) (total-width . 128) (total-height . 29) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "header-splash.phtml<2>" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 4758) (start . 4522))) (leaf (last . t) (pixel-width . 1278) (pixel-height . 684) (total-width . 128) (total-height . 30) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "footer-splash.phtml" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 4457) (start . 3861))))) :parameters ((last-project-root . "/Users/codywilson/Development/dot-files/")) :weak nil :auto nil :hidden nil)) persp-buffers-to-savelist(#s(perspective :name "#1" :buffers (# # # # # #> # # #> # # # #) :window-conf (((min-height . 8) (min-width . 20) (min-height-ignore . 6) (min-width-ignore . 6) (min-height-safe . 2) (min-width-safe . 4) (min-pixel-height . 184) (min-pixel-width . 200) (min-pixel-height-ignore . 126) (min-pixel-width-ignore . 57) (min-pixel-height-safe . 46) (min-pixel-width-safe . 40)) hc (pixel-width . 2556) (pixel-height . 1368) (total-width . 256) (total-height . 59) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (leaf (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 10 . [... ... ... ... ... ... ... ... ... ... nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...]) :idx -1))) (buffer "header-splash.phtml" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 7718) (start . 6940))) (vc (last . t) (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (combination-limit) (leaf (pixel-width . 1278) (pixel-height . 684) (total-width . 128) (total-height . 29) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "header-splash.phtml<2>" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 4758) (start . 4522))) (leaf (last . t) (pixel-width . 1278) (pixel-height . 684) (total-width . 128) (total-height . 30) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "footer-splash.phtml" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 4457) (start . 3861))))) :parameters ((last-project-root . "/Users/codywilson/Development/dot-files/")) :weak nil :auto nil :hidden nil)) (list (quote def-persp) (and persp (progn (or (and (memq (type-of persp) cl-struct-perspective-tags) t) (signal (quote wrong-type-argument) (list (quote perspective) persp))) (aref persp 1))) (persp-buffers-to-savelist persp) (persp-window-conf-to-savelist persp) (persp-parameters-to-savelist persp) (safe-persp-weak persp) (safe-persp-auto persp) (safe-persp-hidden persp)) persp-to-savelist(#s(perspective :name "#1" :buffers (# # # # # #> # # #> # # # #) :window-conf (((min-height . 8) (min-width . 20) (min-height-ignore . 6) (min-width-ignore . 6) (min-height-safe . 2) (min-width-safe . 4) (min-pixel-height . 184) (min-pixel-width . 200) (min-pixel-height-ignore . 126) (min-pixel-width-ignore . 57) (min-pixel-height-safe . 46) (min-pixel-width-safe . 40)) hc (pixel-width . 2556) (pixel-height . 1368) (total-width . 256) (total-height . 59) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (leaf (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 10 . [... ... ... ... ... ... ... ... ... ... nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...]) :idx -1))) (buffer "header-splash.phtml" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 7718) (start . 6940))) (vc (last . t) (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (combination-limit) (leaf (pixel-width . 1278) (pixel-height . 684) (total-width . 128) (total-height . 29) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "header-splash.phtml<2>" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 4758) (start . 4522))) (leaf (last . t) (pixel-width . 1278) (pixel-height . 684) (total-width . 128) (total-height . 30) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "footer-splash.phtml" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 4457) (start . 3861))))) :parameters ((last-project-root . "/Users/codywilson/Development/dot-files/")) :weak nil :auto nil :hidden nil)) mapcar(persp-to-savelist (nil #s(perspective :name "main" :buffers (# # #) :window-conf (((min-height . 4) (min-width . 10) (min-height-ignore . 3) (min-width-ignore . 3) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 92) (min-pixel-width . 100) (min-pixel-height-ignore . 63) (min-pixel-width-ignore . 28) (min-pixel-height-safe . 23) (min-pixel-width-safe . 20)) leaf (pixel-width . 2556) (pixel-height . 1368) (total-width . 256) (total-height . 59) (normal-height . 1.0) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 10 . [... ... ... ... ... ... ... ... ... ... nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...]) :idx -1))) (buffer "packages.el" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 614) (start . 32))) :parameters ((last-project-root . "/Users/codywilson/Development/dot-files/")) :weak nil :auto nil :hidden nil) #s(perspective :name "#1" :buffers (# # # # # #> # # #> # # # #) :window-conf (((min-height . 8) (min-width . 20) (min-height-ignore . 6) (min-width-ignore . 6) (min-height-safe . 2) (min-width-safe . 4) (min-pixel-height . 184) (min-pixel-width . 200) (min-pixel-height-ignore . 126) (min-pixel-width-ignore . 57) (min-pixel-height-safe . 46) (min-pixel-width-safe . 40)) hc (pixel-width . 2556) (pixel-height . 1368) (total-width . 256) (total-height . 59) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (leaf (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "header-splash.phtml" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 7718) (start . 6940))) (vc (last . t) (pixel-width . 1278) (pixel-height . 1368) (total-width . 128) (total-height . 59) (normal-height . 1.0) (normal-width . 0.5) (combination-limit) (leaf (pixel-width . 1278) (pixel-height . 684) (total-width . 128) (total-height . 29) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "header-splash.phtml<2>" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 4758) (start . 4522))) (leaf (last . t) (pixel-width . 1278) (pixel-height . 684) (total-width . 128) (total-height . 30) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "footer-splash.phtml" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 4457) (start . 3861))))) :parameters ((last-project-root . "/Users/codywilson/Development/dot-files/")) :weak nil :auto nil :hidden nil))) persps-to-savelist(#) (prin1-to-string (persps-to-savelist phash)) (let (print-length print-level) (prin1-to-string (persps-to-savelist phash))) (insert (let (print-length print-level) (prin1-to-string (persps-to-savelist phash)))) (progn (buffer-disable-undo) (erase-buffer) (goto-char (point-min)) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert (let (print-length print-level) (prin1-to-string (persps-to-savelist phash)))) (persp-save-with-backups p-save-file)) (unwind-protect (progn (buffer-disable-undo) (erase-buffer) (goto-char (point-min)) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert (let (print-length print-level) (prin1-to-string (persps-to-savelist phash)))) (persp-save-with-backups p-save-file)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (buffer-disable-undo) (erase-buffer) (goto-char (point-min)) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert (let (print-length print-level) (prin1-to-string (persps-to-savelist phash)))) (persp-save-with-backups p-save-file)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (buffer-disable-undo) (erase-buffer) (goto-char (point-min)) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert (let (print-length print-level) (prin1-to-string (persps-to-savelist phash)))) (persp-save-with-backups p-save-file)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if (and respect-persp-file-parameter (member-if (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil))) (let (persp-auto-save-persps-to-their-file persp-before-save-state-to-file-functions) (mapc (function (lambda (gr) (let* ((pl gr) (pfname ...)) (let (...) (if pfname ... ...))))) (persp-group-by (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil t) t))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (buffer-disable-undo) (erase-buffer) (goto-char (point-min)) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert (let (print-length print-level) (prin1-to-string ...))) (persp-save-with-backups p-save-file)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) (if (not (and (file-exists-p p-save-dir) (file-directory-p p-save-dir))) (progn (message "[persp-mode] Error: Can't save perspectives -- `persp-save-dir' does not exists or not a directory %S." p-save-dir) nil) (mapc (function persp-save-state) (persp-persps phash)) (run-hook-with-args (quote persp-before-save-state-to-file-functions) fname phash respect-persp-file-parameter) (if (and respect-persp-file-parameter (member-if (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil))) (let (persp-auto-save-persps-to-their-file persp-before-save-state-to-file-functions) (mapc (function (lambda (gr) (let* (... ...) (let ... ...)))) (persp-group-by (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil t) t))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (buffer-disable-undo) (erase-buffer) (goto-char (point-min)) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert (let ... ...)) (persp-save-with-backups p-save-file)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))))) (let* ((p-save-dir (or (file-name-directory fname) (expand-file-name persp-save-dir))) (p-save-file (concat p-save-dir (file-name-nondirectory fname)))) (if (and (file-exists-p p-save-dir) (file-directory-p p-save-dir)) nil (message "[persp-mode] Info: Trying to create the `persp-conf-dir'.") (make-directory p-save-dir t)) (if (not (and (file-exists-p p-save-dir) (file-directory-p p-save-dir))) (progn (message "[persp-mode] Error: Can't save perspectives -- `persp-save-dir' does not exists or not a directory %S." p-save-dir) nil) (mapc (function persp-save-state) (persp-persps phash)) (run-hook-with-args (quote persp-before-save-state-to-file-functions) fname phash respect-persp-file-parameter) (if (and respect-persp-file-parameter (member-if (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil))) (let (persp-auto-save-persps-to-their-file persp-before-save-state-to-file-functions) (mapc (function (lambda (gr) (let* ... ...))) (persp-group-by (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil t) t))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (buffer-disable-undo) (erase-buffer) (goto-char ...) (insert ";; -*- mode: emacs-lisp; eval: (progn (pp-buffer) (indent-buffer)) -*-") (newline) (insert ...) (persp-save-with-backups p-save-file)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))))) (progn (if (< (string-width (file-name-nondirectory fname)) 1) (progn (message "[persp-mode] Error: You must provide nonempty filename to save perspectives.") (throw (quote --cl-block-persp-save-state-to-file--) nil))) (let* ((p-save-dir (or (file-name-directory fname) (expand-file-name persp-save-dir))) (p-save-file (concat p-save-dir (file-name-nondirectory fname)))) (if (and (file-exists-p p-save-dir) (file-directory-p p-save-dir)) nil (message "[persp-mode] Info: Trying to create the `persp-conf-dir'.") (make-directory p-save-dir t)) (if (not (and (file-exists-p p-save-dir) (file-directory-p p-save-dir))) (progn (message "[persp-mode] Error: Can't save perspectives -- `persp-save-dir' does not exists or not a directory %S." p-save-dir) nil) (mapc (function persp-save-state) (persp-persps phash)) (run-hook-with-args (quote persp-before-save-state-to-file-functions) fname phash respect-persp-file-parameter) (if (and respect-persp-file-parameter (member-if (apply-partially (function persp-parameter) (quote persp-file)) (persp-persps phash nil))) (let (persp-auto-save-persps-to-their-file persp-before-save-state-to-file-functions) (mapc (function (lambda ... ...)) (persp-group-by (apply-partially ... ...) (persp-persps phash nil t) t))) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ... ... ... ... ...) (and ... ...)))))))) (if (and (stringp fname) phash) (progn (if (< (string-width (file-name-nondirectory fname)) 1) (progn (message "[persp-mode] Error: You must provide nonempty filename to save perspectives.") (throw (quote --cl-block-persp-save-state-to-file--) nil))) (let* ((p-save-dir (or (file-name-directory fname) (expand-file-name persp-save-dir))) (p-save-file (concat p-save-dir (file-name-nondirectory fname)))) (if (and (file-exists-p p-save-dir) (file-directory-p p-save-dir)) nil (message "[persp-mode] Info: Trying to create the `persp-conf-dir'.") (make-directory p-save-dir t)) (if (not (and (file-exists-p p-save-dir) (file-directory-p p-save-dir))) (progn (message "[persp-mode] Error: Can't save perspectives -- `persp-save-dir' does not exists or not a directory %S." p-save-dir) nil) (mapc (function persp-save-state) (persp-persps phash)) (run-hook-with-args (quote persp-before-save-state-to-file-functions) fname phash respect-persp-file-parameter) (if (and respect-persp-file-parameter (member-if (apply-partially ... ...) (persp-persps phash nil))) (let (persp-auto-save-persps-to-their-file persp-before-save-state-to-file-functions) (mapc (function ...) (persp-group-by ... ... t))) (let ((temp-buffer ...)) (save-current-buffer (set-buffer temp-buffer) (unwind-protect ... ...)))))))) (catch (quote --cl-block-persp-save-state-to-file--) (if (and (stringp fname) phash) (progn (if (< (string-width (file-name-nondirectory fname)) 1) (progn (message "[persp-mode] Error: You must provide nonempty filename to save perspectives.") (throw (quote --cl-block-persp-save-state-to-file--) nil))) (let* ((p-save-dir (or (file-name-directory fname) (expand-file-name persp-save-dir))) (p-save-file (concat p-save-dir (file-name-nondirectory fname)))) (if (and (file-exists-p p-save-dir) (file-directory-p p-save-dir)) nil (message "[persp-mode] Info: Trying to create the `persp-conf-dir'.") (make-directory p-save-dir t)) (if (not (and (file-exists-p p-save-dir) (file-directory-p p-save-dir))) (progn (message "[persp-mode] Error: Can't save perspectives -- `persp-save-dir' does not exists or not a directory %S." p-save-dir) nil) (mapc (function persp-save-state) (persp-persps phash)) (run-hook-with-args (quote persp-before-save-state-to-file-functions) fname phash respect-persp-file-parameter) (if (and respect-persp-file-parameter (member-if ... ...)) (let (persp-auto-save-persps-to-their-file persp-before-save-state-to-file-functions) (mapc ... ...)) (let (...) (save-current-buffer ... ...)))))))) (progn (if --cl-rest-- (signal (quote wrong-number-of-arguments) (list (quote persp-save-state-to-file) (+ 4 (length --cl-rest--))))) (catch (quote --cl-block-persp-save-state-to-file--) (if (and (stringp fname) phash) (progn (if (< (string-width (file-name-nondirectory fname)) 1) (progn (message "[persp-mode] Error: You must provide nonempty filename to save perspectives.") (throw (quote --cl-block-persp-save-state-to-file--) nil))) (let* ((p-save-dir (or ... ...)) (p-save-file (concat p-save-dir ...))) (if (and (file-exists-p p-save-dir) (file-directory-p p-save-dir)) nil (message "[persp-mode] Info: Trying to create the `persp-conf-dir'.") (make-directory p-save-dir t)) (if (not (and ... ...)) (progn (message "[persp-mode] Error: Can't save perspectives -- `persp-save-dir' does not exists or not a directory %S." p-save-dir) nil) (mapc (function persp-save-state) (persp-persps phash)) (run-hook-with-args (quote persp-before-save-state-to-file-functions) fname phash respect-persp-file-parameter) (if (and respect-persp-file-parameter ...) (let ... ...) (let ... ...)))))))) (let* ((fname (if --cl-rest-- (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) persp-auto-save-fname)) (phash (if --cl-rest-- (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) *persp-hash*)) (respect-persp-file-parameter (if --cl-rest-- (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) persp-auto-save-persps-to-their-file)) (keep-others-in-non-parametric-file (if --cl-rest-- (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) (quote no)))) (progn (if --cl-rest-- (signal (quote wrong-number-of-arguments) (list (quote persp-save-state-to-file) (+ 4 (length --cl-rest--))))) (catch (quote --cl-block-persp-save-state-to-file--) (if (and (stringp fname) phash) (progn (if (< (string-width ...) 1) (progn (message "[persp-mode] Error: You must provide nonempty filename to save perspectives.") (throw ... nil))) (let* ((p-save-dir ...) (p-save-file ...)) (if (and ... ...) nil (message "[persp-mode] Info: Trying to create the `persp-conf-dir'.") (make-directory p-save-dir t)) (if (not ...) (progn ... nil) (mapc ... ...) (run-hook-with-args ... fname phash respect-persp-file-parameter) (if ... ... ...)))))))) persp-save-state-to-file("/Users/codywilson/.emacs.d/.local/etc/workspaces/autosave") (cond ((require (quote persp-mode) nil t) (if persp-mode nil (persp-mode 1)) (setq persp-auto-save-opt 0) (persp-save-state-to-file file)) ((and (require (quote frameset) nil t) (require (quote restart-emacs) nil t)) (let ((frameset-filter-alist (append (quote (...)) frameset-filter-alist)) (desktop-base-file-name (file-name-nondirectory file)) (desktop-dirname (file-name-directory file)) (desktop-restore-eager t) desktop-file-modtime) (make-directory desktop-dirname t) (let ((desktop-file-modtime (nth 5 (file-attributes ...)))) (desktop-save desktop-dirname t)))) ((error "No session backend to save session with"))) doom-save-session() doom/quicksave-session() funcall-interactively(doom/quicksave-session) call-interactively(doom/quicksave-session nil nil) command-execute(doom/quicksave-session) ```

Edit:

Doom Info ``` emacs version 26.2 features JPEG RSVG IMAGEMAGICK GLIB NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS LCMS2 build May 22, 2019 buildopts (--disable-dependency-tracking --disable-silent-rules --enable-locallisppath=/usr/local/share/emacs/site-lisp --infodir=/usr/local/Cellar/emacs-plus/26.2/share/info/emacs --prefix=/usr/local/Cellar/emacs-plus/26.2 --with-xml2 --without-dbus --with-gnutls --with-imagemagick --with-modules --with-rsvg --with-ns --disable-ns-self-contained) doom version 2.0.9 build HEAD -> straight 0cf669ab9 2019-08-15 21:30:59 -0400 system type darwin config x86_64-apple-darwin18.2.0 shell /bin/bash uname Darwin 18.2.0 Darwin Kernel Version 18.2.0: Fri Oct 5 19:41:49 PDT 2018; root:xnu-4903.221.2~2/RELEASE_X86_64 x86_64 path (/usr/local/opt/php@7.1/sbin/ /usr/local/opt/php@7.1/bin/ /usr/local/bin/ /usr/bin/ /bin/ /usr/sbin/ /sbin/ /usr/local/Cellar/cmake/3.10.1/bin/ /usr/local/opt/php@7.1/sbin/ /usr/local/opt/php@7.1/bin/ ~/Library/Python/2.7/bin/ ~/Library/Python/2.7/bin/ /usr/local/Cellar/emacs-plus/26.2/libexec/emacs/26.2/x86_64-apple-darwin18.2.0/) config envfile envvar-file elc-files 0 modules (:completion company (ivy +fuzzy) :ui doom doom-dashboard doom-quit ophints fill-column hl-todo modeline nav-flash treemacs (popup +all +defaults) vc-gutter vi-tilde-fringe window-select workspaces :editor evil multiple-cursors rotate-text fold snippets file-templates :emacs dired electric vc :tools eval (lookup +docsets) editorconfig gist macos make (magit +forge) upload flyspell flycheck :lang assembly (cc +irony +rtags) data emacs-lisp javascript markdown (org +dragndrop +ipython +pandoc +gnuplot +present) php python rust (sh +fish) web :term vterm :config default) packages (multi-web-mode wgrep swiper ag wgrep-ag exec-path-from-shell (play-sound :recipe (:type git :host github :repo leoliu/play-sound-osx)) company-phpactor elcord fancy-battery) ```
hlissner commented 5 years ago

243d69b should resolve this issue. I've also merged the straight branch to develop, so you'll need to switch back. Let me know if that isn't the case and I will reopen this issue.

rgrinberg commented 5 years ago

@hlissner I don't believe this is resolved and I was able to reproduce this today with the new straight updated develop branch.

siddharthshekar commented 5 years ago

I have been unable to reproduce this on develop after the straight branch merge. I did run into a problem where on restart, the naming and ordering of the workspaces was preserved, but they would all be empty. I reinstalled persp-mode and haven't had any problems since.

CodyWilson commented 5 years ago

Yeah I haven't been able to reproduce this since the fix, and the other fix for a different issue.

rgrinberg commented 5 years ago

I was just able to reproduce this on commit:

21883d9700707b3a4bc4518f61e70691edc6e2de
error in process filter: read-from-minibuffer: Selecting deleted buffer
error in process filter: Selecting deleted buffer

This time, the only distinction was that it occurred when I opened Emacs from a restart.

hlissner commented 5 years ago

@rgrinberg That seems like an unrelated error. Are you able to get a backtrace from it?

rgrinberg commented 5 years ago

Is there a way to restart doom with the debugger on? I should be able to get the backtrace then.

hlissner commented 5 years ago

@rgrinberg You can either use the prefix argument: SPC u SPC q r, or kill Emacs normally, then start Emacs with emacs --debug-init --restore

rgrinberg commented 5 years ago

I'm able to reproduce this bug the old way:

Debugger entered--Lisp error: (error "Selecting deleted buffer")
  #f(compiled-function (s-f) #<bytecode 0x42660565>)((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda (buffer &rest rest-args) (when ... ...)))) buffer) (let ((vars-list (with-current-buffer buffer (delete-if-not ... ... :key ...)))) (funcall (with-no-warnings (quote (closure ... ... ...))) buffer (quote def-indirect-buffer) vars-list)))))
  cl--position(nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) 0 nil nil)
  cl-position(nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :if #f(compiled-function (sl) #<bytecode 0x42660071>) :key #f(compiled-function (s-f) #<bytecode 0x42660565>))
  apply(cl-position nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) (:if #f(compiled-function (sl) #<bytecode 0x42660071>) :key #f(compiled-function (s-f) #<bytecode 0x42660565>)))
  cl-find(nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :if #f(compiled-function (sl) #<bytecode 0x42660071>) :key #f(compiled-function (s-f) #<bytecode 0x42660565>))
  apply(cl-find nil ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :if #f(compiled-function (sl) #<bytecode 0x42660071>) (:key #f(compiled-function (s-f) #<bytecode 0x42660565>)))
  find-if(#f(compiled-function (sl) #<bytecode 0x42660071>) ((lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (funcall (with-no-warnings (quote ...)) buffer (quote def-indirect-buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-compilation-buffer) (buffer-name buffer) vars-list)))) (lambda (buffer) (when (funcall (with-no-warnings (quote (lambda ... ...))) buffer) (let ((vars-list (with-current-buffer buffer ...))) (list (quote def-eshell-buffer) (buffer-name buffer) vars-list)))) (lambda (b) (when (persp-buffer-filtered-out-p b persp-filter-save-buffers-functions) (quote skip))) persp-tramp-save-buffer (lambda (b) (when (eq (quote dired-mode) (buffer-local-value (quote major-mode) b)) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-local-value ... b)) (\, (buffer-local-value ... b)))))) (lambda (b) (\` (def-buffer (\, (buffer-name b)) (\, (buffer-file-name b)) (\, (buffer-local-value (quote major-mode) b)))))) :key #f(compiled-function (s-f) #<bytecode 0x42660565>))
  #f(compiled-function (b) #<bytecode 0x42660571>)(#<killed buffer>)
  mapcar(#f(compiled-function (b) #<bytecode 0x42660571>) (#<buffer foo.lean> #<buffer config.el<6>> #<buffer config.el<5>> #<buffer fsharp> #<buffer elixir> #<buffer packages.el<3>> #<buffer config.el<4>> #<buffer README.md> #<buffer lean-flycheck.el> #<buffer lean-settings.el> #<buffer lean-mode.el> #<buffer lean-mode> #<killed buffer> #<buffer lean<2>> #<buffer tmp> #<buffer config.el<3>> #<buffer ocaml> #<buffer packages.el<2>> #<buffer config.el<2>> #<buffer lang> #<buffer lean> #<buffer packages.el> #<buffer magit-diff: .emacs.d> #<buffer magit: .emacs.d> #<buffer agda> #<buffer config.el> #<buffer README.org>))
  persp-buffers-to-savelist(#s(perspective :name "main" :buffers (#<buffer foo.lean> #<buffer config.el<6>> #<buffer config.el<5>> #<buffer fsharp> #<buffer elixir> #<buffer packages.el<3>> #<buffer config.el<4>> #<buffer README.md> #<buffer lean-flycheck.el> #<buffer lean-settings.el> #<buffer lean-mode.el> #<buffer lean-mode> #<killed buffer> #<buffer lean<2>> #<buffer tmp> #<buffer config.el<3>> #<buffer ocaml> #<buffer packages.el<2>> #<buffer config.el<2>> #<buffer lang> #<buffer lean> #<buffer packages.el> #<buffer magit-diff: .emacs.d> #<buffer magit: .emacs.d> #<buffer agda> #<buffer config.el> #<buffer README.org>) :window-conf (((min-height . 8) (min-width . 20) (min-height-ignore . 6) (min-width-ignore . 7) (min-height-safe . 2) (min-width-safe . 4) (min-pixel-height . 152) (min-pixel-width . 160) (min-pixel-height-ignore . 104) (min-pixel-width-ignore . 49) (min-pixel-height-safe . 38) (min-pixel-width-safe . 32)) hc (pixel-width . 1436) (pixel-height . 769) (total-width . 180) (total-height . 40) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (vc (pixel-width . 718) (pixel-height . 769) (total-width . 90) (total-height . 40) (normal-height . 1.0) (normal-width . 0.5) (combination-limit) (leaf (pixel-width . 718) (pixel-height . 384) (total-width . 90) (total-height . 20) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "config.el<2>" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 80) (start . 1))) (leaf (last . t) (pixel-width . 718) (pixel-height . 385) (total-width . 90) (total-height . 20) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "foo.lean" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 1) (start . 1)))) (leaf (last . t) (pixel-width . 718) (pixel-height . 769) (total-width . 90) (total-height . 40) (normal-height . 1.0) (normal-width . 0.5) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 65 . [... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]) :idx -1))) (buffer "lean-mode.el" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 1898) (start . 1804)))) :parameters ((last-project-root . "/Users/rgrinberg/.emacs.d/.local/straight/repos/lean-mode/")) :weak nil :auto nil :hidden nil))
  persp-to-savelist(#s(perspective :name "main" :buffers (#<buffer foo.lean> #<buffer config.el<6>> #<buffer config.el<5>> #<buffer fsharp> #<buffer elixir> #<buffer packages.el<3>> #<buffer config.el<4>> #<buffer README.md> #<buffer lean-flycheck.el> #<buffer lean-settings.el> #<buffer lean-mode.el> #<buffer lean-mode> #<killed buffer> #<buffer lean<2>> #<buffer tmp> #<buffer config.el<3>> #<buffer ocaml> #<buffer packages.el<2>> #<buffer config.el<2>> #<buffer lang> #<buffer lean> #<buffer packages.el> #<buffer magit-diff: .emacs.d> #<buffer magit: .emacs.d> #<buffer agda> #<buffer config.el> #<buffer README.org>) :window-conf (((min-height . 8) (min-width . 20) (min-height-ignore . 6) (min-width-ignore . 7) (min-height-safe . 2) (min-width-safe . 4) (min-pixel-height . 152) (min-pixel-width . 160) (min-pixel-height-ignore . 104) (min-pixel-width-ignore . 49) (min-pixel-height-safe . 38) (min-pixel-width-safe . 32)) hc (pixel-width . 1436) (pixel-height . 769) (total-width . 180) (total-height . 40) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (vc (pixel-width . 718) (pixel-height . 769) (total-width . 90) (total-height . 40) (normal-height . 1.0) (normal-width . 0.5) (combination-limit) (leaf (pixel-width . 718) (pixel-height . 384) (total-width . 90) (total-height . 20) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "config.el<2>" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 80) (start . 1))) (leaf (last . t) (pixel-width . 718) (pixel-height . 385) (total-width . 90) (total-height . 20) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "foo.lean" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 1) (start . 1)))) (leaf (last . t) (pixel-width . 718) (pixel-height . 769) (total-width . 90) (total-height . 40) (normal-height . 1.0) (normal-width . 0.5) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 65 . [... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]) :idx -1))) (buffer "lean-mode.el" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 1898) (start . 1804)))) :parameters ((last-project-root . "/Users/rgrinberg/.emacs.d/.local/straight/repos/lean-mode/")) :weak nil :auto nil :hidden nil))
  mapcar(persp-to-savelist (nil #s(perspective :name "main" :buffers (#<buffer foo.lean> #<buffer config.el<6>> #<buffer config.el<5>> #<buffer fsharp> #<buffer elixir> #<buffer packages.el<3>> #<buffer config.el<4>> #<buffer README.md> #<buffer lean-flycheck.el> #<buffer lean-settings.el> #<buffer lean-mode.el> #<buffer lean-mode> #<killed buffer> #<buffer lean<2>> #<buffer tmp> #<buffer config.el<3>> #<buffer ocaml> #<buffer packages.el<2>> #<buffer config.el<2>> #<buffer lang> #<buffer lean> #<buffer packages.el> #<buffer magit-diff: .emacs.d> #<buffer magit: .emacs.d> #<buffer agda> #<buffer config.el> #<buffer README.org>) :window-conf (((min-height . 8) (min-width . 20) (min-height-ignore . 6) (min-width-ignore . 7) (min-height-safe . 2) (min-width-safe . 4) (min-pixel-height . 152) (min-pixel-width . 160) (min-pixel-height-ignore . 104) (min-pixel-width-ignore . 49) (min-pixel-height-safe . 38) (min-pixel-width-safe . 32)) hc (pixel-width . 1436) (pixel-height . 769) (total-width . 180) (total-height . 40) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (vc (pixel-width . 718) (pixel-height . 769) (total-width . 90) (total-height . 40) (normal-height . 1.0) (normal-width . 0.5) (combination-limit) (leaf (pixel-width . 718) (pixel-height . 384) (total-width . 90) (total-height . 20) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "config.el<2>" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 80) (start . 1))) (leaf (last . t) (pixel-width . 718) (pixel-height . 385) (total-width . 90) (total-height . 20) (normal-height . 0.5) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "foo.lean" (selected) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 1) (start . 1)))) (leaf (last . t) (pixel-width . 718) (pixel-height . 769) (total-width . 90) (total-height . 40) (normal-height . 1.0) (normal-width . 0.5) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring ... :idx -1))) (buffer "lean-mode.el" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 1898) (start . 1804)))) :parameters ((last-project-root . "/Users/rgrinberg/.emacs.d/.local/straight/repos/lean-mode/")) :weak nil :auto nil :hidden nil) #s(perspective :name ".emacs.d" :buffers (#<buffer cl-seq.el.gz> #<buffer *eshell*> #<buffer autoloads.el> #<buffer .local> #<buffer Makefile> #<buffer .emacs.d> #<buffer config.el<3>> #<buffer config.el<4>> #<buffer config.el<7>> #<buffer config.el<2>>) :window-conf (((min-height . 4) (min-width . 10) (min-height-ignore . 3) (min-width-ignore . 3) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 76) (min-pixel-width . 80) (min-pixel-height-ignore . 52) (min-pixel-width-ignore . 24) (min-pixel-height-safe . 19) (min-pixel-width-safe . 16)) leaf (pixel-width . 1436) (pixel-height . 769) (total-width . 180) (total-height . 40) (normal-height . 1.0) (normal-width . 1.0) (parameters (better-jumper-struct . #s(better-jumper-jump-list-struct :ring (0 63 . [... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...]) :idx -1))) (buffer "cl-seq.el.gz" (selected . t) (hscroll . 0) (fringes 4 4 t) (margins nil) (scroll-bars nil 0 t nil 0 t) (vscroll . 0) (dedicated) (point . 20856) (start . 20856))) :parameters ((last-project-root . "/Users/rgrinberg/.emacs.d/.local/straight/repos/lean-mode/")) :weak nil :auto nil :hidden nil)))
  persps-to-savelist(#<hash-table equal 3/10 0x42667341>)
  persp-save-state-to-file("/Users/rgrinberg/.emacs.d/.local/etc/workspaces/autosave")
  (cond ((require (quote persp-mode) nil t) (if persp-mode nil (persp-mode 1)) (setq persp-auto-save-opt 0) (persp-save-state-to-file file)) ((and (require (quote frameset) nil t) (require (quote restart-emacs) nil t)) (let ((frameset-filter-alist (append (quote (...)) frameset-filter-alist)) (desktop-base-file-name (file-name-nondirectory file)) (desktop-dirname (file-name-directory file)) (desktop-restore-eager t) desktop-file-modtime) (make-directory desktop-dirname t) (let ((desktop-file-modtime (nth 5 (file-attributes ...)))) (desktop-save desktop-dirname t)))) ((error "No session backend to save session with")))
  doom-save-session()
  doom/quicksave-session()
  doom/restart-and-restore(nil)
  funcall-interactively(doom/restart-and-restore nil)
  call-interactively(doom/restart-and-restore nil nil)
  command-execute(doom/restart-and-restore)

So this bug is definitely not fixed btw.

rgrinberg commented 4 years ago

I haven't seen this in ages, so it's likely to be fixed.

jsravn commented 4 years ago

It's been happening to me over the last few weeks - it happened a couple times yesterday on latest. Maybe it's something config related? I will try to dig further when I get a chance.

betaprior commented 4 years ago

Yeah, this is still an issue it seems.

czikus commented 4 years ago

Definitely still an issue. Makes +helm/workspace-mini unusable since calling it results in helm-buffers-list--init: Wrong type argument: stringp, nil.

CodyWilson commented 4 years ago

Yeah, guys. Honestly this issue should be closed. And you guys should open up your own issues, with your own debug logs. What caused this could have literally nothing to do with why "+helm/workspace-mini unusable since calling it results in helm-buffers-list--init: Wrong type argument: stringp, nil".

czikus commented 4 years ago

It is related, I haven't mentioned that, but +helm/workspace-mini throws the error always at the same time when selecting deleted buffer happens.

CodyWilson commented 4 years ago

Cool. So now all that's needed is: Your M-x doom/info. A backtrace of the error. Guide here: https://github.com/hlissner/doom-emacs/blob/develop/docs/getting_started.org#how-to-extract-a-backtrace-from-an-error And the steps to reproduce/anything else you can give to help hunt down the problem.

czikus commented 4 years ago

Here's the backtrace that I get for +helm/workspace-mini. At the same time when this happens, the following messages are appearing:

Error running timer: (error "Selecting deleted buffer") [2 times]
next-line: End of buffer [2 times]
Error running timer: (error "Selecting deleted buffer")
next-line: End of buffer [2 times]
Error running timer: (error "Selecting deleted buffer")
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  helm-buffer--format-mode-name(nil)
  helm-buffers-list--init()
  apply(helm-buffers-list--init nil)
  helm-apply-functions-from-source(((name . "Buffers") (init . helm-buffers-list--init) (candidates nil) (keymap keymap (11 . helm-buffer-run-kill-buffers) (8 . helm-buffer-run-query-replace) (6 . helm-buffers-run-occur) (1 . helm-toggle-all-marks) (67108911 . helm-toggle-buffers-details) (67108910 . helm-buffers-toggle-show-hidden-buffers) (S-return . helm-buffer-switch-other-window) (C-return) (29) (67108925 . helm-buffer-diff-persistent) (3 keymap (20 . helm-buffers-switch-to-buffer-new-tab) (97) (100) (61 . helm-buffer-run-ediff) (15 . helm-buffer-switch-other-frame) (111 . helm-buffer-switch-other-window)) (24 keymap (11 . helm-buffer-run-kill-buffers) (15) (111) (115) (19) (4 . helm-buffers-run-browse-project)) (19 . helm-buffer-run-save-some-buffers) (27 keymap (14 . helm-buffer-run-rename-buffer) (8 . helm-buffer-run-query-replace-regexp) (85) (13) (67108896) (97) (109) (82) (37) (67108901) (68) (71) (61 . helm-buffer-run-ediff-merge) (103 keymap (115 . helm-buffer-run-zgrep))) keymap (17 . keyboard-quit) (1 . helm-toggle-all-marks) (C-return . helm-select-action) (tab) (f13 lambda nil (interactive) (helm-select-nth-action 12)) (f12 lambda nil (interactive) (helm-select-nth-action 11)) (f11 lambda nil (interactive) (helm-select-nth-action 10)) (f10 lambda nil (interactive) (helm-select-nth-action 9)) (f9 lambda nil (interactive) (helm-select-nth-action 8)) (f8 lambda nil (interactive) (helm-select-nth-action 7)) (f7 lambda nil (interactive) (helm-select-nth-action 6)) (f6 lambda nil (interactive) (helm-select-nth-action 5)) (f5 lambda nil (interactive) (helm-select-nth-action 4)) (f4 lambda nil (interactive) (helm-select-nth-action 3)) (f3 lambda nil (interactive) (helm-select-nth-action 2)) (f2 lambda nil (interactive) (helm-select-nth-action 1)) (menu-bar keymap (help-menu keymap (describe keymap (describe-mode . helm-help)))) (help keymap (109 . helm-help)) (23 . #f(compiled-function () (interactive nil) #<bytecode 0x158348e231c9>)) (f1 lambda nil (interactive) (helm-select-nth-action 0)) (8 keymap (104 . undefined) (8 . undefined) (99 . helm-customize-group) (4 . helm-enable-or-switch-to-debug)) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (63 . helm-help) (110 . #f(compiled-function () (interactive nil) #<bytecode 0x158348e22609>)) (108 . helm-display-line-numbers-mode) (62 . helm-toggle-truncate-line) (21 . helm-refresh) (6 . helm-follow-mode) (9 . helm-copy-to-buffer) (11 . helm-kill-selection-and-quit) (25 . helm-yank-selection) (37 . helm-exchange-minibuffer-and-header-line) (95 . helm-toggle-full-frame) (45 . helm-swap-windows)) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) (19 . helm-minibuffer-history) (24 keymap (57 . helm-execute-selection-action-at-nth-+9) (56 . helm-execute-selection-action-at-nth-+8) (55 . helm-execute-selection-action-at-nth-+7) (54 . helm-execute-selection-action-at-nth-+6) (53 . helm-execute-selection-action-at-nth-+5) (52 . helm-execute-selection-action-at-nth-+4) (51 . helm-execute-selection-action-at-nth-+3) (50 . helm-execute-selection-action-at-nth-+2) (49 . helm-execute-selection-action-at-nth-+1) (104 keymap (77 . helm-help)) (2 . helm-resume-list-buffers-after-quit) (98 . helm-resume-previous-session-after-quit) (6 . helm-quit-and-find-file)) (11) (67108896 . helm-toggle-visible-mark-forward) (0) ...) (action . helm-type-buffer-actions) (persistent-action . helm-buffers-list-persistent-action) (persistent-help . "Show this buffer") (help-message . helm-buffer-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-skip-boring-buffers helm-buffers-sort-transformer helm-highlight-buffers) (volatile . t) (match . helm-buffers-match-function) (redisplay . identity) (nohighlight . t) (mode-line "Buffer(s)" nil) (header-line . "C-j: Show this buffer (keeping session)") (resume lambda nil (setq helm-buffers-in-project-p nil)) (group . helm-buffers) (migemo . nomultimatch) (buffer-list . helm-buffer-list)) helm-buffers-list--init)
  helm-compute-attr-in-sources(init (((name . "Buffers") (init . helm-buffers-list--init) (candidates nil) (keymap keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... keymap ... ... ... ... ... ... ... ... ...) (action . helm-type-buffer-actions) (persistent-action . helm-buffers-list-persistent-action) (persistent-help . "Show this buffer") (help-message . helm-buffer-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-skip-boring-buffers helm-buffers-sort-transformer helm-highlight-buffers) (volatile . t) (match . helm-buffers-match-function) (redisplay . identity) (nohighlight . t) (mode-line "Buffer(s)" nil) (header-line . "C-j: Show this buffer (kee...") (resume lambda nil ...) (group . helm-buffers) (migemo . nomultimatch) (buffer-list . helm-buffer-list)) ((name . "Recentf") (init lambda nil ... ...) (candidates lambda nil recentf-list) (keymap keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... keymap ... ... ... ... ... ...) (action ... ... ... ... ... ... ... ... ... ...) (persistent-action . helm-ff-kill-or-find-buffer-fname) (persistent-help . "Show this file") (help-message . helm-generic-file-help-message) (requires-pattern . 0) (candidate-transformer helm-skip-boring-files helm-w32-pathname-transformer) (filtered-candidate-transformer helm-highlight-files helm-fuzzy-matching-sort-fn-preserve-ties-order helm-fuzzy-highlight-matches) (action-transformer helm-transform-file-load-el helm-transform-file-browse-url helm-transform-file-cache) (pattern-transformer . helm-recentf-pattern-transformer) (match helm-mm-exact-match helm-mm-match helm-fuzzy-match helm-mm-3-migemo-match) (fuzzy-match . t) (redisplay . identity) (mode-line "File(s)" nil) (header-line . "C-j: Show this file (keepi...") (multimatch . t) (match-part lambda ... ...) (group . helm-files) (migemo . t)) ((name . "Create buffer") (candidates "dummy") (keymap keymap ... keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (action ... ... ...) (requires-pattern . 0) (filtered-candidate-transformer ... helm-fuzzy-highlight-matches) (volatile . t) (match . identity) (redisplay . identity) (header-line . "C-j: Create buffer (C-u ch...") (group . helm) (accept-empty . t))))
  helm-initial-setup(nil (((name . "Buffers") (init . helm-buffers-list--init) (candidates nil) (keymap keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... keymap ... ... ... ... ... ... ... ... ...) (action . helm-type-buffer-actions) (persistent-action . helm-buffers-list-persistent-action) (persistent-help . "Show this buffer") (help-message . helm-buffer-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-skip-boring-buffers helm-buffers-sort-transformer helm-highlight-buffers) (volatile . t) (match . helm-buffers-match-function) (redisplay . identity) (nohighlight . t) (mode-line "Buffer(s)" nil) (header-line . "C-j: Show this buffer (kee...") (resume lambda nil ...) (group . helm-buffers) (migemo . nomultimatch) (buffer-list . helm-buffer-list)) ((name . "Recentf") (init lambda nil ... ...) (candidates lambda nil recentf-list) (keymap keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... keymap ... ... ... ... ... ...) (action ... ... ... ... ... ... ... ... ... ...) (persistent-action . helm-ff-kill-or-find-buffer-fname) (persistent-help . "Show this file") (help-message . helm-generic-file-help-message) (requires-pattern . 0) (candidate-transformer helm-skip-boring-files helm-w32-pathname-transformer) (filtered-candidate-transformer helm-highlight-files helm-fuzzy-matching-sort-fn-preserve-ties-order helm-fuzzy-highlight-matches) (action-transformer helm-transform-file-load-el helm-transform-file-browse-url helm-transform-file-cache) (pattern-transformer . helm-recentf-pattern-transformer) (match helm-mm-exact-match helm-mm-match helm-fuzzy-match helm-mm-3-migemo-match) (fuzzy-match . t) (redisplay . identity) (mode-line "File(s)" nil) (header-line . "C-j: Show this file (keepi...") (multimatch . t) (match-part lambda ... ...) (group . helm-files) (migemo . t)) ((name . "Create buffer") (candidates "dummy") (keymap keymap ... keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (action ... ... ...) (requires-pattern . 0) (filtered-candidate-transformer ... helm-fuzzy-highlight-matches) (volatile . t) (match . identity) (redisplay . identity) (header-line . "C-j: Create buffer (C-u ch...") (group . helm) (accept-empty . t))))
  helm-initialize(nil nil nil (helm-source-buffers-list helm-source-recentf helm-source-buffer-not-found))
  helm-internal((helm-source-buffers-list helm-source-recentf helm-source-buffer-not-found) nil nil nil nil "*helm mini*" nil nil nil)
  apply(helm-internal ((helm-source-buffers-list helm-source-recentf helm-source-buffer-not-found) nil nil nil nil "*helm mini*" nil nil nil))
  helm((helm-source-buffers-list helm-source-recentf helm-source-buffer-not-found) nil nil nil nil "*helm mini*" nil nil nil)
  apply(helm ((helm-source-buffers-list helm-source-recentf helm-source-buffer-not-found) nil nil nil nil "*helm mini*" nil nil nil))
  helm(:sources (helm-source-buffers-list helm-source-recentf helm-source-buffer-not-found) :buffer "*helm mini*" :ff-transformer-show-only-basename nil :truncate-lines t :left-margin-width 0)
  helm-mini()
  (progn (fset 'buffer-list vnew) (helm-mini))
  (unwind-protect (progn (fset 'buffer-list vnew) (helm-mini)) (fset 'buffer-list old))
  (let* ((vnew #'(lambda (&optional frame) (persp-buffer-list-restricted frame))) (old (symbol-function 'buffer-list))) (unwind-protect (progn (fset 'buffer-list vnew) (helm-mini)) (fset 'buffer-list old)))
  (let ((*persp-restrict-buffers-to* 0) (persp-restrict-buffers-to-if-foreign-buffer nil)) (let* ((vnew #'(lambda (&optional frame) (persp-buffer-list-restricted frame))) (old (symbol-function 'buffer-list))) (unwind-protect (progn (fset 'buffer-list vnew) (helm-mini)) (fset 'buffer-list old))))
  (with-no-warnings (let ((*persp-restrict-buffers-to* 0) (persp-restrict-buffers-to-if-foreign-buffer nil)) (let* ((vnew #'(lambda (&optional frame) (persp-buffer-list-restricted frame))) (old (symbol-function 'buffer-list))) (unwind-protect (progn (fset 'buffer-list vnew) (helm-mini)) (fset 'buffer-list old)))))
  +helm/workspace-mini()
  funcall-interactively(+helm/workspace-mini)
  call-interactively(+helm/workspace-mini nil nil)
  command-execute(+helm/workspace-mini)
czikus commented 4 years ago

A few additional observations. When the problem occurs, (persp-buffer-list-restricted) returns: (...normal buffers here... #<killed buffer>) running (persp-filter-out-bad-buffers) fixes the problem.

hlissner commented 4 years ago

As of 7d60318 this issue should hopefully be resolved. Let me know if it resurfaces and I'll reopen it. Thanks for bringing it to my attention!