"T.V Raman" writes: Answering my own question: There may be a subtle bug that has crept in in setf -- In my code, I changed the (setf (struct-slot-access-form val) by introducing a local var slot, and then using it (setq slot val) (setf (struct-slot-access-form) slot) and that fixed the issue> I have a fairly complex piece of code at > https://github.com/tvraman/emacspeak/blob/master/lisp/emacspeak-google.el#L475 > that generates a bunch of functions. > > The code works correctly in Emacs 30 built on May 25,2023 but bombs > with a hard to explain error in Emacs 30 built on June 25. > > The backtrace is hard to understand, and staring at the code after > macroexpand-all didn't help. > > Here is what the backtrace looks like --- did something change in > Emacs in the last 30 days that might explain this? > > Debugger entered--Lisp error: (void-function \(setf\ funcall\)) > (\(setf\ funcall\) (completing-read "Set tool to: " range) v v) > (let* ((v #'(lambda (cl-x) (progn (or (funcall ... cl-x) (signal > ... ...)) (aref cl-x 5)))) (v tool)) (\(setf\ funcall\) > (completing-read "Set tool to: " range) v v)) > (setf (emacspeak-google-tool-value tool) (completing-read "Set tool to: " range)) > (cond ((and (listp range) (= 2 (length range))) (setf > (emacspeak-google-tool-value tool) (if (equal value (cl-first range)) > (cl-second range) (cl-first range)))) ((listp range) (setf > (emacspeak-google-tool-value tool) (completing-read "Set tool to: " > range))) ((stringp range) (setf (emacspeak-google-tool-value tool) > (read-from-minibuffer range))) (t (error "Unexpected type!"))) > (let* ((belt (emacspeak-google-toolbelt)) (tool (cl-find-if > #'(lambda (tool) (string= (emacspeak-google-tool-name tool) > "date-filter")) belt)) (param (emacspeak-google-tool-param tool)) > (value (emacspeak-google-tool-value tool)) (range > (emacspeak-google-tool-range tool))) (cond ((and (listp range) (= 2 > (length range))) (setf (emacspeak-google-tool-value tool) (if (equal > value (cl-first range)) (cl-second range) (cl-first range)))) ((listp > range) (setf (emacspeak-google-tool-value tool) (completing-read "Set > tool to: " range))) ((stringp range) (setf > (emacspeak-google-tool-value tool) (read-from-minibuffer range))) (t > (error "Unexpected type!"))) (let ((emacspeak-websearch-google-options > (concat (emacspeak-google-toolbelt-to-tbs belt) > (emacspeak-google-toolbelt-to-tbm belt)))) > (emacspeak-google-cache-toolbelt belt) (emacspeak-websearch-google (or > emacspeak-google-query (gweb-google-autocomplete))))) > (emacspeak-google-toolbelt-change-date-filter) > (# emacspeak-google-toolbelt-change-date-filter) > (apply # emacspeak-google-toolbelt-change-date-filter nil) > (ad-Advice-funcall-interactively # emacspeak-google-toolbelt-change-date-filter) > (apply ad-Advice-funcall-interactively # emacspeak-google-toolbelt-change-date-filter) > (funcall-interactively emacspeak-google-toolbelt-change-date-filter) > (# emacspeak-google-toolbelt-change-date-filter) > (apply # emacspeak-google-toolbelt-change-date-filter nil) > (call-interactively@ido-cr+-record-current-command # emacspeak-google-toolbelt-change-date-filter) > (apply call-interactively@ido-cr+-record-current-command # call-interactively> emacspeak-google-toolbelt-change-date-filter) > (call-interactively emacspeak-google-toolbelt-change-date-filter) > (emacspeak-google-toolbelt-change) > (emacspeak-websearch-accessible-google "emacspeak" use-toolbelt) > (emacspeak-websearch-google-with-toolbelt "emacspeak") > (# emacspeak-websearch-google-with-toolbelt "emacspeak") > (apply # emacspeak-websearch-google-with-toolbelt "emacspeak") > (ad-Advice-funcall-interactively # emacspeak-websearch-google-with-toolbelt "emacspeak") > (apply ad-Advice-funcall-interactively # (emacspeak-websearch-google-with-toolbelt "emacspeak")) > (funcall-interactively emacspeak-websearch-google-with-toolbelt "emacspeak") > (# emacspeak-websearch-google-with-toolbelt) > (apply # emacspeak-websearch-google-with-toolbelt nil) > (call-interactively@ido-cr+-record-current-command # emacspeak-websearch-google-with-toolbelt) > (apply call-interactively@ido-cr+-record-current-command # emacspeak-websearch-google-with-toolbelt) > (call-interactively emacspeak-websearch-google-with-toolbelt) > (emacspeak-websearch-dispatch) > (# emacspeak-websearch-dispatch) > (apply # emacspeak-websearch-dispatch nil) > (ad-Advice-funcall-interactively # emacspeak-websearch-dispatch) > (apply ad-Advice-funcall-interactively # emacspeak-websearch-dispatch) > (funcall-interactively emacspeak-websearch-dispatch) > (# emacspeak-websearch-dispatch nil nil) > (apply # emacspeak-websearch-dispatch (nil nil)) > (call-interactively@ido-cr+-record-current-command # emacspeak-websearch-dispatch nil nil) > (apply call-interactively@ido-cr+-record-current-command # (emacspeak-websearch-dispatch nil nil)) > (call-interactively emacspeak-websearch-dispatch nil nil) > (command-execute emacspeak-websearch-dispatch) > > -- > > Thanks, > > --Raman(I Search, I Find, I Misplace, I Research) > ♈ Id: kg:/m/0285kf1 🦮 > > -- > > Thanks, > > --Raman(I Search, I Find, I Misplace, I Research) > ♈ Id: kg:/m/0285kf1 🦮 -- Thanks, --Raman(I Search, I Find, I Misplace, I Research) ♈ Id: kg:/m/0285kf1 🦮