emacs-elsa / Elsa

Emacs Lisp Static Analyzer and gradual type system.
GNU General Public License v3.0
644 stars 27 forks source link

When trying to require `elsa` or more specifically `elsa-check` I get void-variable elsa-check #175

Closed terlar closed 1 year ago

terlar commented 3 years ago

When I try to require elsa I get the following error:

Debugger entered--Lisp error: (void-variable elsa-check)
  byte-code("\301\10\302\211\303\304\305\306&\7\210\307\310\311\310\312\302#\313#\210\314\310\302\312\302\315%\210\307\316\311\316\317\302#\320#\210\314\316\302\317\302\321%\210\322\300!..." [elsa-check defclass nil :abstract t :documentation "A check is essentially a callback run at every nod..." defalias elsa-check-should-run cl-generic-define ((this elsa-check) form scope state) "Decide if the check should run on FORM.\n\n(fn (THIS..." cl-generic-define-method #f(compiled-function (this form scope state) #<bytecode -0x1c171e9393667150>) elsa-check-check ((this elsa-check) form scope state) "Run THIS check on FORM in SCOPE.\n\n(fn (THIS elsa-c..." #f(compiled-function (this form scope state) #<bytecode -0x1c171e9393667150>) provide] 8)
  #<subr require>(elsa-check)
  apply(#<subr require> elsa-check)
  require(elsa-check)
  byte-code("\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\207" [require elsa-reader elsa-check elsa-error elsa-types elsa-type-helpers elsa-english elsa-state elsa-scope elsa-typed-builtin] 2)
  #<subr require>(elsa-analyser)
  apply(#<subr require> elsa-analyser)
  require(elsa-analyser)
  byte-code("\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\210\300\312!\210\300\313!\210\300\314!\210\300\315..." [require eieio dash cl-extra warnings elsa-types elsa-scope elsa-state elsa-error elsa-analyser elsa-reader elsa-ruleset elsa-extension-builtin elsa-typed-syntax elsa-typed-thingatpt elsa-typed-subr defalias elsa-defvar-p eieio-make-class-predicate elsa-defvar elsa-defvar--eieio-childp eieio-make-child-predicate elsa-defvar-child-p make-obsolete "use (cl-typep ... \\='elsa-defvar) instead" "25.1" define-symbol-prop cl-deftype-satisfies eieio-defclass-internal nil ((name :initarg :name) (type :initarg :type))] 6)
  #<subr require>(elsa)
  apply(#<subr require> elsa)
  require(elsa)

I am running GNU Emacs 28.0.50, more specifically a commit from emacs-pgtk-nativecomp (https://github.com/flatwhatson/emacs/commit/11c956050b57c4a2e8b9a8186b22761ed752dc20).

Any idea what could cause this issue?

Fuco1 commented 3 years ago

Probably some more changes in EIEIO. If I started this again I would definitely not use that framework, it's a %^$ing pain.

terlar commented 3 years ago

Thank you for the feedback, I will try with a different version to see if we can pinpoint this.

Fuco1 commented 1 year ago

I'm using emacs 28 now with native compilation and all the eieio stuff was updated and legacy support is disabled. I'm going to close this as it should work fine now.