>>> I think existing *.elc files compiled against Emacs-23.2.1 should load >>> fine on new Emacs versions. >> It's indeed an incompatibility I introduced when we switched from CL's >> setf to gv.el's setf, because the two work in a very different way. > In simple terms, the problem seems to be a 24.x style `setf' on a 23.x > defstruct.
More specifically, the setf and the defstruct need to be compiled with "the same version" (either both cl.el, or both gv.el). > If we could report on incompatibiliy that would be awesome. Can the > FIRST EVER setf call make (additional) version checks and report errors. Does the patch below work for you? Stefan === modified file 'lisp/emacs-lisp/gv.el' --- lisp/emacs-lisp/gv.el 2013-08-13 02:30:52 +0000 +++ lisp/emacs-lisp/gv.el 2013-09-04 02:56:26 +0000 @@ -102,7 +102,11 @@ ;; Follow aliases. (setq me (cons (symbol-function head) (cdr place)))) (if (eq me place) - (error "%S is not a valid place expression" place) + (error + (if (and (symbolp head) (get head 'setf-method)) + "Incompatible place expression needs recompilation: %S" + "%S is not a valid place expression") + place) (gv-get me do))))))) ;;;###autoload