Summary: ob-comint.elc compiled with `make update2' fails, but
ob-comint.elc byte compiled via dired or with `emacs-lisp-byte-compile'
succeeds.
===
I recently pushed a fix [1] for ob-comint.el or so I thought. See [2] for
info on the bug.
First, I tested the fix on my own system by eval'ing ob-comint.el and
running some tests (including `make test' FWIW).
I also byte-compiled the code using `dired-do-byte-compile', loaded that
and ran more tests. All good.
Then I pushed that commit to master.
When I did `make update2' the compiled fixes did not work. But loading
`ob-comint.el' works, and compiling via `dired-do-byte-compile' works and
loading the result also works.
What?!
So I tried to undo the damage with two more commits, but in each case the
`make update2' step generated code that was buggy.
I see that `make update2' uses `byte-recompile-directory' and indeed
running that gives a different (larger) ob-comint.elc than does
`dired-do-byte-compile'. But both eventually use `byte-compile-file', and
AFAICS the optimization level is the same in both cases. So I am baffled.
Any advice on how to produce code that works when compiled with `make
update2' or just to understand what gives here is appreciated.
Best,
Chuck
[1] commit e42454088ff1176cce9cc65a4bd1c6f17fe958ec
[2]<http://permalink.gmane.org/gmane.emacs.orgmode/106557>