* bug#12135: 24.1.50; compatibility between compiled files in emacs-24.1 and 24.2
@ 2012-08-04 9:27 Thierry Volpiatto
2012-08-04 23:04 ` Stefan Monnier
0 siblings, 1 reply; 8+ messages in thread
From: Thierry Volpiatto @ 2012-08-04 9:27 UTC (permalink / raw)
To: 12135
When switching from Emacs-24.1 to Emacs-24.2 byte compiled files
containing `flet' are not compatible.
You can reproduce with helm:
https://github.com/emacs-helm/helm.git
1) Start in Emacs-24.2 (trunk)
2) get the latest version of helm
git clone https://github.com/emacs-helm/helm.git
3) cd to helm directory
4) Run make
5) Run ./emacs-helm.sh
6) Hit C-x c M-x
7) Enter "helm" in pattern prompt.
Ok good you have completion on all helm commands.
Now quit Emacs-24.2 and switch to Emacs-24.1.
Start from 5) and repeat 6) and 7)
You have no completion on helm commands.
Quit Emacs-24.1 and run make again to recompile helm files.
Start again from 5) and repeat 6) and 7)
Ok good you have completion on all helm commands.
You can read the code of `helm-M-x' in helm-command.el.
In GNU Emacs 24.1.50.1 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2012-08-03 on thierry-MM061
Windowing system distributor `The X.Org Foundation', version 11.0.11103000
Configured using:
`configure '--with-x-toolkit=lucid' '--with-wide-int' '--without-gconf'
'--without-gsettings''
Important settings:
value of $LANG: fr_FR.UTF-8
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
Major mode: Lisp Interaction
Minor modes in effect:
global-undo-tree-mode: t
undo-tree-mode: t
auto-image-file-mode: t
show-paren-mode: t
display-time-mode: t
savehist-mode: t
minibuffer-depth-indicate-mode: t
eldoc-mode: t
helm-mode: t
helm-dired-mode: Enable helm completion in Dired functions.
Bindings affected are C, R, S, H.
This is deprecated for Emacs24+ users, use `helm-mode' instead.
shell-dirtrack-mode: t
helm-match-plugin-mode: t
diff-auto-refine-mode: t
tooltip-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
M-x h e l m <right> C-g M-x r e p o r <down> t - e
m a c s <down> <return>
Recent messages:
Restoring buffers...92%
OVERVIEW
Restoring buffers...94%
OVERVIEW
Restoring buffers...95%
OVERVIEW
Restoring buffers...done
Quit
Load-path shadows:
~/.emacs.d/emacs-config-laptop/.gnus hides ~/.emacs.d/.gnus
~/elisp/emacs-wget/lpath hides ~/elisp/auctex/lpath
~/elisp/magit/.dir-locals hides /usr/local/share/emacs/24.1.50/lisp/gnus/.dir-locals
~/elisp/emms/lisp/tq hides /usr/local/share/emacs/24.1.50/lisp/emacs-lisp/tq
Features:
(shadow gnus-dired nnir mail-extr gnus-msg emacsbug helm-misc
helm-command tabify org-table conf-mode vc-rcs sh-script smie executable
vc-git xgit-dvc xgit xgit-annotate dvc-annotate xgit-log dvc-revlist
jka-compr xhg-dvc bzr-core xdarcs-core xgit-core xmtn-minimal
naquadah-theme em-unix em-script em-prompt em-ls em-hist em-pred em-glob
em-dirs em-cmpl em-basic em-banner em-alias esh-var esh-io esh-cmd
esh-opt esh-ext esh-proc esh-groups eshell esh-module esh-mode align-let
server winner undo-tree diff slime-xref-browser slime-banner slime-tramp
slime-asdf slime-fancy slime-fontifying-fu slime-package-fu
slime-references slime-scratch slime-presentations slime-fuzzy
slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc
slime-parse slime-repl image-file newsticker newst-treeview tree-widget
newst-plainview newst-reader newst-ticker newst-backend xdvi-search
preview-latex pcomplete-extension em-term term disp-table ehelp electric
helm-ipython helm-elisp helm-eval python rx whitespace paren time avoid
savehist smtpmail-async smtpmail sendmail helm-async markdown-mode
org-google-weather google-weather url-cache iterator googlecl
google-maps google-maps-static google-maps-geocode google-maps-base json
simple-call-tree el-expectations el-mock csv2org iedit rect zop-to-char
smallurl mm-url rectangle-utils tv-utils async pcvs pcvs-parse pcvs-info
pcvs-defs mb-depth ioccur cl-info slime hyperspec slime-autoloads
ledger-config ledger esh-arg esh-util tex-site auto-loads esh-toggle
flymake eldoc-eval eldoc no-word regex-tool dired-extension
emms-mpd-config emms-playlist-limit emms-volume emms-volume-amixer
emms-i18n emms-history emms-score emms-stream-info
emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon
emms-browser sort emms-playlist-sort emms-last-played emms-player-xine
emms-player-mpd tq emms-playing-time emms-lyrics emms-url hl-line
emms-tag-editor emms-mark emms-mode-line emms-cache emms-info-ogginfo
emms-info-mp3info emms-playlist-mode emms-player-vlc emms-player-mplayer
emms-info emms-streams later-do emms-source-playlist emms-source-file
emms-player-simple emms-setup emms emms-compat dvc-init bzr-gnus
tla-gnus xgit-gnus xhg-gnus gnus-art mm-uu mml2015 mm-view mml-smime
smime dig gnus-sum nnoo gnus-group gnus-undo nnmail mail-source
gnus-start gnus-spec gnus-int gnus-range gnus-win gnus gnus-ems nnheader
dvc-gnus tla-core tla-autoconf tla-defs dvc-log vc vc-dispatcher
ediff-merg ediff-diff ediff-wind ediff-help ediff-util ediff-mult
ediff-init ediff dvc-autoloads magit-stgit magit-bisect magit-key-mode
magit log-edit pcvs-util add-log htmlize-hack htmlize muse-colors
muse-docbook muse-texinfo texnfo-upd texinfo muse-latex muse-html
muse-xml-common muse-wiki cus-edit cus-start cus-load muse-publish
muse-project muse-protocols muse-regexps wid-edit muse muse-nested-tags
muse-mode muse-autoloads org-config-thierry ob-sh org-crypt cal-china
lunar solar cal-dst cal-bahai cal-islam cal-hebrew holidays hol-loaddefs
vc-hg org-wl org-w3m org-vm org-rmail org-mhe org-mew org-irc org-jsinfo
org-infojs org-html org-exp ob-exp org-exp-blocks find-func org-info
org-gnus org-docview org-bibtex bibtex org-bbdb org-agenda appt
diary-lib diary-loaddefs org-annotation-helper org-capture org-mks
remember org-remember org-datetree addressbook-bookmark message rfc822
mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 ietf-drums mailabbrev mail-utils gmm-utils mailheader
firefox-protocol bookmark-firefox-handler bookmark-extensions org
ob-emacs-lisp ob-tangle ob-ref ob-lob ob-table org-footnote org-src
ob-comint ob-keys ob ob-eval org-pcomplete org-list org-faces org-compat
org-entities org-macs noutline outline cal-menu calendar cal-loaddefs
bookmark pp init-helm-thierry helm-mode helm-ls-git helm-files
image-dired tramp tramp-compat tramp-loaddefs shell pcomplete
format-spec dired-aux ffap thingatpt helm-buffers helm-elscreen
helm-tags helm-bookmark helm-adaptative helm-info helm-net browse-url
url url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util url-parse url-vars mailcap helm-plugin helm-help
helm-match-plugin helm-grep helm-regexp grep helm-external helm-utils
compile comint ansi-color ring helm-descbinds helm-delicious xml
helm-mercurial xhg xhg-annotate xhg-mq xhg-log xhg-core dvc-diff
uniquify dvc-fileinfo dvc-unified dvc-tips diff-mode easy-mmode dvc-core
dvc-lisp dvc-buffers dvc-ui dvc-register dvc-utils dvc-emacs ewoc
dvc-defs dvc-site dired-x cl-macs gv dired helm-locate helm warnings
advice help-fns advice-preload helm-config edmacro kmacro epa-file epa
derived epg epg-config auth-source eieio byte-opt bytecomp byte-compile
cconv gnus-util time-date mm-util mail-prsvr password-cache usage-memo
cl cl-lib macroexp info easymenu tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting font-render-setting
x-toolkit x multi-tty emacs)
--
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#12135: 24.1.50; compatibility between compiled files in emacs-24.1 and 24.2
2012-08-04 9:27 bug#12135: 24.1.50; compatibility between compiled files in emacs-24.1 and 24.2 Thierry Volpiatto
@ 2012-08-04 23:04 ` Stefan Monnier
2012-08-05 5:15 ` Thierry Volpiatto
0 siblings, 1 reply; 8+ messages in thread
From: Stefan Monnier @ 2012-08-04 23:04 UTC (permalink / raw)
To: Thierry Volpiatto; +Cc: 12135
> Now quit Emacs-24.2 and switch to Emacs-24.1.
> Start from 5) and repeat 6) and 7)
> You have no completion on helm commands.
Ah, you mean that the flet byte-compiled with Emacs-24.2 won't run under
Emacs-24.1. That's true. I have not tried to preserve such
compatibility in my changes to CL.
> Quit Emacs-24.1 and run make again to recompile helm files.
> Start again from 5) and repeat 6) and 7)
> Ok good you have completion on all helm commands.
Yes, and these files should work correctly under Emacs-24.2 (at least
I did try to preserve this compatibility).
Stefan
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#12135: 24.1.50; compatibility between compiled files in emacs-24.1 and 24.2
2012-08-04 23:04 ` Stefan Monnier
@ 2012-08-05 5:15 ` Thierry Volpiatto
2012-08-08 15:04 ` Stefan Monnier
0 siblings, 1 reply; 8+ messages in thread
From: Thierry Volpiatto @ 2012-08-05 5:15 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 12135
Stefan Monnier <monnier@IRO.UMontreal.CA> writes:
>> Now quit Emacs-24.2 and switch to Emacs-24.1.
>> Start from 5) and repeat 6) and 7)
>> You have no completion on helm commands.
>
> Ah, you mean that the flet byte-compiled with Emacs-24.2 won't run under
> Emacs-24.1. That's true. I have not tried to preserve such
> compatibility in my changes to CL.
>
>> Quit Emacs-24.1 and run make again to recompile helm files.
>> Start again from 5) and repeat 6) and 7)
>> Ok good you have completion on all helm commands.
>
> Yes, and these files should work correctly under Emacs-24.2 (at least
> I did try to preserve this compatibility).
No, they don't either, try it.
--
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#12135: 24.1.50; compatibility between compiled files in emacs-24.1 and 24.2
2012-08-05 5:15 ` Thierry Volpiatto
@ 2012-08-08 15:04 ` Stefan Monnier
2012-08-08 16:08 ` Thierry Volpiatto
2012-08-08 18:36 ` Thierry Volpiatto
0 siblings, 2 replies; 8+ messages in thread
From: Stefan Monnier @ 2012-08-08 15:04 UTC (permalink / raw)
To: Thierry Volpiatto; +Cc: 12135
>> Yes, and these files should work correctly under Emacs-24.2 (at least
>> I did try to preserve this compatibility).
> No, they don't either, try it.
Indeed, I see that C-x c M-x doesn't work when compiled with Emacs-24.1
and run with the trunk.
But since we don't get any error message, I'm not sure where to start
looking for the cause. You pointed the finger at flet, so maybe you
have some idea (or gut feeling)?
I did see that compiling all files with Emacs-24.1 (or Emacs-23) and
then recompiling helm-command.el with Emacs trunk makes the C-x c M-x
test case work again under trunk, so the problem seems to be somewhere
in helm-command.elc.
Maybe there an error is signalled but is then silenced by one of the
many ignore-errors? If so, would you have some idea as to which
ignore-errors could be turned into with-demoted-errors to try and make
an error message appear?
Stefan
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#12135: 24.1.50; compatibility between compiled files in emacs-24.1 and 24.2
2012-08-08 15:04 ` Stefan Monnier
@ 2012-08-08 16:08 ` Thierry Volpiatto
2012-08-08 18:57 ` Stefan Monnier
2012-08-08 18:36 ` Thierry Volpiatto
1 sibling, 1 reply; 8+ messages in thread
From: Thierry Volpiatto @ 2012-08-08 16:08 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 12135
Thanks to look into this.
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> Yes, and these files should work correctly under Emacs-24.2 (at least
>>> I did try to preserve this compatibility).
>> No, they don't either, try it.
>
> Indeed, I see that C-x c M-x doesn't work when compiled with Emacs-24.1
> and run with the trunk.
> But since we don't get any error message, I'm not sure where to start
> looking for the cause. You pointed the finger at flet, so maybe you
> have some idea (or gut feeling)?
I think at flet because there is no reason that the other part of the
code don't work. (but I may be wrong)
Just try M-x instead of C-x c M-x, type helm- and you will have your
completion.
The only thing that differ is there is no help with C-z in M-x.
> I did see that compiling all files with Emacs-24.1 (or Emacs-23) and
> then recompiling helm-command.el with Emacs trunk makes the C-x c M-x
> test case work again under trunk, so the problem seems to be somewhere
> in helm-command.elc.
>
> Maybe there an error is signalled but is then silenced by one of the
> many ignore-errors? If so, would you have some idea as to which
> ignore-errors could be turned into with-demoted-errors to try and make
> an error message appear?
Hmm! No, AFAIK there is no ignore-errors involved here.
>
> Stefan
--
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#12135: 24.1.50; compatibility between compiled files in emacs-24.1 and 24.2
2012-08-08 15:04 ` Stefan Monnier
2012-08-08 16:08 ` Thierry Volpiatto
@ 2012-08-08 18:36 ` Thierry Volpiatto
2012-08-09 8:42 ` Thierry Volpiatto
1 sibling, 1 reply; 8+ messages in thread
From: Thierry Volpiatto @ 2012-08-08 18:36 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 12135
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> Yes, and these files should work correctly under Emacs-24.2 (at least
>>> I did try to preserve this compatibility).
>> No, they don't either, try it.
>
> Indeed, I see that C-x c M-x doesn't work when compiled with Emacs-24.1
> and run with the trunk.
> But since we don't get any error message, I'm not sure where to start
> looking for the cause. You pointed the finger at flet, so maybe you
> have some idea (or gut feeling)?
Maybe you are right here Stefan and flet is not the culprit.
I remove the flet from the function and the result is the same:
I doesn't work without recompiling.
But when trying this I fall to this error (that happened with files not
recompiled):
symbol definition is void tty-top-frame
This error popup when using C-z in helm-find-files (to expand a
directory).
--
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#12135: 24.1.50; compatibility between compiled files in emacs-24.1 and 24.2
2012-08-08 16:08 ` Thierry Volpiatto
@ 2012-08-08 18:57 ` Stefan Monnier
0 siblings, 0 replies; 8+ messages in thread
From: Stefan Monnier @ 2012-08-08 18:57 UTC (permalink / raw)
To: Thierry Volpiatto; +Cc: 12135-done
> I think at flet because there is no reason that the other part of the
> code don't work. (but I may be wrong)
flet is used elsewhere. And eliminating the flet (see patch below,
which doesn't look bad when compared to the horror generated by flet)
did not solve the problem.
> Hmm! No, AFAIK there is no ignore-errors involved here.
Somehow an error must have been signaled and then silenced.
I replaced all ignore-errors by with-demoted-errors but that didn't
help, so it must be some condition-case somewhere (or some other code in
some other Elisp library, of course).
In any case, I think I found the culprit: the old CL's `loop' used
cl-map-keymap-recursively internally for `key-seqs', which I renamed to
cl--map-keymap-recursively but forgot to add a compatibility alias.
Should be fixed now, thank you,
Stefan
=== modified file 'helm-command.el'
--- helm-command.el 2012-08-04 13:51:32 +0000
+++ helm-command.el 2012-08-08 18:27:09 +0000
@@ -116,7 +116,7 @@
when (commandp com)
collect i into hist finally return hist))
command sym-com)
- (flet ((pers-help (candidate)
+ (let ((pers-help (lambda (candidate)
(let ((hbuf (get-buffer (help-buffer)))
special-display-buffer-names
special-display-regexps)
@@ -136,14 +136,14 @@
(describe-function (intern candidate))
(message nil) ; Erase the new stupid message Type "q"[...]
(setq in-help t))
- (setq help-cand candidate))))
+ (setq help-cand candidate)))))
(setq command (helm-comp-read
"M-x " obarray
:test 'commandp
:requires-pattern helm-M-x-requires-pattern
:name "Emacs Commands"
:buffer "*helm M-x*"
- :persistent-action 'pers-help
+ :persistent-action pers-help
:persistent-help "Describe this command"
:history history
:del-input nil
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#12135: 24.1.50; compatibility between compiled files in emacs-24.1 and 24.2
2012-08-08 18:36 ` Thierry Volpiatto
@ 2012-08-09 8:42 ` Thierry Volpiatto
0 siblings, 0 replies; 8+ messages in thread
From: Thierry Volpiatto @ 2012-08-09 8:42 UTC (permalink / raw)
To: 12135
Thierry Volpiatto <thierry.volpiatto@gmail.com> writes:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>
>>>> Yes, and these files should work correctly under Emacs-24.2 (at least
>>>> I did try to preserve this compatibility).
>>> No, they don't either, try it.
>>
>> Indeed, I see that C-x c M-x doesn't work when compiled with Emacs-24.1
>> and run with the trunk.
>> But since we don't get any error message, I'm not sure where to start
>> looking for the cause. You pointed the finger at flet, so maybe you
>> have some idea (or gut feeling)?
> Maybe you are right here Stefan and flet is not the culprit.
> I remove the flet from the function and the result is the same:
> I doesn't work without recompiling.
> But when trying this I fall to this error (that happened with files not
> recompiled):
>
> symbol definition is void tty-top-frame
If I look at the compiled file helm-files.el, tty-top-frame appear in
byte-compiled form of all defalias in this file, which is not recognized
by Emacs-24.1 when loading these files.
> This error popup when using C-z in helm-find-files (to expand a
> directory).
--
Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-08-09 8:42 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-04 9:27 bug#12135: 24.1.50; compatibility between compiled files in emacs-24.1 and 24.2 Thierry Volpiatto
2012-08-04 23:04 ` Stefan Monnier
2012-08-05 5:15 ` Thierry Volpiatto
2012-08-08 15:04 ` Stefan Monnier
2012-08-08 16:08 ` Thierry Volpiatto
2012-08-08 18:57 ` Stefan Monnier
2012-08-08 18:36 ` Thierry Volpiatto
2012-08-09 8:42 ` Thierry Volpiatto
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).