Subject: bug#34757: Invalid bytecode from byte compiler

From: Michael Heerdegen <[email-masked]>
Date: Fri, 08 Mar 2019 14:50:33 +0100

Eli Zaretskii <[email-masked]> writes:

> > From: chuntaro <[email-masked]>
> > Date: Tue, 5 Mar 2019 17:01:00 +0900
> >
> > Invalid bytecode is output and error occurs when executed.
> >
> > Byte compile the following code.
> >
> > bug.el
> > ----------------------------------------------------------------
> > ;;; -*- lexical-binding: t; -*-
> >
> > (let ((a 2))
> >   (print 1)
> >   (setq a 1))
> > ----------------------------------------------------------------
> >
> > $ emacs --batch -f batch-byte-compile bug.el
> >
> > bug.elc
> > ----------------------------------------------------------------
> > ;ELC
> > ...
> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> >
> >
> > (funcall 2 'print 1)
> > 1
> > ----------------------------------------------------------------
> >
> > $ emacs --batch -l bug.elc
> > Invalid function: 2
>
> Why is that a problem?  The Lisp code is invalid, and the error
> message says that much.

Please take a closer look: The Lisp code in the compiled file is
invalid, but the code in the .el isn't.

Michael.