I byte-compile my ~/.emacs.d/init.el. It was done by Emacs 26.1 from Cygwin and I got error when load emacs-nox 25.2 from Debian WSL:

error: Invalid byte opcode: op=183, ptr=2

Were new opcodes introduced into Emacs byte code starting from v26? For what purpose?

I have no issues to load byte compiled files between v22-v25...

  • 1
    Pretty much every major Emacs release breaks forward compatibility for .elc files, either by introducing new byte-codes (or macros whose expansion uses new functions). If you were able to use Emacs-25-compiled files under Emacs-22 you were just lucky. – Stefan Oct 15 '18 at 12:32

From NEWS:

* Incompatible Lisp Changes in Emacs 26.1
** Certain cond/pcase/cl-case forms are now compiled using a faster jump
table implementation.  This uses a new bytecode op 'switch', which
isn't compatible with previous Emacs versions.  This functionality can
be disabled by setting 'byte-compile-cond-use-jump-table' to nil.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.