larsmagne / eplot

Emacs library for creating charts
https://lars.ingebrigtsen.no/2024/06/26/a-new-package-for-making-charts-in-emacs-eplot/
102 stars 3 forks source link

unbound-slot error when invoking `eplot` #4

Closed Luis-Henriquez-Perez closed 6 days ago

Luis-Henriquez-Perez commented 6 days ago

After doing as you say instead of producing a display I get the following error after invoking eplot.

These are what I use. GNU Emacs 29.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41, cairo version 1.18.0) Arch Linux x86_64

Then say `M-x eplot' in this buffer, and you'll get this displayed:

Debugger entered--Lisp error: (unbound-slot eplot-chart "#<eplot-chart eplot-chart-172392d189f2>" print-format oref)
  signal(unbound-slot (eplot-chart "#<eplot-chart eplot-chart-172392d189f2>" print-format oref))
  #f(compiled-function (object class slot-name fn) "Slot unbound is invoked during an attempt to reference an unbound slot.\nOBJECT is the instance of the object being reference.  CLASS is the\nclass of OBJECT, and SLOT-NAME is the offending slot.  This function\nthrows the signal `unbound-slot'.  You can overload this function and\nreturn the value to use in place of the unbound value.\nArgument FN is the function signaling this error.\nUse `slot-boundp' to determine if a slot is bound or not.\n\nIn CLOS, the argument list is (CLASS OBJECT SLOT-NAME), but\nEIEIO can only dispatch on the first argument, so the first two are swapped." #<bytecode 0x4937b270e59b868>)(#<eplot-chart eplot-chart-172392d189f2> #s(eieio--class :name eplot-chart :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name plots :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name xs :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name ys :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-values :initform nil :type t :props nil) #s(cl-slot-descriptor :name x-type :initform nil :type t :props nil) #s(cl-slot-descriptor :name x-min :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-max :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-ticks :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name y-ticks :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name stride :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name print-format :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-tick-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-label-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-step-map :initform nil :type t :props nil) #s(cl-slot-descriptor :name y-tick-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name y-label-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name inhibit-compute-x-step :initform nil :type t :props nil) #s(cl-slot-descriptor :name set-min :initform nil :type t :props nil) #s(cl-slot-descriptor :name set-max :initform nil :type t :props nil) #s(cl-slot-descriptor :name axes-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name background-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name border-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name border-width :initform nil :type t :props nil) #s(cl-slot-descriptor :name chart-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name font :initform nil :type t :props nil) #s(cl-slot-descriptor :name font-size :initform nil :type t :props nil) #s(cl-slot-descriptor :name format :initform nil :type t :props nil) #s(cl-slot-descriptor :name frame-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name frame-width :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-opacity :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-position :initform nil :type t :props nil) #s(cl-slot-descriptor :name height :initform nil :type t :props nil) #s(cl-slot-descriptor :name label-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name layout :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend-color :initform nil :type t :props nil) ...] :index-table #<hash-table eq 54/65 0x172391f153e3> :children nil :initarg-tuples ((:plots . plots) (:axes-color . axes-color) (:background-color . background-color) (:border-color . border-color) (:border-width . border-width) (:chart-color . chart-color) (:font . font) (:font-size . font-size) (:format . format) (:frame-color . frame-color) (:frame-width . frame-width) (:grid . grid) (:grid-color . grid-color) (:grid-opacity . grid-opacity) (:grid-position . grid-position) (:height . height) (:label-color . label-color) (:layout . layout) (:legend . legend) (:legend-color . legend-color) (:legend-background-color . legend-background-color) (:legend-border-color . legend-border-color) (:margin-bottom . margin-bottom) (:margin-left . margin-left) (:margin-right . margin-right) (:margin-top . margin-top) (:mode . mode) (:surround-color . surround-color) (:title . title) (:title-color . title-color) (:width . width) (:x-axis-label-space . x-axis-label-space) (:x-label . x-label) (:y-label . y-label) (:max . max) (:min . min)) :class-slots [] :class-allocation-values [] :default-object-cache #<eplot-chart eplot-chart-172391f15734> :options (:custom-groups nil)) print-format oref)
  apply(#f(compiled-function (object class slot-name fn) "Slot unbound is invoked during an attempt to reference an unbound slot.\nOBJECT is the instance of the object being reference.  CLASS is the\nclass of OBJECT, and SLOT-NAME is the offending slot.  This function\nthrows the signal `unbound-slot'.  You can overload this function and\nreturn the value to use in place of the unbound value.\nArgument FN is the function signaling this error.\nUse `slot-boundp' to determine if a slot is bound or not.\n\nIn CLOS, the argument list is (CLASS OBJECT SLOT-NAME), but\nEIEIO can only dispatch on the first argument, so the first two are swapped." #<bytecode 0x4937b270e59b868>) #<eplot-chart eplot-chart-172392d189f2> (#s(eieio--class :name eplot-chart :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name plots :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name xs :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name ys :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-values :initform nil :type t :props nil) #s(cl-slot-descriptor :name x-type :initform nil :type t :props nil) #s(cl-slot-descriptor :name x-min :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-max :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-ticks :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name y-ticks :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name stride :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name print-format :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-tick-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-label-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-step-map :initform nil :type t :props nil) #s(cl-slot-descriptor :name y-tick-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name y-label-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name inhibit-compute-x-step :initform nil :type t :props nil) #s(cl-slot-descriptor :name set-min :initform nil :type t :props nil) #s(cl-slot-descriptor :name set-max :initform nil :type t :props nil) #s(cl-slot-descriptor :name axes-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name background-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name border-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name border-width :initform nil :type t :props nil) #s(cl-slot-descriptor :name chart-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name font :initform nil :type t :props nil) #s(cl-slot-descriptor :name font-size :initform nil :type t :props nil) #s(cl-slot-descriptor :name format :initform nil :type t :props nil) #s(cl-slot-descriptor :name frame-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name frame-width :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-opacity :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-position :initform nil :type t :props nil) #s(cl-slot-descriptor :name height :initform nil :type t :props nil) #s(cl-slot-descriptor :name label-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name layout :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend-color :initform nil :type t :props nil) ...] :index-table #<hash-table eq 54/65 0x172391f153e3> :children nil :initarg-tuples ((:plots . plots) (:axes-color . axes-color) (:background-color . background-color) (:border-color . border-color) (:border-width . border-width) (:chart-color . chart-color) (:font . font) (:font-size . font-size) (:format . format) (:frame-color . frame-color) (:frame-width . frame-width) (:grid . grid) (:grid-color . grid-color) (:grid-opacity . grid-opacity) (:grid-position . grid-position) (:height . height) (:label-color . label-color) (:layout . layout) (:legend . legend) (:legend-color . legend-color) (:legend-background-color . legend-background-color) (:legend-border-color . legend-border-color) (:margin-bottom . margin-bottom) (:margin-left . margin-left) (:margin-right . margin-right) (:margin-top . margin-top) (:mode . mode) (:surround-color . surround-color) (:title . title) (:title-color . title-color) (:width . width) (:x-axis-label-space . x-axis-label-space) (:x-label . x-label) (:y-label . y-label) (:max . max) (:min . min)) :class-slots [] :class-allocation-values [] :default-object-cache #<eplot-chart eplot-chart-172391f15734> :options (:custom-groups nil)) print-format oref))
  slot-unbound(#<eplot-chart eplot-chart-172392d189f2> #s(eieio--class :name eplot-chart :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name plots :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name xs :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name ys :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-values :initform nil :type t :props nil) #s(cl-slot-descriptor :name x-type :initform nil :type t :props nil) #s(cl-slot-descriptor :name x-min :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-max :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-ticks :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name y-ticks :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name stride :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name print-format :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-tick-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-label-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-step-map :initform nil :type t :props nil) #s(cl-slot-descriptor :name y-tick-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name y-label-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name inhibit-compute-x-step :initform nil :type t :props nil) #s(cl-slot-descriptor :name set-min :initform nil :type t :props nil) #s(cl-slot-descriptor :name set-max :initform nil :type t :props nil) #s(cl-slot-descriptor :name axes-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name background-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name border-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name border-width :initform nil :type t :props nil) #s(cl-slot-descriptor :name chart-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name font :initform nil :type t :props nil) #s(cl-slot-descriptor :name font-size :initform nil :type t :props nil) #s(cl-slot-descriptor :name format :initform nil :type t :props nil) #s(cl-slot-descriptor :name frame-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name frame-width :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-opacity :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-position :initform nil :type t :props nil) #s(cl-slot-descriptor :name height :initform nil :type t :props nil) #s(cl-slot-descriptor :name label-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name layout :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend-background-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend-border-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name margin-bottom :initform nil :type t :props nil) #s(cl-slot-descriptor :name margin-left :initform nil :type t :props nil) #s(cl-slot-descriptor :name margin-right :initform nil :type t :props nil) #s(cl-slot-descriptor :name margin-top :initform nil :type t :props nil) ...] :index-table #<hash-table eq 54/65 0x172391f153e3> :children nil :initarg-tuples ((:plots . plots) (:axes-color . axes-color) (:background-color . background-color) (:border-color . border-color) (:border-width . border-width) (:chart-color . chart-color) (:font . font) (:font-size . font-size) (:format . format) (:frame-color . frame-color) (:frame-width . frame-width) (:grid . grid) (:grid-color . grid-color) (:grid-opacity . grid-opacity) (:grid-position . grid-position) (:height . height) (:label-color . label-color) (:layout . layout) (:legend . legend) (:legend-color . legend-color) (:legend-background-color . legend-background-color) (:legend-border-color . legend-border-color) (:margin-bottom . margin-bottom) (:margin-left . margin-left) (:margin-right . margin-right) (:margin-top . margin-top) (:mode . mode) (:surround-color . surround-color) (:title . title) (:title-color . title-color) (:width . width) (:x-axis-label-space . x-axis-label-space) (:x-label . x-label) (:y-label . y-label) (:max . max) (:min . min)) :class-slots [] :class-allocation-values [] :default-object-cache #<eplot-chart eplot-chart-172391f15734> :options (:custom-groups nil)) print-format oref)
  eieio-barf-if-slot-unbound(eieio--unbound #<eplot-chart eplot-chart-172392d189f2> print-format oref)
  slot-value(#<eplot-chart eplot-chart-172392d189f2> print-format)
  eplot--adjust-chart(#<eplot-chart eplot-chart-172392d189f2>)
  eplot--render(nil)
  eplot-update()
  eplot-update-view-buffer()
  eplot()
  funcall-interactively(eplot)
  call-interactively(eplot record nil)
  command-execute(eplot record)
  execute-extended-command(nil "eplot" nil)
  funcall-interactively(execute-extended-command nil "eplot" nil)
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)
larsmagne commented 6 days ago

I tried reproducing the problem, but was unable to. Is this with a brand-new checkout of eplot?

Luis-Henriquez-Perez commented 6 days ago

Maybe its due to the fact that I installed it via elpaca. How did you install it, manually?

(elpaca (eplot :host github :branch "main" :repo "larsmagne/eplot"))
Elpaca bc685f5 HEAD -> master, origin/master, origin/HEAD
installer:      0.7
emacs-version:  GNU Emacs 29.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41, cairo version 1.18.0)
git --version:  git version 2.45.2

Also I need to update elpaca. When Im able I'll update it and tr to install it again.

Oh and to answer your question this is the commit of eplot I'm using:

5751000 * main origin/main grafted More build requirements
larsmagne commented 6 days ago

Luis @.***> writes:

Maybe its due to the fact that I installed it via elpaca. How did you install it, manually?

(elpaca (eplot :host github :branch "main" :repo "larsmagne/eplot")) Elpaca bc685f5 HEAD -> master, origin/master, origin/HEAD

Hm... that looks OK, but it doesn't really say whether it's up-to-date or not.

(I don't use a package manager for eplot.)

Luis-Henriquez-Perez commented 6 days ago

I assumed it installed it at the latest commit and unusuallyy it didnt so upgraded eplot to the latest commit. But I upgraded it, rebuilt it, restarted my emacs and tried invoking eplot again:

dcc82f7 * main origin/main Add installation instructions to README But I got the same backtrace:

Debugger entered--Lisp error: (unbound-slot eplot-chart "#<eplot-chart eplot-chart-194167b14c8c>" print-format oref)
  signal(unbound-slot (eplot-chart "#<eplot-chart eplot-chart-194167b14c8c>" print-format oref))
  #f(compiled-function (object class slot-name fn) "Slot unbound is invoked during an attempt to reference an unbound slot.\nOBJECT is the instance of the object being reference.  CLASS is the\nclass of OBJECT, and SLOT-NAME is the offending slot.  This function\nthrows the signal `unbound-slot'.  You can overload this function and\nreturn the value to use in place of the unbound value.\nArgument FN is the function signaling this error.\nUse `slot-boundp' to determine if a slot is bound or not.\n\nIn CLOS, the argument list is (CLASS OBJECT SLOT-NAME), but\nEIEIO can only dispatch on the first argument, so the first two are swapped." #<bytecode 0x4937b525bd08c28>)(#<eplot-chart eplot-chart-194167b14c8c> #s(eieio--class :name eplot-chart :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name plots :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name xs :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name ys :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-values :initform nil :type t :props nil) #s(cl-slot-descriptor :name x-type :initform nil :type t :props nil) #s(cl-slot-descriptor :name x-min :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-max :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-ticks :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name y-ticks :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name stride :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name print-format :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-tick-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-label-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-step-map :initform nil :type t :props nil) #s(cl-slot-descriptor :name y-tick-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name y-label-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name inhibit-compute-x-step :initform nil :type t :props nil) #s(cl-slot-descriptor :name set-min :initform nil :type t :props nil) #s(cl-slot-descriptor :name set-max :initform nil :type t :props nil) #s(cl-slot-descriptor :name axes-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name background-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name border-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name border-width :initform nil :type t :props nil) #s(cl-slot-descriptor :name chart-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name font :initform nil :type t :props nil) #s(cl-slot-descriptor :name font-size :initform nil :type t :props nil) #s(cl-slot-descriptor :name format :initform nil :type t :props nil) #s(cl-slot-descriptor :name frame-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name frame-width :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-opacity :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-position :initform nil :type t :props nil) #s(cl-slot-descriptor :name height :initform nil :type t :props nil) #s(cl-slot-descriptor :name label-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name layout :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend-color :initform nil :type t :props nil) ...] :index-table #<hash-table eq 54/65 0x1941672bb0ab> :children nil :initarg-tuples ((:plots . plots) (:axes-color . axes-color) (:background-color . background-color) (:border-color . border-color) (:border-width . border-width) (:chart-color . chart-color) (:font . font) (:font-size . font-size) (:format . format) (:frame-color . frame-color) (:frame-width . frame-width) (:grid . grid) (:grid-color . grid-color) (:grid-opacity . grid-opacity) (:grid-position . grid-position) (:height . height) (:label-color . label-color) (:layout . layout) (:legend . legend) (:legend-color . legend-color) (:legend-background-color . legend-background-color) (:legend-border-color . legend-border-color) (:margin-bottom . margin-bottom) (:margin-left . margin-left) (:margin-right . margin-right) (:margin-top . margin-top) (:mode . mode) (:surround-color . surround-color) (:title . title) (:title-color . title-color) (:width . width) (:x-axis-label-space . x-axis-label-space) (:x-label . x-label) (:y-label . y-label) (:max . max) (:min . min)) :class-slots [] :class-allocation-values [] :default-object-cache #<eplot-chart eplot-chart-1941672bb39c> :options (:custom-groups nil)) print-format oref)
  apply(#f(compiled-function (object class slot-name fn) "Slot unbound is invoked during an attempt to reference an unbound slot.\nOBJECT is the instance of the object being reference.  CLASS is the\nclass of OBJECT, and SLOT-NAME is the offending slot.  This function\nthrows the signal `unbound-slot'.  You can overload this function and\nreturn the value to use in place of the unbound value.\nArgument FN is the function signaling this error.\nUse `slot-boundp' to determine if a slot is bound or not.\n\nIn CLOS, the argument list is (CLASS OBJECT SLOT-NAME), but\nEIEIO can only dispatch on the first argument, so the first two are swapped." #<bytecode 0x4937b525bd08c28>) #<eplot-chart eplot-chart-194167b14c8c> (#s(eieio--class :name eplot-chart :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name plots :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name xs :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name ys :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-values :initform nil :type t :props nil) #s(cl-slot-descriptor :name x-type :initform nil :type t :props nil) #s(cl-slot-descriptor :name x-min :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-max :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-ticks :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name y-ticks :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name stride :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name print-format :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-tick-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-label-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-step-map :initform nil :type t :props nil) #s(cl-slot-descriptor :name y-tick-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name y-label-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name inhibit-compute-x-step :initform nil :type t :props nil) #s(cl-slot-descriptor :name set-min :initform nil :type t :props nil) #s(cl-slot-descriptor :name set-max :initform nil :type t :props nil) #s(cl-slot-descriptor :name axes-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name background-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name border-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name border-width :initform nil :type t :props nil) #s(cl-slot-descriptor :name chart-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name font :initform nil :type t :props nil) #s(cl-slot-descriptor :name font-size :initform nil :type t :props nil) #s(cl-slot-descriptor :name format :initform nil :type t :props nil) #s(cl-slot-descriptor :name frame-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name frame-width :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-opacity :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-position :initform nil :type t :props nil) #s(cl-slot-descriptor :name height :initform nil :type t :props nil) #s(cl-slot-descriptor :name label-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name layout :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend-color :initform nil :type t :props nil) ...] :index-table #<hash-table eq 54/65 0x1941672bb0ab> :children nil :initarg-tuples ((:plots . plots) (:axes-color . axes-color) (:background-color . background-color) (:border-color . border-color) (:border-width . border-width) (:chart-color . chart-color) (:font . font) (:font-size . font-size) (:format . format) (:frame-color . frame-color) (:frame-width . frame-width) (:grid . grid) (:grid-color . grid-color) (:grid-opacity . grid-opacity) (:grid-position . grid-position) (:height . height) (:label-color . label-color) (:layout . layout) (:legend . legend) (:legend-color . legend-color) (:legend-background-color . legend-background-color) (:legend-border-color . legend-border-color) (:margin-bottom . margin-bottom) (:margin-left . margin-left) (:margin-right . margin-right) (:margin-top . margin-top) (:mode . mode) (:surround-color . surround-color) (:title . title) (:title-color . title-color) (:width . width) (:x-axis-label-space . x-axis-label-space) (:x-label . x-label) (:y-label . y-label) (:max . max) (:min . min)) :class-slots [] :class-allocation-values [] :default-object-cache #<eplot-chart eplot-chart-1941672bb39c> :options (:custom-groups nil)) print-format oref))
  slot-unbound(#<eplot-chart eplot-chart-194167b14c8c> #s(eieio--class :name eplot-chart :docstring nil :parents nil :slots [#s(cl-slot-descriptor :name plots :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name xs :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name ys :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-values :initform nil :type t :props nil) #s(cl-slot-descriptor :name x-type :initform nil :type t :props nil) #s(cl-slot-descriptor :name x-min :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-max :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-ticks :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name y-ticks :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name stride :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name print-format :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-tick-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-label-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name x-step-map :initform nil :type t :props nil) #s(cl-slot-descriptor :name y-tick-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name y-label-step :initform 'eieio--unbound :type t :props nil) #s(cl-slot-descriptor :name inhibit-compute-x-step :initform nil :type t :props nil) #s(cl-slot-descriptor :name set-min :initform nil :type t :props nil) #s(cl-slot-descriptor :name set-max :initform nil :type t :props nil) #s(cl-slot-descriptor :name axes-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name background-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name border-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name border-width :initform nil :type t :props nil) #s(cl-slot-descriptor :name chart-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name font :initform nil :type t :props nil) #s(cl-slot-descriptor :name font-size :initform nil :type t :props nil) #s(cl-slot-descriptor :name format :initform nil :type t :props nil) #s(cl-slot-descriptor :name frame-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name frame-width :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-opacity :initform nil :type t :props nil) #s(cl-slot-descriptor :name grid-position :initform nil :type t :props nil) #s(cl-slot-descriptor :name height :initform nil :type t :props nil) #s(cl-slot-descriptor :name label-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name layout :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend-background-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name legend-border-color :initform nil :type t :props nil) #s(cl-slot-descriptor :name margin-bottom :initform nil :type t :props nil) #s(cl-slot-descriptor :name margin-left :initform nil :type t :props nil) #s(cl-slot-descriptor :name margin-right :initform nil :type t :props nil) #s(cl-slot-descriptor :name margin-top :initform nil :type t :props nil) ...] :index-table #<hash-table eq 54/65 0x1941672bb0ab> :children nil :initarg-tuples ((:plots . plots) (:axes-color . axes-color) (:background-color . background-color) (:border-color . border-color) (:border-width . border-width) (:chart-color . chart-color) (:font . font) (:font-size . font-size) (:format . format) (:frame-color . frame-color) (:frame-width . frame-width) (:grid . grid) (:grid-color . grid-color) (:grid-opacity . grid-opacity) (:grid-position . grid-position) (:height . height) (:label-color . label-color) (:layout . layout) (:legend . legend) (:legend-color . legend-color) (:legend-background-color . legend-background-color) (:legend-border-color . legend-border-color) (:margin-bottom . margin-bottom) (:margin-left . margin-left) (:margin-right . margin-right) (:margin-top . margin-top) (:mode . mode) (:surround-color . surround-color) (:title . title) (:title-color . title-color) (:width . width) (:x-axis-label-space . x-axis-label-space) (:x-label . x-label) (:y-label . y-label) (:max . max) (:min . min)) :class-slots [] :class-allocation-values [] :default-object-cache #<eplot-chart eplot-chart-1941672bb39c> :options (:custom-groups nil)) print-format oref)
  eieio-barf-if-slot-unbound(eieio--unbound #<eplot-chart eplot-chart-194167b14c8c> print-format oref)
  slot-value(#<eplot-chart eplot-chart-194167b14c8c> print-format)
  eplot--adjust-chart(#<eplot-chart eplot-chart-194167b14c8c>)
  eplot--render(nil)
  eplot-update-view-buffer()
  eplot()
  funcall-interactively(eplot)
  call-interactively(eplot record nil)
  command-execute(eplot record)
  execute-extended-command(nil "eplot" nil)
  funcall-interactively(execute-extended-command nil "eplot" nil)
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)

I'll give it a shot manually. And Im curious if this also happens with package-vc-install so I might try it there too.

larsmagne commented 6 days ago

Luis @.***> writes:

I assumed it installed it at the latest commit and unusuallyy it didnt so upgraded eplot to the latest commit. But I upgraded it, rebuilt it, restarted my emacs and tried invoking eplot again:

dcc82f7 * main origin/main Add installation instructions to README But I got the same backtrace:

Debugger entered--Lisp error: (unbound-slot eplot-chart "#" print-format oref)

Ah, I'm able to reproduce the problem now -- it just needed to be in an emptier buffer. I'll get fixin'.

larsmagne commented 6 days ago

This should now be fixed.

Luis-Henriquez-Perez commented 6 days ago

After upgrading, rebuilding and invoking M-x eplot I get a new backtrace. This is at the latest commit: Head: main Don't bug out when called in an empty buffer

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
  min(nil)
  apply(min nil)
  seq-min((nil))
  eplot--compute-chart-dimensions(#<eplot-chart eplot-chart-192afc3e1f96>)
  eplot--render(((:plots ((:headers) (:values (:value nil))))))
  eplot-update-view-buffer()
  eplot()
  funcall-interactively(eplot)
  call-interactively(eplot record nil)
  command-execute(eplot record)
  execute-extended-command(nil "eplot" "eplot")
  funcall-interactively(execute-extended-command nil "eplot" "eplot")
  call-interactively(execute-extended-command nil nil)
  command-execute(execute-extended-command)
larsmagne commented 6 days ago

Luis @.***> writes:

After upgrading, rebuilding and invoking M-x eplot I get a new backtrace. This is at the latest commit: Head: main Don't bug out when called in an empty buffer

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil) min(nil) apply(min nil)

I think I've fixed this one, too...

The base problem here is that it can't parse the buffer you're running M-x eplot in -- what does it look like?

Luis-Henriquez-Perez commented 6 days ago

The base problem here is that it can't parse the buffer you're running M-x eplot in -- what does it look like?

Oh I didn't know u had to run it in a specific buffer. I called it in a buffer with elisp code. I thought it would use a default data set if no data was provided (not that I am saying this should be the behavior I am speaking litterally with no double meanings). Now that I know that I tried it in one of the sample data sets you provided. Got to say pretty cool!

eplot-first-try

larsmagne commented 6 days ago

Thanks! And since it now gives a better error message, I'm closing this issue, then.