-
-
Notifications
You must be signed in to change notification settings - Fork 183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sporadic timer errors with Emacs HEAD #72
Comments
The timer behavior should be correct now, see also http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12447
The only odd thing I can see is that |
Thanks for the follow-up.
I do have a recent Emacs, which indeed seems to use a 9-element timer vector, at least according to On a hunch, I recompiled |
I'll go ahead and close this -- if the problem recurs, I'll reopen it and add details. Thanks. |
I've just stumbled into this issue moving from Emacs 24.2 to 24.3. Recompiling js2-mode and restarting Emacs fixed it:
|
Yeah, that's exactly how Steve fixed it. Unfortunately, I don't think there's a good way around it.
|
Yay! I've been trying to figure this one out for days. The byte recompile worked for me. This is very important information and should be made easier to find. Maybe we can put it in the MELPA package readme, or the readme of this repo, or a wiki page? It was rather hard for me to find the needed work around in this Closed issue from a year ago. (Good thing we have Google). Is there no way to fix it in the native MELPA package? |
Yeah, guess I'll put it in the readme, under Bugs. What were your symptoms? Did you see timer errors, or just broken syntax highlighting? Have you tried reinstalling instead of byte-recompiling? |
I saw both broken syntax highlighting and the timer errors showed up in my message log. I didn't try reinstalling using package.el, although I probably should have (it said it was up to date and so I didn't think I needed to). |
I don't remember, but I also might have upgraded emacs a few months back while trying to debug an issue with a different mode (enh-ruby-mode). If I did upgrade that is probably what caused it, so maybe its not a big issue. It's probably best practices to reinstall all packages when you upgrade emacs. |
Probably. Still, it's not really documented, and since people still stumble onto this bug, maybe it should be mentioned more prominently. |
It would have helped me. :-) |
@dgutov Is bytecode marked with the maj/min Emacs version which compiled it? I'm wondering if it's possible to write code which would block possibly-outdated bytecode from being loaded, or at least warn about it. |
@purcell Probably not. I don't see that in the format description. |
@dgutov That’s a shame. :-( |
That may be because bytecode format is defined at the level of functions, not files, and tagging each with version could be considered wasteful. Or was considered a few decades ago. If we look at at where compiled files usually come from, it's mostly two places: libs in the Emacs distribution that get compiled anew with each Emacs version, and the elpa directory. Very few users compile the files in their init directories manually. As the main problem, we might want to extend package.el instead, to write down the version of Emacs the packages were installed with, and make it recompile all of them at startup if the version is lower than current. That would probably bring its own set of issues, though, starting with failed compilations. |
As users, we could just start overriding our local elpa directory paths, and prefixing them with the maj/min emacs version. |
Ah, yes. That wouldn't be the worst approach, too. |
Actually, Emacs does write the version number to .elc files. If you open a .elc file, it starts like this:
|
I use
desktop.el
to reopen buffers automatically when I restart Emacs, and whenjs2-mode
buffers are restored, I get the following error with about 50% probability:Is this perhaps related to the apparent conclusion in this emacs bug filed by @dgutov that the js2 timer behavior may be incorrect?
The text was updated successfully, but these errors were encountered: