From: Max Nikulin <manikulin@gmail.com> To: Ihor Radchenko <yantar92@posteo.net> Cc: Eli Zaretskii <eliz@gnu.org>, emacs-orgmode@gnu.org, Stefan Monnier <monnier@iro.umontreal.ca>, 59882@debbugs.gnu.org Subject: bug#59882: Multiple versions of Org in load-path problem Date: Sun, 18 Dec 2022 22:24:24 +0700 [thread overview] Message-ID: <4b053e69-87d3-8323-8949-0546b4bb6c1a@gmail.com> (raw) In-Reply-To: <87fsdfs8vl.fsf@localhost> On 16/12/2022 21:47, Ihor Radchenko wrote: >> Can it happen that already loaded version affects compilation of a new >> version by package-install. > > Yes. It is what appears to be happening: > > https://irreal.org/blog/?p=10996 > https://irreal.org/blog/?p=10999 I would not call it steps to reproduce. From my point of view, there is a number of issues with updating of packages from emacs session. 1. If compilation of a package failed then it is not withdrawn from the load path. 2. There is no reliable way to determine if package compilation failed. (byte-recompile-directory DIR 0 t) returns human readable string, not signalling an error or returning a value convenient to check in the code. It is the cause of the previous issue. 3. Emacs package system is not ready for complex multifile packages containing macro definitions. It does not push user to update packages just after emacs restart in a clean state. As a result, files may be compiled with old or missed macro definitions. 4. Because of the item 2 a package has no chance to implement reliable internal sanity check that prevents updating to a broken state. I have tried the following in Emacs-27. For Emacs >= 29 add -L to Org <= 9.5. - "emacs -l org" to simulate a regular user session with some opened files. - Update to Org-9.6 from ELPA. - Close emacs and start it again "emacs -l org" Result: byte-code: Invalid function: org-assert-version Notice attempt to load Org-9.6 despite warnings and even error during update: > Compiling file /home/emcs/.emacs.d/elpa/org-9.6/ob-C.el at Sun Dec 18 04:30:49 2022 > Entering directory ‘/home/emcs/.emacs.d/elpa/org-9.6/’ > > In end of data: > ob-C.el:509:1:Warning: the function ‘org-assert-version’ is not known to be > defined. ... > Compiling file /home/emcs/.emacs.d/elpa/org-9.6/ob-matlab.el at Sun Dec 18 04:30:50 2022 > ob-matlab.el:43:1:Error: Symbol’s function definition is void: org-assert-version So emacs can not handle update of a package with changed macro definitions when they reside in another package file.
WARNING: multiple messages have this Message-ID (diff)
From: Max Nikulin <manikulin@gmail.com> To: Ihor Radchenko <yantar92@posteo.net> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-orgmode@gnu.org, Eli Zaretskii <eliz@gnu.org>, 59882@debbugs.gnu.org Subject: Re: bug#59882: Multiple versions of Org in load-path problem Date: Sun, 18 Dec 2022 22:24:24 +0700 [thread overview] Message-ID: <4b053e69-87d3-8323-8949-0546b4bb6c1a@gmail.com> (raw) In-Reply-To: <87fsdfs8vl.fsf@localhost> On 16/12/2022 21:47, Ihor Radchenko wrote: >> Can it happen that already loaded version affects compilation of a new >> version by package-install. > > Yes. It is what appears to be happening: > > https://irreal.org/blog/?p=10996 > https://irreal.org/blog/?p=10999 I would not call it steps to reproduce. From my point of view, there is a number of issues with updating of packages from emacs session. 1. If compilation of a package failed then it is not withdrawn from the load path. 2. There is no reliable way to determine if package compilation failed. (byte-recompile-directory DIR 0 t) returns human readable string, not signalling an error or returning a value convenient to check in the code. It is the cause of the previous issue. 3. Emacs package system is not ready for complex multifile packages containing macro definitions. It does not push user to update packages just after emacs restart in a clean state. As a result, files may be compiled with old or missed macro definitions. 4. Because of the item 2 a package has no chance to implement reliable internal sanity check that prevents updating to a broken state. I have tried the following in Emacs-27. For Emacs >= 29 add -L to Org <= 9.5. - "emacs -l org" to simulate a regular user session with some opened files. - Update to Org-9.6 from ELPA. - Close emacs and start it again "emacs -l org" Result: byte-code: Invalid function: org-assert-version Notice attempt to load Org-9.6 despite warnings and even error during update: > Compiling file /home/emcs/.emacs.d/elpa/org-9.6/ob-C.el at Sun Dec 18 04:30:49 2022 > Entering directory ‘/home/emcs/.emacs.d/elpa/org-9.6/’ > > In end of data: > ob-C.el:509:1:Warning: the function ‘org-assert-version’ is not known to be > defined. ... > Compiling file /home/emcs/.emacs.d/elpa/org-9.6/ob-matlab.el at Sun Dec 18 04:30:50 2022 > ob-matlab.el:43:1:Error: Symbol’s function definition is void: org-assert-version So emacs can not handle update of a package with changed macro definitions when they reside in another package file.
next prev parent reply other threads:[~2022-12-18 15:24 UTC|newest] Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-12-06 2:50 Multiple versions of Org in load-path problem David Masterson 2022-12-06 5:36 ` tomas 2022-12-06 7:04 ` David Masterson 2022-12-07 13:30 ` Ihor Radchenko 2022-12-08 3:27 ` David Masterson 2022-12-08 7:16 ` David Masterson 2022-12-08 7:26 ` Ihor Radchenko 2022-12-08 18:24 ` David Masterson 2022-12-08 19:31 ` Michel Schinz 2022-12-08 21:56 ` bug#59882: " David Masterson 2022-12-08 21:56 ` David Masterson 2022-12-08 22:56 ` Tim Cross 2022-12-09 5:00 ` David Masterson 2022-12-09 6:56 ` Tim Cross 2022-12-09 15:49 ` Sharon Kimble 2022-12-10 20:38 ` Tom Gillespie 2022-12-09 7:17 ` bug#59882: " Eli Zaretskii 2022-12-09 7:17 ` Eli Zaretskii 2022-12-09 7:43 ` David Masterson 2022-12-09 7:43 ` David Masterson 2022-12-09 11:57 ` Eli Zaretskii 2022-12-09 11:57 ` Eli Zaretskii 2022-12-09 19:40 ` Cook, Malcolm 2022-12-09 19:40 ` Cook, Malcolm 2022-12-09 19:51 ` David Masterson 2022-12-09 20:27 ` Eli Zaretskii 2022-12-09 20:27 ` Eli Zaretskii 2022-12-09 19:51 ` David Masterson 2022-12-10 14:01 ` Ihor Radchenko 2022-12-10 14:01 ` Ihor Radchenko 2022-12-14 9:51 ` Ihor Radchenko 2022-12-14 9:51 ` Ihor Radchenko 2022-12-14 12:59 ` Eli Zaretskii 2022-12-14 12:59 ` Eli Zaretskii 2022-12-14 13:37 ` Ihor Radchenko 2022-12-14 13:37 ` Ihor Radchenko 2022-12-14 14:35 ` Stefan Monnier 2022-12-14 16:02 ` Max Nikulin 2022-12-15 4:17 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors 2022-12-15 4:17 ` Stefan Monnier 2022-12-15 4:56 ` Ihor Radchenko 2022-12-15 4:56 ` Ihor Radchenko 2022-12-16 12:36 ` Max Nikulin 2022-12-16 14:47 ` Ihor Radchenko 2022-12-16 14:47 ` Ihor Radchenko 2022-12-18 15:24 ` Max Nikulin [this message] 2022-12-18 15:24 ` Max Nikulin 2022-12-18 15:40 ` Stefan Monnier 2022-12-18 15:40 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors 2023-04-06 16:09 ` Max Nikulin 2023-04-06 21:25 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors 2023-04-06 21:25 ` Stefan Monnier 2023-04-19 4:20 ` Tom Gillespie 2023-04-19 4:20 ` Tom Gillespie 2023-04-06 16:09 ` Max Nikulin 2022-12-25 9:48 ` Ihor Radchenko 2022-12-25 11:46 ` Max Nikulin 2022-12-26 8:44 ` Ihor Radchenko 2022-12-26 8:44 ` Ihor Radchenko 2022-12-26 11:01 ` Ihor Radchenko 2022-12-26 12:25 ` Max Nikulin 2022-12-26 12:25 ` Max Nikulin 2022-12-27 9:47 ` Ihor Radchenko 2022-12-27 9:47 ` Ihor Radchenko 2022-12-27 9:56 ` Max Nikulin 2022-12-27 9:56 ` Max Nikulin 2023-02-03 11:02 ` Ihor Radchenko 2023-02-03 11:02 ` Ihor Radchenko 2023-02-03 12:15 ` Eli Zaretskii 2023-02-03 12:15 ` Eli Zaretskii 2023-02-03 20:01 ` Tim Cross 2023-02-14 22:53 ` Gregor Zattler 2023-02-14 22:53 ` Gregor Zattler 2023-02-16 12:14 ` Max Nikulin 2023-02-16 12:14 ` Max Nikulin 2023-02-21 5:22 ` Richard Stallman 2023-02-21 12:32 ` Eli Zaretskii 2023-02-21 12:32 ` Eli Zaretskii 2023-02-21 17:26 ` Bhavin Gandhi 2023-02-21 17:26 ` Bhavin Gandhi 2023-02-22 10:48 ` Ihor Radchenko 2023-02-22 10:48 ` Ihor Radchenko 2023-02-22 16:58 ` Bhavin Gandhi 2023-02-23 9:35 ` Ihor Radchenko 2023-02-23 9:35 ` Ihor Radchenko 2023-02-22 16:58 ` Bhavin Gandhi 2023-02-21 5:22 ` Richard Stallman 2023-04-06 15:02 ` Max Nikulin 2023-04-06 15:02 ` Max Nikulin 2023-04-07 11:39 ` Max Nikulin 2022-12-26 11:01 ` Ihor Radchenko 2022-12-25 11:46 ` Max Nikulin 2022-12-25 9:48 ` Ihor Radchenko 2022-12-16 12:36 ` Max Nikulin 2022-12-14 16:02 ` Max Nikulin 2022-12-14 14:35 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors 2022-12-14 14:25 ` Stefan Monnier 2022-12-14 14:25 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors 2022-12-14 21:49 ` Cook, Malcolm 2022-12-14 21:49 ` Cook, Malcolm 2022-12-09 19:47 ` Cook, Malcolm 2022-12-09 19:47 ` bug#59882: " Cook, Malcolm 2022-12-08 21:50 ` Cook, Malcolm [not found] ` <87o7se74bf.fsf@penguin> 2022-12-08 7:19 ` David Masterson 2022-12-08 9:10 ` Ihor Radchenko
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=4b053e69-87d3-8323-8949-0546b4bb6c1a@gmail.com \ --to=manikulin@gmail.com \ --cc=59882@debbugs.gnu.org \ --cc=eliz@gnu.org \ --cc=emacs-orgmode@gnu.org \ --cc=monnier@iro.umontreal.ca \ --cc=yantar92@posteo.net \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.