From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: ;;;###autoload declarations Date: Fri, 23 Jun 2023 20:26:07 +0200 Message-ID: <87sfaivxvk.fsf@dataswamp.org> References: <91a7W5OWdKtKD4A-ZeZZUeCLNTxNm82hYVDTZ-_uC1JiI1KzGZZVYF4HuUMdxyursZQ-CgIXKRziOKd2FRj9rL_7ADQ7Rjn7gu2CaCgSNA4=@proton.me> <87v8few484.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12642"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:DEfgv3qkgF0IVx6JhmvgnZ8nCA0= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jun 26 11:54:50 2023 Return-path: Envelope-to: geh-help-gnu-emacs@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 1qDivp-00030z-Pn for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 26 Jun 2023 11:54:49 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qDiuv-0004Ph-Qp; Mon, 26 Jun 2023 05:53:59 -0400 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 1qClUH-0008Rx-7u for help-gnu-emacs@gnu.org; Fri, 23 Jun 2023 14:26:25 -0400 Original-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 1qClUA-0007Gu-R4 for help-gnu-emacs@gnu.org; Fri, 23 Jun 2023 14:26:24 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1qClU9-00053j-3L for help-gnu-emacs@gnu.org; Fri, 23 Jun 2023 20:26:17 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Mon, 26 Jun 2023 05:53:37 -0400 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:144041 Archived-At: Michael Heerdegen wrote: >> It then seems to me that although autoloading is intended >> as described, technically it is untrue, because everything >> seems to be evaluated all in one go. >> >> What is going on ? > > You need to generate a loaddefs file. If we change "all in one go" into "sequentially" or "in the order specified by the Lisp syntax" then - that's the natural order of things. So ;;;###autoload is obviously an exception ... but anyway, it works like this, as described in the documentation - The autoload facility lets you register the existence of a function or macro, but put off loading the file that defines it. The first call to the function automatically loads the proper library, in order to install the real definition and other associated code, then runs the real definition as if it had been loaded all along. (info "(elisp) Autoload") However, what I can see it fails to address why this is at all desirable to do and, assuming it is, in what cases more precisely it is useful. Which I think is a candidate for the second if not first paragraph! If you agree. -- underground experts united https://dataswamp.org/~incal