GNU bug report logs -
#31742
26.1.50; excorporate.elc byte-compiled in Emacs 25.x fails in Emacs 26.1
Previous Next
Reported by: Thomas Fitzsimmons <fitzsim <at> fitzsim.org>
Date: Thu, 7 Jun 2018 01:08:02 UTC
Severity: normal
Found in version 26.1.50
Done: Thomas Fitzsimmons <fitzsim <at> fitzsim.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
>> The `(aref element 0)` trick is the only one that `soap-client` uses. All
>> other struct usage is via accessor functions, the rest of the code does not
>> assume they are vectors. It seems to me that `cl-old-struct-compat-mode` is
>> not needed.
> I went back and tested with cl-old-struct-compat-mode disabled, with the
> soap-type-of patch, and I get an earlier failure, via M-x excorporate:
> So at least for Excorporate, cl-old-struct-compat-mode is
> needed (in addition to the (aref ... 0) -> (soap-type-of ...)
> soap-client change).
Yeah, and for (type-of element) to properly substitute for (aref element
0) without cl-old-struct-compat-mode you would need
(defun soap-type-of (element)
"Return the type of ELEMENT."
(let ((type (type-of element)))
(unless (eq type 'vector) ; For Emacs 25 and earlier.
(setq type (aref element 0)))
(if (string-match "\\`cl-struct-" (symbol-name type)) ; Old-style struct.
(intern (substring (symbol-name type) (match-end 0)))
type)))
But since cl-old-struct-compat-mode activates automagically, may as well
take advantage of it.
This bug report was last modified 7 years and 53 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.