From unknown Fri Sep 05 08:41:29 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#24491 <24491@debbugs.gnu.org> To: bug#24491 <24491@debbugs.gnu.org> Subject: Status: Avoid recursive require of eshell Reply-To: bug#24491 <24491@debbugs.gnu.org> Date: Fri, 05 Sep 2025 15:41:29 +0000 retitle 24491 Avoid recursive require of eshell reassign 24491 emacs submitter 24491 "Brendan O'Dea" severity 24491 minor tag 24491 fixed patch thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 21 01:46:53 2016 Received: (at submit) by debbugs.gnu.org; 21 Sep 2016 05:46:53 +0000 Received: from localhost ([127.0.0.1]:58697 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bmaMv-0001Rq-Cb for submit@debbugs.gnu.org; Wed, 21 Sep 2016 01:46:53 -0400 Received: from eggs.gnu.org ([208.118.235.92]:43984) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bmXzh-0005sE-BW for submit@debbugs.gnu.org; Tue, 20 Sep 2016 23:14:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bmXzb-0002Rz-5x for submit@debbugs.gnu.org; Tue, 20 Sep 2016 23:14:40 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:58805) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmXzb-0002Ri-2y for submit@debbugs.gnu.org; Tue, 20 Sep 2016 23:14:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34952) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmXzZ-0003gm-0B for bug-gnu-emacs@gnu.org; Tue, 20 Sep 2016 23:14:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bmXzX-0002R8-0M for bug-gnu-emacs@gnu.org; Tue, 20 Sep 2016 23:14:35 -0400 Received: from mail-oi0-x230.google.com ([2607:f8b0:4003:c06::230]:35933) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmXzW-0002Qu-QY for bug-gnu-emacs@gnu.org; Tue, 20 Sep 2016 23:14:34 -0400 Received: by mail-oi0-x230.google.com with SMTP id t83so45448963oie.3 for ; Tue, 20 Sep 2016 20:14:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=c47-org.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:from:date:message-id:subject:to; bh=NS5ghvC94yd42/m8VRxXmZdHHe3VreuHIO9ViEKXlps=; b=ZFMKScYqduXVHq9WWS+wOXZxyjU/LoPtfi9299qU5vcdrN0Hq2nwwU6GVERDIUuWg6 ki78mDOnhWrEf3vTdmoORBJIEDgq1spJzZDlUm5vBXJ1bBedxImrYq34zheVBXAcyrsU nskMoIWst7h2wCBtR6iSlELjIb6YMVZ17tAbtPwATOdHy2r7lIj6vejYJp7mD7CVf9kn KG93dstNQdjUCJgeoAEF1ug+zyPcs8JDjglgPluu/NKUNXpeHPu7oWcrtnGJE05VhMgn hili8+XI3K7lXLUQZ/+MOESkxywDDuc4U1WD4FSa8iZiISTp5wvv9JJhPvrC6V4MPyWM Tuhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=NS5ghvC94yd42/m8VRxXmZdHHe3VreuHIO9ViEKXlps=; b=PaPQpOCQGVDz/hQH7oeGIBXD9g09Zo0RP8hJB9v3ZE/2WxzMzNK6o8s3JOdK1ydmRF 4gUDnhmOm7xuj0SYWhS/m1XupAughh9cnNmloQSETfBLzPDTQypgsPkpAUvbb99FiQtv gNX5iA/Bh5Iok86RuHC1ht/fFOWpMCqZc6oFC7xAXz6ZqgzfiTDB1gtBOm29Z2bj9knY 0mXhRA15lXIhWHkg9/+LshjlO6ddYimTwXI4wZ3gdfCxRuKD12AAYASRjckDIi2mMpwV sNHutblJolbDNPdJEp0QYdP3yuzE23LX5ypj1wxc/DQO5RWCU4omk4JxWm9xk3a8Aq70 L42A== X-Gm-Message-State: AE9vXwNXPAuX7YSID2wR25onqIIabt6acLbClNEJEbvwS/jWQ4wP24w6auExcj2td/1HtzMn3UUtHiiAi8OJcQ== X-Received: by 10.202.228.69 with SMTP id b66mr1319135oih.168.1474427673719; Tue, 20 Sep 2016 20:14:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.202.189.66 with HTTP; Tue, 20 Sep 2016 20:14:33 -0700 (PDT) X-Originating-IP: [2401:fa00:9:1:f8f6:d58b:f5a3:5290] From: "Brendan O'Dea" Date: Wed, 21 Sep 2016 13:14:33 +1000 X-Google-Sender-Auth: ssV6AF3sv3HzpWn8GUaJfZybo3Q Message-ID: Subject: Avoid recursive require of eshell To: bug-gnu-emacs@gnu.org Content-Type: multipart/mixed; boundary=001a1141a480bd6776053cfbf11a X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Wed, 21 Sep 2016 01:46:51 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) --001a1141a480bd6776053cfbf11a Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Package: emacs Version: 25.1.1 Tags: patch Attempting add a function to eshell-load-hook, and that function is autoloaded from a file which also requires eshell, produces the following error: Recursive =E2=80=98require=E2=80=99 for feature =E2=80=98eshell=E2=80=99 Specifically, I'm trying to do this: (add-hook 'eshell-load-hook #'eshell-local-setup) where eshell-local-setup is an autoloaded function which does a few things, including adding to eshell-variable-aliases-list and the file it is defined in has: (require 'esh-var) which indirectly attempts to require eshell. The simple fix for this is to run the hook after providing eshell. This seems to be fairly common (see align.el, autorevert.el, dired.el, expand.el, ibuffer.el, etc) although not consistent (bookmark.el, cmuscheme.el, etc. do it in the other order). --bod --001a1141a480bd6776053cfbf11a Content-Type: text/x-patch; charset=US-ASCII; name="eshell.patch" Content-Disposition: attachment; filename="eshell.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_itcc5n6e0 ZGlmZiAtLWdpdCBhL2xpc3AvZXNoZWxsL2VzaGVsbC5lbCBiL2xpc3AvZXNoZWxsL2VzaGVsbC5l bAppbmRleCA4YjIxNzMwLi5iYWFlY2EzIDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9lc2hlbGwu ZWwKKysrIGIvbGlzcC9lc2hlbGwvZXNoZWxsLmVsCkBAIC00MDEsOCArNDAxLDggQEAgZXNoZWxs LXVubG9hZC1hbGwtbW9kdWxlcwogCSAgICAobWVzc2FnZSAiVW5sb2FkaW5nICVzLi4uZG9uZSIg KHN5bWJvbC1uYW1lIG1vZHVsZSkpKSkpCiAgICAgKG1lc3NhZ2UgIlVubG9hZGluZyBlc2hlbGwu Li5kb25lIikpKQogCi0ocnVuLWhvb2tzICdlc2hlbGwtbG9hZC1ob29rKQotCiAocHJvdmlkZSAn ZXNoZWxsKQogCisocnVuLWhvb2tzICdlc2hlbGwtbG9hZC1ob29rKQorCiA7OzsgZXNoZWxsLmVs IGVuZHMgaGVyZQo= --001a1141a480bd6776053cfbf11a-- From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 21 16:33:58 2016 Received: (at 24491) by debbugs.gnu.org; 21 Sep 2016 20:33:58 +0000 Received: from localhost ([127.0.0.1]:60002 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bmoDO-0006Zy-1H for submit@debbugs.gnu.org; Wed, 21 Sep 2016 16:33:58 -0400 Received: from eggs.gnu.org ([208.118.235.92]:50040) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bmoDM-0006Zh-Cl for 24491@debbugs.gnu.org; Wed, 21 Sep 2016 16:33:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bmoDG-0003wG-J4 for 24491@debbugs.gnu.org; Wed, 21 Sep 2016 16:33:51 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_40,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:43606) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmoCz-0003kB-WC; Wed, 21 Sep 2016 16:33:34 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.82) (envelope-from ) id 1bmoCx-0006SG-Pj; Wed, 21 Sep 2016 16:33:32 -0400 From: Glenn Morris To: "Brendan O'Dea" Subject: Re: bug#24491: Avoid recursive require of eshell References: X-Spook: George W. Bush Execution outage cryptanalysis Customs and X-Ran: mzj>1L+s@)_%8Z."#jbqG?JAT[S0p=U?oH\dzZ8:=<0I4XlBqV*g),GxPl&/.&z%P!FlAs X-Hue: red X-Debbugs-No-Ack: yes X-Attribution: GM Date: Wed, 21 Sep 2016 16:33:31 -0400 In-Reply-To: (Brendan O'Dea's message of "Wed, 21 Sep 2016 13:14:33 +1000") Message-ID: <0ushst6lic.fsf@fencepost.gnu.org> User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -8.1 (--------) X-Debbugs-Envelope-To: 24491 Cc: 24491@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -8.1 (--------) You ought to be able to avoid such problems by using (with-)eval-after-load instead of foo-load-hook, since the former runs after provide (effectively). Frankly all foo-load-hooks are probably historical baggage that should be obsoleted. There's no need for them to exist given that a general solution does. From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 03 22:55:21 2019 Received: (at control) by debbugs.gnu.org; 4 Apr 2019 02:55:21 +0000 Received: from localhost ([127.0.0.1]:43540 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hBsXA-00019m-PX for submit@debbugs.gnu.org; Wed, 03 Apr 2019 22:55:20 -0400 Received: from mail-qt1-f178.google.com ([209.85.160.178]:46640) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hBsX9-00019X-54; Wed, 03 Apr 2019 22:55:19 -0400 Received: by mail-qt1-f178.google.com with SMTP id z17so1503957qts.13; Wed, 03 Apr 2019 19:55:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=6S5AUHizo4+yqy4jsmiQRNOUxMPMH29AXkdXAmm0jVE=; b=U/JYfbxFhtA/d1irIsPfCMpMBiWDqsnS8g/NgtC+RMowOzUJA3E3b8oXePtsF9NfbK 1so6+rIVwSpVjwWP6jUpXq3JVv3G3B7P8V+anqM45VgqbgxqJArsUkUbimFg2rKO6vRN tKTgvfmvKMp3nM39nr97meF2Iwz2t89SKtWZtvC830O4AUsEMXPuo/eB+wmif/ppBDK/ uge7jd06Qhhf1oJDrcEwNvkte7w9jW1+y54XulOIF3bKU3iGpwCIBfd1ijdgvJ/m9pxK geIki0GI8Al79axk/8ggqIdYkjhSVdq8a0LeOvs2H0KeKGpHvUOxg6S28naim24VwJYf KTdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=6S5AUHizo4+yqy4jsmiQRNOUxMPMH29AXkdXAmm0jVE=; b=UoFuPCn9Xv+l4AuNwlLnbH7jpg+vyRT21Ac3OdBQC6R8qo6vaPXoG2KQIvV4QEBI58 wR73Jn8VOxtuYlOqGsgzeFejcVu8SSn49b6Zud2VFbFNw6B+i8wHerlJCmZ0o0TYio6W ioOILNMO9usmfkLzxjnFs9nXck79O11HqR6UroP1OYUt2LNdQD7BC9+2WwV2POUxXrjI /FBoUW/swau+Ug30I6TRdDTyPUMMvlb4SCprd6QAcbPnrv/KBunkbns7lmd/Ld1zh6Ji k89ETeAuo5fP6ZKWpy5gx6fia9+fv6cJ2wQ3UUn9snaFprH6m4vxMm1fx96wUdKpxsNX RE8w== X-Gm-Message-State: APjAAAXR/VhUrKHcdVZTTkqxiMdDJn8sIuidvNwHwQesZZsPI8njG4Qn h9WpmPa6gRgsQCYpe2qjCF0ATaph X-Google-Smtp-Source: APXvYqwICnRFHvNMrlyYSm/bBNGF29XL6kT+5Rtvk934MuczD9yDFe56sIxo//7tHlXvoBZfBmgR2w== X-Received: by 2002:ac8:2f96:: with SMTP id l22mr3295417qta.258.1554346511834; Wed, 03 Apr 2019 19:55:11 -0700 (PDT) Received: from minid (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.googlemail.com with ESMTPSA id y34sm8098760qta.96.2019.04.03.19.55.10 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 03 Apr 2019 19:55:10 -0700 (PDT) From: Noam Postavsky To: Mauro Aranda Subject: Re: bug#34954: 26.1.92; eshell gets loaded twice References: <2himw4qz18.fsf@fencepost.gnu.org> Date: Wed, 03 Apr 2019 22:55:09 -0400 In-Reply-To: (Mauro Aranda's message of "Wed, 27 Mar 2019 10:51:13 -0300") Message-ID: <8736myfpiq.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control Cc: 34954@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) merge 34954 24491 tags 34954 fixed close 34954 27.1 quit Mauro Aranda writes: > > Anyway, my recipe was meant to provide evidence that eshell gets loaded > twice. That still happens, either eshell-load-hook or > with-eval-after-load is used in real code. It would be good to solve > that double loading. That way, either eshell-load-hook (until it is > obsoleted, if it eventually happens) or with-eval-after-load (any order > of execution) can be used. Yep, makes sense, I've pushed your patch [1: 5e55b1b829]. To your question about a better solution, I think it would require a major reorganizing of eshell's code to avoid circular requires, and we already have some prior art where some eshell have the provide at the top, so we may as well go with what you posted. [1: 5e55b1b829]: 2019-04-03 22:47:10 -0400 Avoid recursive load of eshell https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=5e55b1b82952a03b704c464e8086d3c41e993a46 From unknown Fri Sep 05 08:41:29 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 02 May 2019 11:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator