[Arcana] 23 vs 21 .elc

Karl Fogel kfogel at red-bean.com
Sun Aug 16 11:16:38 CDT 2009


Roland McGrath <roland at frob.com> writes:
> So I know I'm behind the times for just getting to this now, but I'm
> starting to use 23.1 all of a sudden (thanks Fedora 11 "stable" updates!).
>
> In past transitions it's been a while of hacking to get my emacs up without
> -q at all, i.e. without an error during startup.  Then usually most of
> another day to disable all the new default angry fruit salad that I already
> supposedly had disabled but they've differently broken the configuration
> for.  Then it takes at least a couple weeks of working normally to stumble
> across all the random little bits they have broken and find work-arounds.
>
> This time I got stuck pretty early in the process.  The workstation in
> question was previously using 22.3.1, and now has 23.1.  My personal elisp
> world is shared between different installations of different versions on
> different hosts (I keep it all in cvs).  The other installation that I
> still actually about interoperating with is 21.4.1.
>
> What I've started getting is: (invalid-read-syntax "invalid multibyte form")
> from loading .elc files.
>
> The first few this bit were .elc files in my repository compiled by 19.34.2,
> in 1993.  We're supposed to have backward compatibility of this sort.
> But fine, whatever.  16 years was a good run for those compiled files.
> I just recompiled those ones in 21.4.1 as if 23 weren't unforgivably broken
> because of this utter failure in the moral mandate of .elc compatibility.
>
> But now I'm getting that error in 23.1 for .elc files I just recompiled
> today in 21.4.1.  This is some shit up with which I cannot put.
>
> A file in question does have this header:
>
> 	;;; This file contains multibyte non-ASCII characters
> 	;;; and therefore cannot be loaded into Emacs 19.
> 	(if (and (boundp 'emacs-version)
> 		 (< (aref emacs-version (1- (length emacs-version))) ?A)
> 		 (or (and (boundp 'epoch::version) epoch::version)
> 		     (string-lessp emacs-version "20")))
> 	    (error "`bbdb-vm.el' was compiled for Emacs 20 or later"))
>
> though hell if I know why.  I'm pretty sure there are no non-ascii
> characters in the elisp source.  So, there are at least two wrongnesses.
>
> 1. 23 fails to load an .elc file that 22 loads fine.  Wtf?
>
> 2. 21 compiles multibyte turds into .elc files for no reason. (?)
>
> Given that 21 is 21 and time has moved on, I'm not so offended by #2.
> It might be nice to find a way around that.
>
> #1 is deeply offensive on intrinsic grounds.  Heads must roll.
> Which is to say, I hope to find a way to resolve it with defadvice and rude
> comments, and then never bother to report it to bug-gnu-emacs, just like
> every other past offense worthy of summary execution that the blasphemous
> third millenium Emacs maintenance cabal has visited upon the faithful.
>
> It's entirely plausible that one or the other of these issues is provoked
> by some hack I've forgotten about.  If so, it's surely one I added to work
> around some unforgivable multibyte turd bug of the past.  But how the hell
> could I find it if that's so?  The strings "coding-system" and "charset"
> do not in any of my sources.
>
> Help?

If you set debug-on-error to t first, then what do you see when you then
load the problematic .elc file?

(I know you can figure that out on your own, but since you didn't report
having tried it, I thought I'd ask.)

-K




More information about the Arcana mailing list