Closed Luis-Henriquez-Perez closed 6 days ago
I tried reproducing the problem, but was unable to. Is this with a brand-new checkout of eplot?
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
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.)
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.
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'.
This should now be fixed.
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)
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?
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!
Thanks! And since it now gives a better error message, I'm closing this issue, then.
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