From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id EDJ4BEIeq2OMOgAAbAwnHQ (envelope-from ) for ; Tue, 27 Dec 2022 17:33:06 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id SMiVBEIeq2MraQEAauVa8A (envelope-from ) for ; Tue, 27 Dec 2022 17:33:06 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id B94653AAC8 for ; Tue, 27 Dec 2022 17:33:05 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pACsR-0006rB-2d; Tue, 27 Dec 2022 11:32:31 -0500 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 1pACsL-0006qu-Oh for emacs-orgmode@gnu.org; Tue, 27 Dec 2022 11:32:25 -0500 Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pACsJ-00064g-BU for emacs-orgmode@gnu.org; Tue, 27 Dec 2022 11:32:24 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1pACsF-0003wj-8C for emacs-orgmode@gnu.org; Tue, 27 Dec 2022 17:32:19 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: Bug? org-assert-version does not prevent mixed install Date: Tue, 27 Dec 2022 23:32:13 +0700 Message-ID: References: <878rj47tj0.fsf@localhost> <87h6xs6b52.fsf@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Content-Language: en-US In-Reply-To: <87h6xs6b52.fsf@localhost> Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 14 X-Spam_score: 1.4 X-Spam_bar: + X-Spam_report: (1.4 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NICE_REPLY_A=-1.147, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1672158785; a=rsa-sha256; cv=none; b=exgdXdYzc79iOiuHP4Z9hAFb/e63Ah+GOpSJQ4w7Wc1XpQpQCrj4Ok3xlcPeNyS/q1CMIu qoPAqos1Wjrf6GYpqK1PUp291fsqOUpmC53nEfjUBhELk1PgG6KW1kK1JAuxAo/+zUSIjT uut90NzOd+IuqOqNBdtC3CoCwv0XqFkZ4RFZ3tCacYdw/6JQ6p0adSIsHuxCxKukFH8i2Z H716K7HicBa6VaTSaIcOExZTdYJna90nyBcTWbxZy0FvF6NbfXWLcCBNu9JXEyF8SZEODj Ql2KiLQq5+dvvYgX9A+3st3aB69912j9GqH3OWYHdvw2QiAPf3igc8roo0TVXg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1672158785; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=ctjnQprMqMql1Oyg/Ahir01uuUODLJHXyWrAe0mF7Yc=; b=s+PLeVr2+0fbI3S/TO8Yns2rfuZ3Wor0wDS8GsqzKA9S9+k3JGSIx+fGdS+J6hmZm8TorJ 0XKOPseECge9VUWWgjgDiMOwQi+UlfpZ2ulMssyOaAm68PCwxVTVaP8yJDwU7rdVWa1Jw/ SWVWJpx5N+O5dVmxd+dp0zJY8yKpVq50ugOnPqgluz/BIdb77/y9LQd5grHApHL4aFqOIj 4VKLetGW5UulYPvfgULzQsgOirSMrVbZO+rrQBzav4aezR3bycWDSaOxtbZzD8far0v5IG i1B8iHs5As+FAvLxiPgO7see8JkYMatPTfYaYq3/MUEhnZgTO/HVYgTzCECsig== X-Spam-Score: -1.83 X-Migadu-Queue-Id: B94653AAC8 Authentication-Results: aspmx1.migadu.com; dkim=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none) X-Migadu-Scanner: scn0.migadu.com X-Migadu-Spam-Score: -1.83 X-TUID: LHj+bWsMlpiX On 18/12/2022 21:26, Ihor Radchenko wrote: > Max Nikulin writes: > >>> We might do something like >>> >>> (eval-and-compile (org-assert-version)) >> >> This will give obscure error during compiling since `org-assert-version' >> is not defined. > > Yes, but we will at least abort the compilation this way. You are right that it prevents creation of .elc files. Unfortunately `byte-recompile-directory' converts failure into a message instead of aborting package install completely. When used consistently, it should cause load of Org completely uncompiled during next Emacs session. It is better than having incorrectly compiled files. Notice that `org-assert-version' works for compiled files only, so if a user loads some third-party package (hyperbole?) that loads built-in Org and later adds new Org to `load-path' then we get an obscure error again. Currently I am experimenting with minimal examples, not with full Org package, so I may confuse something. >> ;; Remove when support of Emacs-29 is dropped. >> (unless (fboundp 'org-assert-version) >> (error "Org is compiled or loaded while older version loaded already. >> Please, ensure that no other org versions are loaded and recompile.")) Another idea to have more concise code in each file is to put a new macro to a *new* file to avoid the issue with old org-macs.el without definition of the new macro `org-assert-version'. So each file should contain (require 'org-assert-version-undefined) (org-assert-version-undefined) `org-assert-version' remains in org-macs.el. The goal is to generate an instructive error. The problem is that after fix in org-assert-version-undefined.el, an old version will be active for some users. In addition I have noticed that e.g. org-matlab.el contains (require 'org-macs) (org-assert-version) Shouldn't it be (eval-when-compile (require 'org-macs)) since no functions are used from this file? Some files have duplicated (require 'org-macs).