From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Ihor Radchenko Newsgroups: gmane.emacs.devel Subject: Re: Permanently fix org versioning breakage during builds? Date: Sun, 24 Dec 2023 14:48:43 +0000 Message-ID: <875y0n4px0.fsf@localhost> References: <25989.50971.995591.385250@google.com> <87a5q0dc9m.fsf@localhost> <87edfbbyzm.fsf@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17830"; mail-complaints-to="usenet@ciao.gmane.io" Cc: "T.V Raman" , emacs-devel To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Dec 24 15:46:32 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rHPkN-0004QZ-JU for ged-emacs-devel@m.gmane-mx.org; Sun, 24 Dec 2023 15:46:31 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rHPjc-00088a-FX; Sun, 24 Dec 2023 09:45:44 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rHPja-00087C-LI for emacs-devel@gnu.org; Sun, 24 Dec 2023 09:45:42 -0500 Original-Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rHPjY-0006Rn-5g for emacs-devel@gnu.org; Sun, 24 Dec 2023 09:45:42 -0500 Original-Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id AA360240104 for ; Sun, 24 Dec 2023 15:45:35 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1703429135; bh=wnBweuW0EQrPxYyxTwbhwAREjr1JsqSi/AiDxig0WoU=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version: Content-Transfer-Encoding:From; b=JUKZ2OQs6YB61joGWaR52NzFelQrXgbARtFIrAWkwn+YGQq2yJxHtz3y+fajOwheo /VMUST29lAsLgkHTae0miyXlTWkU/AyEVahn1qoMEq1NgewbEReN4qn0933pFytW8x az6c1iSB7JY7GxdoxfP82L/he1qKEYt0iz3A6/LytFJpbgt/DGFJTaLDC5bYdV/lmc RPpcUwUCHtLHFEyiUk5D9CjyHA/3fQAMara6H4uX8yHvJBjN8YQWm8l135A5ohzP9x 5A7iVruBc7v0Z8j0yfI31nPct/zpcPXuMDvOW/nLo4WRY1o1jqD3QekakbmCu6ePMU xFMea+yhhXYTg== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4SykNZ5jfVz9rxL; Sun, 24 Dec 2023 15:45:34 +0100 (CET) In-Reply-To: Received-SPF: pass client-ip=185.67.36.66; envelope-from=yantar92@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -53 X-Spam_score: -5.4 X-Spam_bar: ----- X-Spam_report: (-5.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=-1, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:314129 Archived-At: Jo=C3=A3o T=C3=A1vora writes: >> I do not think that your idea will work. >> What you propose is compiling `org-assert-version' once. >> > > Hmm? How can that be what I'm proposing if I didn't even know about this > definition. Is it a form, a macro? > What ultimate problem is it solving? What condition do you need to assert > at Emacs master build-time, failing which something else will go wrong? `org-assert-version' is a macro. It is solving a very common problem when some files from Org mode are loaded from Emacs distribution and some are loaded from a newer Org mode version typically installed from ELPA. This causes various unexpected breakages. Or, similarly, when built-in Org mode is updated, some macros are changed, but their users are not re-compiled, leaving stale macro expansions inside .elc files. Again, this causes various breakages. `org-assert-version' macro makes sure that no mixing like the above is happening. > I just provided ideas on how to solve a very common build-time pitfall in > Lisp. A pitfall that can be solved by requiring a recompilation of > everything, as seems to be the current way, or in other less brutal ways. > Keep in mind something in the build system is causing builds to fail with > cryptic messages even for people who don't use Org or rarely ever do. I've > never touched any Org related files in my life, why should it blow up in = my > face? Of course happens to all package maintainers but usually there is a > fix. There should be one here, too. Nothing is blown up in your face. The version breakage we are discussing in this thread is at runtime, when Org mode is loaded and detects that some of .elc files for Org libraries are stale (compiled using older Org mode version). >> May you please try to explain what you mean in other words? I am not >> sure what you are trying to convey in this paragraph. >> > > Give me (us) an example of a defmacro form whose body is frequently chang= ed > and which requires the expanders of such a macro, which presumably live in > other files, to be recompiled, even if said files haven't changed. I hope that the above clarified the situation. --=20 Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at . Support Org development at , or support my work at