Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Bug in 0.5.3 not present in 0.4.3 #278

Closed
mickeynp opened this issue Mar 2, 2024 · 3 comments
Closed

Bug in 0.5.3 not present in 0.4.3 #278

mickeynp opened this issue Mar 2, 2024 · 3 comments
Labels
duplicate This issue or pull request already exists

Comments

@mickeynp
Copy link

mickeynp commented Mar 2, 2024

Hi Jonas,

One of my users reported an issue with a transient popup that only affects newer versions of transient, but not older ones.

mickeynp/combobulate#83

Debugger entered--Lisp error: (invalid-slot-name "#<transient-suffix transient-suffix-4a0a2148>" pad-keys)
  apply(debug (error (invalid-slot-name "#<transient-suffix transient-suffix-4a0a2148>" pad-keys)))
  transient--exit-and-debug(error (invalid-slot-name "#<transient-suffix transient-suffix-4a0a2148>" pad-keys))
  signal(invalid-slot-name ("#<transient-suffix transient-suffix-4a0a2148>" pad-keys))
  #f(compiled-function (object slot-name operation &optional new-value) #<bytecode 0x9818c69bceba921>)(#<transient-suffix transient-suffix-4a0a2148> pad-keys oref)
  apply(#f(compiled-function (object slot-name operation &optional new-value) #<bytecode 0x9818c69bceba921>) #<transient-suffix transient-suffix-4a0a2148> (pad-keys oref))
  #f(compiled-function (arg &rest args) #<bytecode 0x1f52eae4681d937>)(#<transient-suffix transient-suffix-4a0a2148> pad-keys oref)
  apply(#f(compiled-function (arg &rest args) #<bytecode 0x1f52eae4681d937>) #<transient-suffix transient-suffix-4a0a2148> pad-keys oref)
  #f(compiled-function (arg0 arg &rest args) #<bytecode 0x158943f7e54e5a4a>)(#<transient-suffix transient-suffix-4a0a2148> pad-keys oref)
  apply(#f(compiled-function (arg0 arg &rest args) #<bytecode 0x158943f7e54e5a4a>) #<transient-suffix transient-suffix-4a0a2148> pad-keys oref nil)
  slot-missing(#<transient-suffix transient-suffix-4a0a2148> pad-keys oref)
  #<subr eieio-oref>(#<transient-suffix transient-suffix-4a0a2148> pad-keys)
  eieio-oref--closql-oref(#<subr eieio-oref> #<transient-suffix transient-suffix-4a0a2148> pad-keys)
  apply(eieio-oref--closql-oref #<subr eieio-oref> (#<transient-suffix transient-suffix-4a0a2148> pad-keys))
  eieio-oref(#<transient-suffix transient-suffix-4a0a2148> pad-keys)
  transient--maybe-pad-keys(#<transient-suffix transient-suffix-4a0a2148> #<transient-columns transient-columns-4a1a16c4>)
  #f(compiled-function (column) #<bytecode -0x88b60c68aebe7a4>)(#<transient-suffix transient-suffix-4a0a2148>)
  mapcar(#f(compiled-function (column) #<bytecode -0x88b60c68aebe7a4>) (#<transient-suffix transient-suffix-4a0a2148> #<transient-suffix transient-suffix-45c20cc8> #<transient-suffix transient-suffix-45c79e00> #<transient-suffix transient-suffix-45c7e9f0> #<transient-suffix transient-suffix-45c9130a> #<transient-suffix transient-suffix-45ce77ae> #<transient-suffix transient-suffix-45d8150a> #<transient-suffix transient-suffix-45df5dda> #<transient-suffix transient-suffix-45ea6f0a> #<transient-suffix transient-suffix-466760f8> #<transient-suffix transient-suffix-4a35560e> #<transient-suffix transient-suffix-d16ac43e> #<transient-suffix transient-suffix-cbd72fe2> #<transient-suffix transient-suffix-f8bae39c> #<transient-suffix transient-suffix-f8b33d98> #<transient-suffix transient-suffix-f95a52a0>))
  #f(compiled-function (group) #<bytecode 0xe25bdf38118d9f9>)(#<transient-columns transient-columns-4a1a16c4>)
  apply(#f(compiled-function (group) #<bytecode 0xe25bdf38118d9f9>) #<transient-columns transient-columns-4a1a16c4>)
  #f(compiled-function (&rest args) #<bytecode -0x176c41c139d0e8c5>)(#<transient-columns transient-columns-4a1a16c4>)
  #f(compiled-function (cl--cnm group) #<bytecode 0x13aa5e91646b518c>)(#f(compiled-function (&rest args) #<bytecode -0x176c41c139d0e8c5>) #<transient-columns transient-columns-4a1a16c4>)
  apply(#f(compiled-function (cl--cnm group) #<bytecode 0x13aa5e91646b518c>) #f(compiled-function (&rest args) #<bytecode -0x176c41c139d0e8c5>) #<transient-columns transient-columns-4a1a16c4>)
  #f(compiled-function (group) "Insert GROUP's description, if any." #<bytecode -0x49d4d213b5dd4e8>)(#<transient-columns transient-columns-4a1a16c4>)
  apply(#f(compiled-function (group) "Insert GROUP's description, if any." #<bytecode -0x49d4d213b5dd4e8>) #<transient-columns transient-columns-4a1a16c4> nil)
  transient--insert-group(#<transient-columns transient-columns-4a1a16c4>)
  transient--insert-groups()
  transient--show()
  transient--redisplay()
  transient-setup(combobulate-envelop)
  combobulate-envelop()
  funcall-interactively(combobulate-envelop)
  command-execute(combobulate-envelop record)
  #<subr execute-extended-command>(nil "combobulate-envelop" nil)
  ad-Advice-execute-extended-command(#<subr execute-extended-command> nil "combobulate-envelop" nil)
  apply(ad-Advice-execute-extended-command #<subr execute-extended-command> (nil "combobulate-envelop" nil))
  execute-extended-command(nil "combobulate-envelop" nil)
  funcall-interactively(execute-extended-command nil "combobulate-envelop" nil)
  command-execute(execute-extended-command)
@tarsius
Copy link
Member

tarsius commented Mar 2, 2024

Duplicate of #277. Note that you can get around this by explicitly specifying :class; more details are linked to in the mentioned issue. (The user probably got transient from GNU Elpa, which was lagging behind a few days and was missing the fix.)

I plan to create another transient release soonish, but that should not be necessary to address this issue (regardless of whether the bug is present in 0.5.3, or just some later development version): just specify :class.

@tarsius tarsius added the duplicate This issue or pull request already exists label Mar 2, 2024
@tarsius tarsius closed this as completed Mar 2, 2024
@mickeynp
Copy link
Author

mickeynp commented Mar 3, 2024

Thanks for your help, Jonas. I'll see about adding :class to prevent this. What exactly does :class do?

@tarsius
Copy link
Member

tarsius commented Mar 3, 2024

The available classes are named transient-{row,column,columns}. So this controls how the suffixes are laid out, and it also affects the expected format from :setup-childen. Depending on the class/layout, we need either a list of suffixes or a list of lists of suffixes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
duplicate This issue or pull request already exists
Projects
None yet
Development

No branches or pull requests

2 participants