Closed nixmaniack closed 4 years ago
Afraid I don't know what's going on there. it just looks like autoload-do-load
is in an infinite loop. Since you're using the devel version of Emacs (27.0.50), I'd guess a bug related to EIEIO and loading byte-compiled files, that may be resolved in the near future. Have updated Emacs recently?
autoload-do-load
is having trouble because of this part of window-purpose-configuration.el
:
;;;###autoload
(defclass purpose-conf ()
((mode-purposes :initarg :mode-purposes
:initform '()
:type purpose-mode-alist)
(name-purposes :initarg :name-purposes
:initform '()
:type purpose-name-alist)
(regexp-purposes :initarg :regexp-purposes
:initform '()
:type purpose-regexp-alist)))
What you could try as work-around is one of these:
(require 'window-purpose)
to dotspacemacs file, so it is called before lazy-load-window-purpose
in the startup process. I think putting it in dotspacemacs/user-config
is early enough.elpa/.../window-purpose-*/
;;;###autoload
line above from window-purpose-configuration.el
and recompile the file (or delete window-purpose-configuraion.elc)I hope this helps somehow, but I have been using Spacemacs on emacs-snapshot at Ubuntu's PPA for a while now. The latest working snapshot has this one as the latest commit: https://github.com/emacs-mirror/emacs/commit/9d829b8be5b86668d5165b9d0c0cdc392b558dd3 and the first one that failed has this one: https://github.com/emacs-mirror/emacs/commit/604a985a1a1066679895d2ec80c7b351ecbf8ff4
The error I was getting looked like it's related to this commit below: https://github.com/emacs-mirror/emacs/commit/47cf2a37e7f7d2df3cc05b657b1b4ad8307c7c64
@bmag in the meantime, your suggestions above worked on my setup to fix this specific error. But I started getting Recursive load error
s at other places.
Have updated Emacs recently?
Yes. I generally use emacs-snapshot from Ubuntu PPA and recently also compiled from latest source. Both failed. Looks like what @korayal mentioned seems to be the root cause.
Although, none of the workarounds you mentioned worked for me :disappointed:. I'll try again with clean install and workarounds mentioned.
If I add require
to dotspacemacs/user-config
, I'm still getting following error.
Spacemacs is ready.
(Spacemacs) Error in dotspacemacs/user-config: Recursive load: "/home/nixmaniack/.emacs.d/elpa/27.0/develop/window-purpose-20190628.1827/window-purpose-configuration.el", "/home/nixmaniack/.emacs.d/elpa/27.0/develop/window-purpose-20190628.1827/window-purpose-configuration.el", "/home/nixmaniack/.emacs.d/elpa/27.0/develop/window-purpose-20190628.1827/window-purpose-configuration.el", "/home/nixmaniack/.emacs.d/elpa/27.0/develop/window-purpose-20190628.1827/window-purpose-configuration.el", "/home/nixmaniack/.emacs.d/elpa/27.0/develop/window-purpose-20190628.1827/window-purpose-configuration.el", "/home/nixmaniack/.emacs.d/elpa/27.0/develop/window-purpose-20190628.1827/window-purpose.el"
Skipping check for new version (reason: dotfile)
eieio--full-class-object: Recursive load: "/home/nixmaniack/.emacs.d/elpa/27.0/develop/window-purpose-20190628.1827/window-purpose-configuration.el", "/home/nixmaniack/.emacs.d/elpa/27.0/develop/window-purpose-20190628.1827/window-purpose-configuration.el", "/home/nixmaniack/.emacs.d/elpa/27.0/develop/window-purpose-20190628.1827/window-purpose-configuration.el", "/home/nixmaniack/.emacs.d/elpa/27.0/develop/window-purpose-20190628.1827/window-purpose-configuration.el", "/home/nixmaniack/.emacs.d/elpa/27.0/develop/window-purpose-20190628.1827/window-purpose-configuration.el", "/home/nixmaniack/.emacs.d/elpa/27.0/develop/window-purpose-20190628.1827/window-purpose.el" [2 times]
Quit
I've tried on following version of emacs.
$ dpkg -l | grep emacs-snap
ii emacs-snapshot 20191017:98923-f75f90a~ubuntu19.04.1 amd64 GNU Emacs editor (with GTK+ user interface)
The last working version that I tried is emacs-snapshot_98673-bbfa999~ubuntu19.10.1
. I don't see any errors on this version.
@nixmaniack did you also comment out/delete the line for autoload
as mentioned in step 3 in @bmag 's comment? (https://github.com/bmag/emacs-purpose/issues/158#issuecomment-543156473)
@korayal Yes, I did try all of them individually and all together.
I just started getting the same error on a Ubuntu 19.04 machine (emacs-snaphot 20191017:98938-2d13a3f~ubuntu19.04.1)
Adding (require 'window-purpose)
in user-config of .spacemacs
works for me:
(defun dotspacemacs/user-config ()
"Configuration function for user code.
This function is called at the very end of Spacemacs initialization after
layers configuration.
This is the place where most of your configurations should be done. Unless it is
explicitly specified that a variable should be set before a package is loaded,
you should place you code here."
(require 'window-purpose) ; workaround until https://github.com/bmag/emacs-purpose/issues/158 is fixed
(...)
I'm running emacs 27.0.50
Bit by this as well...also on the latest snapshot from the Ubuntu PPA
I believe I had this problem when running Emacs master branch a little while back. The issues had to do with changes in eieio
object creation interacting poorly with closql
's overrides and not general autoload
ing and/or window-purpose
.
In Spacemacs, closql
was being loaded by forge
, which was—in turn—loaded by the github
layer. Disabling the github
layer prevented the issues.
That is a horrible solution.
On 11/12/19 12:51 PM, Brandon T. Willard wrote:
I believe I had this problem when running Emacs master branch a little while back. The issues had to do with changes in |eieio| object creation interacting poorly with |closql|'s overrides and not general |autoload|ing and/or |window-purpose|.
In Spacemacs, |closql| was being loaded by |forge|, which was—in turn—loaded by the |github| layer. Disabling the |github| layer prevented the issues.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/bmag/emacs-purpose/issues/158?email_source=notifications&email_token=AAAFUMF4WCCNPUGUTK3JW3LQTLULPA5CNFSM4JBPF46KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED3EP7Q#issuecomment-553011198, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAFUMBUBB2XVZD6RZEB4TDQTLULPANCNFSM4JBPF46A.
It's not a solution; it's a statement about the actual source of the problem and how it was (indirectly) verified.
I misunderstood, sorry!
On 11/12/19 9:07 PM, Brandon T. Willard wrote:
It's not a solution; it's a statement about the actual source of the problem and how it was (indirectly) verified.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/bmag/emacs-purpose/issues/158?email_source=notifications&email_token=AAAFUMHCBGH7JNXAC4ISMF3QTNONLA5CNFSM4JBPF46KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOED4TULY#issuecomment-553204271, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAFUMGANDDEMJGCDJDZGFDQTNONLANCNFSM4JBPF46A.
Has anyone reported this issue to emacs-devel yet?
I think that the issue is that window-purpose
has internal circular dependencies.
Somehow calling a CLASS--eieio-childp
triggers autoloaded libraries to be loaded, which causes that circular dependency to kick in. It could be any such function. They are created by defclass
. Closql happens to advice important functions to call closql-object--eieio-childp
so that is what triggers the bug. If it was not this, then something else could trigger it.
I wasn't actually able to reproduce the issue but I might not have tried hard enough. However when I compiled the window-purpose
I was confronted with a wall of warnings. I recommend you address all of these warnings. Pay close attention to those about undefined things from internal libraries and don't just silence them. In the end there should no longer be circular (but unspecified) dependencies and then loading some library out of order due to autoload cookies also will no longer matter.
I'm curious. Why does purpose-conf have to be autoloaded? It's not a command, what's the point of autoloading it?
Turns out that was my mistake after all: https://github.com/emacscollective/closql/commit/c1a9b816eced2abbcba0dd645830c72d93767b72.
The autoloads is what triggered it.
@tarsius I still see the same backtrace using the latest closql tho.
After restarting and everything?
@tarsius Yep. First install works. Then the loop starts again after restart.
Exact same backtrace
Debugger entered--Lisp error: (error "Recursive load" "/Users/wyuenho/.emacs.d/elpa/window-purpose-201906..." "/Users/wyuenho/.emacs.d/elpa/window-purpose-201906..." "/Users/wyuenho/.emacs.d/elpa/window-purpose-201906..." "/Users/wyuenho/.emacs.d/elpa/window-purpose-201906..." "/Users/wyuenho/.emacs.d/elpa/window-purpose-201906..." "/Users/wyuenho/.emacs.d/elpa/window-purpose-201906..." "/Users/wyuenho/.emacs")
#<subr autoload-do-load>((autoload "window-purpose-configuration" nil nil nil))
apply(#<subr autoload-do-load> (autoload "window-purpose-configuration" nil nil nil))
autoload-do-load((autoload "window-purpose-configuration" nil nil nil))
eieio--full-class-object(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x44a17dfd> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)))
child-of-class-p(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x44a17dfd> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)) closql-object)
object-of-class-p(
closql-object--eieio-childp(
eieio-oset--closql-oset(#f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x41c139b9>)
apply(eieio-oset--closql-oset #f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x41c139b9>) (
eieio-oset(
eieio-set-defaults(
#f(compiled-function (cname superclasses slots options) "Define CNAME as a new subclass of SUPERCLASSES.\nSLOTS are the slots residing in that class definition, and OPTIONS\nholds the class options.\nSee `defclass' for more information." #<bytecode 0x41c2ba9d>)(purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil)
apply(#f(compiled-function (cname superclasses slots options) "Define CNAME as a new subclass of SUPERCLASSES.\nSLOTS are the slots residing in that class definition, and OPTIONS\nholds the class options.\nSee `defclass' for more information." #<bytecode 0x41c2ba9d>) (purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil))
eieio-defclass-internal(purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil)
byte-code("\300\301!\210\300\302!\210\300\303!\210\304\305\306\307!\"\210\304\310\311\307!\"\210\304\312\310\"\210\313\312\314\315#\210\316\307\317\310#\320\307\321\322\321$\207" [require cl-lib eieio window-purpose-utils defalias purpose-conf-p eieio-make-class-predicate purpose-conf purpose-conf--eieio-childp eieio-make-child-predicate purpose-conf-child-p make-obsolete "use (cl-typep ... \\='purpose-conf) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist))] 6)
#<subr autoload-do-load>((autoload "window-purpose-configuration" nil nil nil))
apply(#<subr autoload-do-load> (autoload "window-purpose-configuration" nil nil nil))
autoload-do-load((autoload "window-purpose-configuration" nil nil nil))
eieio--full-class-object(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x44a17dfd> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)))
child-of-class-p(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x44a17dfd> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)) closql-object)
object-of-class-p(
closql-object--eieio-childp(
eieio-oset--closql-oset(#f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x41c139b9>)
apply(eieio-oset--closql-oset #f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x41c139b9>) (
eieio-oset(
eieio-set-defaults(
#f(compiled-function (cname superclasses slots options) "Define CNAME as a new subclass of SUPERCLASSES.\nSLOTS are the slots residing in that class definition, and OPTIONS\nholds the class options.\nSee `defclass' for more information." #<bytecode 0x41c2ba9d>)(purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil)
apply(#f(compiled-function (cname superclasses slots options) "Define CNAME as a new subclass of SUPERCLASSES.\nSLOTS are the slots residing in that class definition, and OPTIONS\nholds the class options.\nSee `defclass' for more information." #<bytecode 0x41c2ba9d>) (purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil))
eieio-defclass-internal(purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil)
byte-code("\300\301!\210\300\302!\210\300\303!\210\304\305\306\307!\"\210\304\310\311\307!\"\210\304\312\310\"\210\313\312\314\315#\210\316\307\317\310#\320\307\321\322\321$\207" [require cl-lib eieio window-purpose-utils defalias purpose-conf-p eieio-make-class-predicate purpose-conf purpose-conf--eieio-childp eieio-make-child-predicate purpose-conf-child-p make-obsolete "use (cl-typep ... \\='purpose-conf) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist))] 6)
#<subr autoload-do-load>((autoload "window-purpose-configuration" nil nil nil))
apply(#<subr autoload-do-load> (autoload "window-purpose-configuration" nil nil nil))
autoload-do-load((autoload "window-purpose-configuration" nil nil nil))
eieio--full-class-object(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x44a17dfd> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)))
child-of-class-p(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x44a17dfd> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)) closql-object)
object-of-class-p(
closql-object--eieio-childp(
eieio-oset--closql-oset(#f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x41c139b9>)
apply(eieio-oset--closql-oset #f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x41c139b9>) (
eieio-oset(
I don't see how that can happen with the new code. Maybe the old code somehow survived in the autoload file or byte-code.
Remove all involved packages. Restart Emacs. Reinstall packages.
That's exactly what I did. The copyright date on closql is 2020, having the same eieio-oref--closql-oref
Does it contain this?:
(defun eieio-oref--closql-oref (fn obj slot)
(if (cl-letf (((symbol-function #'eieio--full-class-object)
#'eieio--class-object))
(closql-object--eieio-childp obj))
(closql-oref obj slot)
(funcall fn obj slot)))
That should prevent anything called by closql-object--eieio-childp
from calling eieio--full-class-object
. According to the above backtrace that is still happening though.
Yes that's the exact same code. All I have in my .emacs is this:
(toggle-debug-on-error)
(require 'forge)
(require 'window-purpose)
I don't see how that is possible. Let's wait for other people to report on whether updating closql
fixes the issue for them or not.
@tarsius Are you able to reproduce this on your own?
No.
On emacs-27?
On emacs-28.
I don't use package.el
and my setup for testing with package.el
anyway is currently quite broken. I will have to fix that first before I can reproduce issues as if I was actually using package.el
myself. That will take some time.
That's why I would like to wait for others to report how this fix is working out for them.
I tried after updating the all packages(including latest closql), removed all byte-compiled files and using emacs-28, I still see the same error.
@nixmaniack try removing some autoloads files. That worked for me with gh.el
try removing some autoloads files.
@agzam I could if I know which ones! 😄Do you have any suggestions which one? I'd probably avoid random removal.
@nixmaniack check the stacktrace and try. Removing gh-autoloads.el helped me with the similar problem with gists.el on emacs-28.
In my experience, I have to just restart Emacs after all package updates install and don't see an issue.
On 6/1/20 5:09 PM, Ag Ibragimov wrote:
@nixmaniack https://github.com/nixmaniack check the stacktrace and try. Removing gh-autoloads.el helped me with the similar problem with gists.el on emacs-28.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/bmag/emacs-purpose/issues/158#issuecomment-637103144, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAFUMEUVBZAWXHOJSFW7D3RUQKIVANCNFSM4JBPF46A.
@robbyoconnor it's a specific issue that appears only on --HEAD of emacs.
@robbyoconnor it's a specific issue that appears only on --HEAD of emacs.
Aware. I too run that.
Hmm.. interesting. @robbyoconnor could you please try one thing (I'm curious). You still use Spacemacs and have github layer installed, right? Can you try M-x gist-list
? Does that still work for you?
So I tried @agzam's recommendation of removing autoload. Based on stacktrace, I could only pinpoint window-purpose autoloads. Removing which does get rid off the recursive load error but emacs throws following error:
Error loading autoloads: (file-missing Cannot open load file No such file or directory /Users/someuser/.emacs.d/elpa/28.0/develop/window-purpose-20190628.1827/window-purpose-autoloads)
And, it breaks window-purpose
functionality. I don't think removing the autoloads is the right way. For now, excluding closql
is the only solution for me.
Even @robbyoconnor's restart after updating packages
doesn't work for me. It consistently throws the same error.
Backtrace:
Debugger entered--Lisp error: (error "Recursive load" "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." "/Users/someuser/.emacs.d/elpa/28.0/develop/wi...")
autoload-do-load((autoload "window-purpose-configuration" nil nil nil))
eieio--full-class-object(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x1fe4f91d0295> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)))
child-of-class-p(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x1fe4f91d0295> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)) closql-object)
object-of-class-p(
closql-object--eieio-childp(
(if (closql-object--eieio-childp obj) (closql-oset obj slot value) (funcall fn obj slot value))
eieio-oset--closql-oset(#f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x1dbd77ca5a3090ab>)
apply(eieio-oset--closql-oset #f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x1dbd77ca5a3090ab>) (
eieio-oset(
eieio-set-defaults(
#f(compiled-function (cname superclasses slots options) "Define CNAME as a new subclass of SUPERCLASSES.\nSLOTS are the slots residing in that class definition, and OPTIONS\nholds the class options.\nSee `defclass' for more information." #<bytecode -0x160a51f5d0dec9cd>)(purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil)
apply(#f(compiled-function (cname superclasses slots options) "Define CNAME as a new subclass of SUPERCLASSES.\nSLOTS are the slots residing in that class definition, and OPTIONS\nholds the class options.\nSee `defclass' for more information." #<bytecode -0x160a51f5d0dec9cd>) (purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil))
eieio-defclass-internal(purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil)
eval-buffer(#<buffer *load*-815791> nil "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." nil t) ; Reading at buffer position 2784
load-with-code-conversion("/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." nil t)
autoload-do-load((autoload "window-purpose-configuration" nil nil nil))
eieio--full-class-object(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x1fe4f91d0295> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)))
child-of-class-p(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x1fe4f91d0295> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)) closql-object)
object-of-class-p(
closql-object--eieio-childp(
(if (closql-object--eieio-childp obj) (closql-oset obj slot value) (funcall fn obj slot value))
eieio-oset--closql-oset(#f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x1dbd77ca5a3090ab>)
apply(eieio-oset--closql-oset #f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x1dbd77ca5a3090ab>) (
eieio-oset(
eieio-set-defaults(
#f(compiled-function (cname superclasses slots options) "Define CNAME as a new subclass of SUPERCLASSES.\nSLOTS are the slots residing in that class definition, and OPTIONS\nholds the class options.\nSee `defclass' for more information." #<bytecode -0x160a51f5d0dec9cd>)(purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil)
apply(#f(compiled-function (cname superclasses slots options) "Define CNAME as a new subclass of SUPERCLASSES.\nSLOTS are the slots residing in that class definition, and OPTIONS\nholds the class options.\nSee `defclass' for more information." #<bytecode -0x160a51f5d0dec9cd>) (purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil))
eieio-defclass-internal(purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil)
eval-buffer(#<buffer *load*-445760> nil "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." nil t) ; Reading at buffer position 2784
load-with-code-conversion("/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." nil t)
autoload-do-load((autoload "window-purpose-configuration" nil nil nil))
eieio--full-class-object(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x1fe4f91d0295> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)))
child-of-class-p(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x1fe4f91d0295> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)) closql-object)
object-of-class-p(
closql-object--eieio-childp(
(if (closql-object--eieio-childp obj) (closql-oset obj slot value) (funcall fn obj slot value))
eieio-oset--closql-oset(#f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x1dbd77ca5a3090ab>)
apply(eieio-oset--closql-oset #f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x1dbd77ca5a3090ab>) (
eieio-oset(
eieio-set-defaults(
#f(compiled-function (cname superclasses slots options) "Define CNAME as a new subclass of SUPERCLASSES.\nSLOTS are the slots residing in that class definition, and OPTIONS\nholds the class options.\nSee `defclass' for more information." #<bytecode -0x160a51f5d0dec9cd>)(purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil)
apply(#f(compiled-function (cname superclasses slots options) "Define CNAME as a new subclass of SUPERCLASSES.\nSLOTS are the slots residing in that class definition, and OPTIONS\nholds the class options.\nSee `defclass' for more information." #<bytecode -0x160a51f5d0dec9cd>) (purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil))
eieio-defclass-internal(purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil)
eval-buffer(#<buffer *load*-271036> nil "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." nil t) ; Reading at buffer position 2784
load-with-code-conversion("/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." nil t)
autoload-do-load((autoload "window-purpose-configuration" nil nil nil))
eieio--full-class-object(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x1fe4f91d0295> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)))
child-of-class-p(#s(eieio--class :name purpose-conf :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name mode-purposes :initform 'nil :type purpose-mode-alist :props nil) #s(cl-slot-descriptor :name name-purposes :initform 'nil :type purpose-name-alist :props nil) #s(cl-slot-descriptor :name regexp-purposes :initform 'nil :type purpose-regexp-alist :props nil)] :index-table #<hash-table eq 3/65 0x1fe4f91d0295> :children nil :initarg-tuples ((:mode-purposes . mode-purposes) (:name-purposes . name-purposes) (:regexp-purposes . regexp-purposes)) :class-slots [] :class-allocation-values [] :default-object-cache nil :options (:custom-groups nil)) closql-object)
object-of-class-p(
closql-object--eieio-childp(
(if (closql-object--eieio-childp obj) (closql-oset obj slot value) (funcall fn obj slot value))
eieio-oset--closql-oset(#f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x1dbd77ca5a3090ab>)
apply(eieio-oset--closql-oset #f(compiled-function (obj slot value) "Do the work for the macro `oset'.\nFills in OBJ's SLOT with VALUE." #<bytecode 0x1dbd77ca5a3090ab>) (
eieio-oset(
eieio-set-defaults(
#f(compiled-function (cname superclasses slots options) "Define CNAME as a new subclass of SUPERCLASSES.\nSLOTS are the slots residing in that class definition, and OPTIONS\nholds the class options.\nSee `defclass' for more information." #<bytecode -0x160a51f5d0dec9cd>)(purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil)
apply(#f(compiled-function (cname superclasses slots options) "Define CNAME as a new subclass of SUPERCLASSES.\nSLOTS are the slots residing in that class definition, and OPTIONS\nholds the class options.\nSee `defclass' for more information." #<bytecode -0x160a51f5d0dec9cd>) (purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil))
eieio-defclass-internal(purpose-conf nil ((mode-purposes :initarg :mode-purposes :initform 'nil :type purpose-mode-alist) (name-purposes :initarg :name-purposes :initform 'nil :type purpose-name-alist) (regexp-purposes :initarg :regexp-purposes :initform 'nil :type purpose-regexp-alist)) nil)
eval-buffer(#<buffer *load*-619191> nil "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." nil t) ; Reading at buffer position 2784
load-with-code-conversion("/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." nil t)
#<subr require>(window-purpose-configuration)
apply(#<subr require> window-purpose-configuration)
require(window-purpose-configuration)
eval-buffer(#<buffer *load*> nil "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." nil t) ; Reading at buffer position 2664
load-with-code-conversion("/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." "/Users/someuser/.emacs.d/elpa/28.0/develop/wi..." nil t)
#<subr require>(window-purpose)
apply(#<subr require> window-purpose)
require(window-purpose)
(lambda nil (require 'window-purpose))()
funcall((lambda nil (require 'window-purpose)))
lazy-load-window-purpose()
spacemacs//transient-hook-lazy-load-window-purpose()
redisplay_internal\ \(C\ function\)()
Broken. Recursive load issue.
On 6/1/20 7:57 PM, Ag Ibragimov wrote:
Hmm.. interesting. @robbyoconnor https://github.com/robbyoconnor could you please try one thing (I'm curious). You still use Spacemacs and have github layer installed, right? Can you try |M-x gist-list|? Does that still work for you?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/bmag/emacs-purpose/issues/158#issuecomment-637187269, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAFUMHLVZQPSX2KM6NBODTRUQ56TANCNFSM4JBPF46A.
Newer commit. May fix issue.
Still the same issue with the new patch as well. Didn't help. Same backtrace. Let me know if you need any more information from the environment when the issue occurs.
Please try the both
branch. It uses both fix attempts.
I didn't see "Recursive Load Error" when using both
branch but it makes other packages break.
Error (use-package): org-dashboard/:catch: Wrong type argument: eieio--class, #s(#s(eieio--class closql-database nil (#s(eieio--class emacsql-sqlite-connection nil (#s(eieio--class emacsql-connection nil nil [#s(cl-slot-descriptor process unbound process nil) #s(cl-slot-descriptor log-buffer nil (or null buffer) ((:documentation . "Output log (debug)."))) #s(cl-slot-descriptor finalizer unbound t ((:documentation . "Object returned from `make-finalizer'.")))] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (process 0 log-buffer 1 finalizer 2)) (emacsql-sqlite-connection) ((:process . process) (:log-buffer . log-buffer)) [#s(cl-slot-descriptor types nil t ((:documentation . "Maps EmacSQL types to SQL types.")))] [nil] #s(#5 unbound nil unbound) (:custom-groups nil (:documentation "A connection to a SQL database.") :abstract t)) #s(eieio--class emacsql-protocol-mixin nil nil [] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data ()) (emacsql-sqlite-connection) nil [] [] #s(#5) (:custom-groups nil (:documentation "A mixin for back-ends following the EmacSQL protocol.
The back-end prompt must be a single \"]\" character. This prompt
value was chosen because it is unreadable. Output must have
exactly one row per line, fields separated by whitespace. NULL
must display as \"nil\".") :abstract t))) [#s(cl-slot-descriptor process unbound process nil) #s(cl-slot-descriptor log-buffer nil (or null buffer) ((:documentation . "Output log (debug)."))) #s(cl-slot-descriptor finalizer unbound t ((:documentation . "Object returned from `make-finalizer'."))) #s(cl-slot-descriptor file unbound (or null string) ((:documentation . "Database file name.")))] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (process 0 log-buffer 1 finalizer 2 file 3)) (closql-database) ((:process . process) (:log-buffer . log-buffer) (:file . file)) [#s(cl-slot-descriptor types '((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil)) t ((:documentation . "Maps EmacSQL types to SQL types.")))] [((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil))] #s(#3 unbound nil unbound unbound) (:custom-groups nil (:documentation "A connection to a SQLite database.")))) [#s(cl-slot-descriptor process unbound process nil) #s(cl-slot-descriptor log-buffer nil (or null buffer) ((:documentation . "Output log (debug)."))) #s(cl-slot-descriptor finalizer unbound t ((:documentation . "Object returned from `make-finalizer'."))) #s(cl-slot-descriptor file unbound (or null string) ((:documentation . "Database file name.")))] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (process 0 log-buffer 1 finalizer 2 file 3)) nil ((:process . process) (:log-buffer . log-buffer) (:file . file)) [#s(cl-slot-descriptor object-class unbound t nil) #s(cl-slot-descriptor types '((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil)) t ((:documentation . "Maps EmacSQL types to SQL types.")))] [unbound ((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil))] nil (:custom-groups nil)) nil nil nil nil), child
Error (use-package): org-noter/:catch: Wrong type argument: eieio--class, #s(#s(eieio--class closql-database nil (#s(eieio--class emacsql-sqlite-connection nil (#s(eieio--class emacsql-connection nil nil [#s(cl-slot-descriptor process unbound process nil) #s(cl-slot-descriptor log-buffer nil (or null buffer) ((:documentation . "Output log (debug)."))) #s(cl-slot-descriptor finalizer unbound t ((:documentation . "Object returned from `make-finalizer'.")))] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (process 0 log-buffer 1 finalizer 2)) (emacsql-sqlite-connection) ((:process . process) (:log-buffer . log-buffer)) [#s(cl-slot-descriptor types nil t ((:documentation . "Maps EmacSQL types to SQL types.")))] [nil] #s(#5 unbound nil unbound) (:custom-groups nil (:documentation "A connection to a SQL database.") :abstract t)) #s(eieio--class emacsql-protocol-mixin nil nil [] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data ()) (emacsql-sqlite-connection) nil [] [] #s(#5) (:custom-groups nil (:documentation "A mixin for back-ends following the EmacSQL protocol.
The back-end prompt must be a single \"]\" character. This prompt
value was chosen because it is unreadable. Output must have
exactly one row per line, fields separated by whitespace. NULL
must display as \"nil\".") :abstract t))) [#s(cl-slot-descriptor process unbound process nil) #s(cl-slot-descriptor log-buffer nil (or null buffer) ((:documentation . "Output log (debug)."))) #s(cl-slot-descriptor finalizer unbound t ((:documentation . "Object returned from `make-finalizer'."))) #s(cl-slot-descriptor file unbound (or null string) ((:documentation . "Database file name.")))] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (process 0 log-buffer 1 finalizer 2 file 3)) (closql-database) ((:process . process) (:log-buffer . log-buffer) (:file . file)) [#s(cl-slot-descriptor types '((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil)) t ((:documentation . "Maps EmacSQL types to SQL types.")))] [((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil))] #s(#3 unbound nil unbound unbound) (:custom-groups nil (:documentation "A connection to a SQLite database.")))) [#s(cl-slot-descriptor process unbound process nil) #s(cl-slot-descriptor log-buffer nil (or null buffer) ((:documentation . "Output log (debug)."))) #s(cl-slot-descriptor finalizer unbound t ((:documentation . "Object returned from `make-finalizer'."))) #s(cl-slot-descriptor file unbound (or null string) ((:documentation . "Database file name.")))] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (process 0 log-buffer 1 finalizer 2 file 3)) nil ((:process . process) (:log-buffer . log-buffer) (:file . file)) [#s(cl-slot-descriptor object-class unbound t nil) #s(cl-slot-descriptor types '((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil)) t ((:documentation . "Maps EmacSQL types to SQL types.")))] [unbound ((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil))] nil (:custom-groups nil)) nil nil nil nil), child
I am unable to reproduce this with Emacs 26.3, 27.0.92 or master. Is anyone beside @nixmaniack still experiencing this? I don't know what else to do at this point. If you are affected, then please try to provide easy step to reproduce this issue, starting from a pristine .emacs.d with no installed packages or configuration (except of course the things necessary to reproduce the issue). Also state what Emacs version you are using.
@nixmaniack did you require window-purpose in your user-config?
I am unable to reproduce this with Emacs 26.3, 27.0.92 or master. Is anyone beside @nixmaniack still experiencing this? I don't know what else to do at this point. If you are affected, then please try to provide easy step to reproduce this issue, starting from a pristine .emacs.d with no installed packages or configuration (except of course the things necessary to reproduce the issue). Also state what Emacs version you are using.
Recursive load issues seem gone for now
@tarsius @robbyoconnor The "Recursive Load" error is not there after the patch.
did you require window-purpose in your user-config?
This was not necessary (and shouldn't be if we're fixing the issue!).
I'm running emacs master.
I was trying to point out the errors(no recursive load) thrown by other two packages because of this change.
Error (use-package): org-noter/:catch: Wrong type argument: eieio--class, #s(#s(eieio--class closql-database nil (#s(eieio--class emacsql-sqlite-connection nil (#s(eieio--class emacsql-connection nil nil [#s(cl-slot-descriptor process unbound process nil) #s(cl-slot-descriptor log-buffer nil (or null buffer) ((:documentation . "Output log (debug)."))) #s(cl-slot-descriptor finalizer unbound t ((:documentation . "Object returned from `make-finalizer'.")))] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (process 0 log-buffer 1 finalizer 2)) (emacsql-sqlite-connection) ((:process . process) (:log-buffer . log-buffer)) [#s(cl-slot-descriptor types nil t ((:documentation . "Maps EmacSQL types to SQL types.")))] [nil] #s(#5 unbound nil unbound) (:custom-groups nil (:documentation "A connection to a SQL database.") :abstract t)) #s(eieio--class emacsql-protocol-mixin nil nil [] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data ()) (emacsql-sqlite-connection) nil [] [] #s(#5) (:custom-groups nil (:documentation "A mixin for back-ends following the EmacSQL protocol.
The back-end prompt must be a single \"]\" character. This prompt
value was chosen because it is unreadable. Output must have
exactly one row per line, fields separated by whitespace. NULL
must display as \"nil\".") :abstract t))) [#s(cl-slot-descriptor process unbound process nil) #s(cl-slot-descriptor log-buffer nil (or null buffer) ((:documentation . "Output log (debug)."))) #s(cl-slot-descriptor finalizer unbound t ((:documentation . "Object returned from `make-finalizer'."))) #s(cl-slot-descriptor file unbound (or null string) ((:documentation . "Database file name.")))] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (process 0 log-buffer 1 finalizer 2 file 3)) (closql-database) ((:process . process) (:log-buffer . log-buffer) (:file . file)) [#s(cl-slot-descriptor types '((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil)) t ((:documentation . "Maps EmacSQL types to SQL types.")))] [((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil))] #s(#3 unbound nil unbound unbound) (:custom-groups nil (:documentation "A connection to a SQLite database.")))) [#s(cl-slot-descriptor process unbound process nil) #s(cl-slot-descriptor log-buffer nil (or null buffer) ((:documentation . "Output log (debug)."))) #s(cl-slot-descriptor finalizer unbound t ((:documentation . "Object returned from `make-finalizer'."))) #s(cl-slot-descriptor file unbound (or null string) ((:documentation . "Database file name.")))] #s(hash-table size 65 test eq rehash-size 1.5 rehash-threshold 0.8125 data (process 0 log-buffer 1 finalizer 2 file 3)) nil ((:process . process) (:log-buffer . log-buffer) (:file . file)) [#s(cl-slot-descriptor object-class unbound t nil) #s(cl-slot-descriptor types '((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil)) t ((:documentation . "Maps EmacSQL types to SQL types.")))] [unbound ((integer "INTEGER") (float "REAL") (object "TEXT") (nil nil))] nil (:custom-groups nil)) nil nil nil nil), child
I can confirm this recursive load problem is fixed after emacscollective/closql@079e09f. I suggest @nixmaniack open a new bug on emacscollective/closql to continue the conversation there.
Description :octocat:
Recently, I have started getting "Recursive Load" error when using emacs-purpose in spacemacs. Do you have any idea what is going on here? How can I debug this? I've attached a backtrace and system info with this issues.
Reproduction guide :beetle:
Observed behaviour: :eyes: :broken_heart: As soon as the following error is displayed after startup, emacs becomes unusable.
Interestingly enough, if I delete the
emacs-purpose
package and restart emacs, it downloads the package and works fine in that session. But, as soon as I restart emacs again, the issue pops up again.Excluding emacs-purpose makes emacs usable again.
Expected behaviour: :heart: :smile: No "Recursive Load" errors!
System Info :computer:
Backtrace :paw_prints: