Subject: Re: bug#31742: 26.1.50; excorporate.elc byte-compiled in Emacs 25.x fails in Emacs 26.1

From: Noam Postavsky <[email-masked]>
Date: Wed, 06 Jun 2018 21:14:47 -0400

Thomas Fitzsimmons <[email-masked]> writes:

> soap-find-operation: Wrong type argument: soap-binding, ("http://schemas.microsoft.com/exchange/services/2006/messages" . "ExchangeServiceBinding")

> byte code for exco--bind-wsdl:
>   doc:  Create a WSDL binding. ...
>   args: (arg1 arg2 arg3 arg4 arg5)
> 0	constant  soap-wsdl-find-namespace
> 1	stack-ref 2
> 2	stack-ref 6
> 4	call	  2
> 5	constant  vector
> 6	constant  cl-struct-soap-port

> byte code for exco--bind-wsdl:
>   doc:  Create a WSDL binding. ...
>   args: (arg1 arg2 arg3 arg4 arg5)
> 0	constant  soap-wsdl-find-namespace
> 1	stack-ref 2
> 2	stack-ref 6
> 4	call	  2
> 5	constant  record
> 6	constant  soap-port

Looks like it's due to the change in how cl-struct works.  Does enabling
cl-old-struct-compat-mode help?

    cl-old-struct-compat-mode is an interactive autoloaded compiled Lisp
    function in ‘cl-lib.el’.

    (cl-old-struct-compat-mode &optional ARG)

    Enable backward compatibility with old-style structs.
    This can be needed when using code byte-compiled using the old
    macro-expansion of ‘cl-defstruct’ that used vectors objects instead
    of record objects.