From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Arthur Miller Newsgroups: gmane.emacs.devel Subject: Re: Generic autoloading? [Was Patch: perform autoloading when docs is missing from autoload object] Date: Fri, 17 Sep 2021 23:25:16 +0200 Message-ID: References: <2ABC3C0C-CBF7-44D9-B498-B548F820B125@mit.edu> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="28085"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: Stefan Monnier , "emacs-devel@gnu.org" To: Qiantan Hong Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Sep 17 23:26:31 2021 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 1mRLNO-00071y-2c for ged-emacs-devel@m.gmane-mx.org; Fri, 17 Sep 2021 23:26:30 +0200 Original-Received: from localhost ([::1]:54230 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mRLNM-0002Lf-16 for ged-emacs-devel@m.gmane-mx.org; Fri, 17 Sep 2021 17:26:28 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43550) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mRLMI-0001ZY-Vp for emacs-devel@gnu.org; Fri, 17 Sep 2021 17:25:24 -0400 Original-Received: from mail-oln040092068055.outbound.protection.outlook.com ([40.92.68.55]:65348 helo=EUR02-HE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mRLMG-0005IE-NQ for emacs-devel@gnu.org; Fri, 17 Sep 2021 17:25:22 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TCaMKkSWyGmy+sWXYUiEUJr7aznRcYDrfJYjWyyLT+cNwMhaocZaiNbzOG86dsDW1hPBDlDLspaftlq2YflEiA2QY1DQDc7BdKUHoB1svv3GDwzFj+Sq9A5r5c5PtILB+3Attf9E6ir/uw7tRoWvQlV72nBJlKvfFT+shUL+3WgaoIkaCQWoZZ9sFafZ4aIX13UVaUvXAqTPfQJ/FD4/7b29o+Ff5UIV/LkE1+a/hjpgHYtPbAoJEqrI5R0UE7i89tcgCPy6z6chj+5PpY0MgPq1k29igFdH2tKLInH5hUrBYR0bsPJxy8zm/HKgvcpl100zWpT1dQwUk9KPaI0vTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=kBS8w5xSs6O8agzeAeId7wHnI4pajeacnJWc/h+x0A4=; b=ej5bRhvXXHO2rpFtLm2ZyxKcmgPRi4QjlQQ+Q7BR71LZEaOOxpMg4R0hes8hi/7TbylwlBTcvj82Wv7yK+Lg8Lp7+nd7MmL9e11jD1CdC4KUQ2I7ywngoWBRAliF6hHJkShIC6nEsDPXnnWgO9ZN1SNSJJkSg9cJZXh6GG+qCPveR4peYb6crN9ZNhJXiAqlWUjykjXp0aP4+qMN9fJIEb/8JvabYFEGq0hlphSkqXnDRTdx5WyPqke6lBMSN/6VfwkApJmfdD8jddToQVf8UxNik7ZF8QRFSVo6SlCtxU54UyDNHGZLbs/Ed+D1HlRMvmC7MSKHvOGUbhg0N5rUxQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kBS8w5xSs6O8agzeAeId7wHnI4pajeacnJWc/h+x0A4=; b=oFZ0wpZxMeW/APEgX0HzuPFdnYtRoCRIg+TWK5baS3KyP728qcZPw+jyACOOpx66BOXSljP0BqNU9rioQv7b/A4WQbWDD89GWLaFwoaQ/mkH0nrlGI7cOYK+uhK2VN+Mj/+v25Z9v2VByq36ujP2Iytz6a4Zcpn6Sl0PGPz5AJtkyuW7ERO/dGhU3+qpFQ84jbR0dwldMcuNJqnsXSsnEnkBXsFshOYTduS+LuaIEbwPbSij67u3WMhz/aKfEgYqBHS1HwW6iJCOBxpkxF4yjUYOuLFOrPtLPldLEOYjTo++FooQad5muxOTUuWMnskabHRX9q8K2Ew0xtJaoKNGAQ== Original-Received: from AM9PR09MB4977.eurprd09.prod.outlook.com (2603:10a6:20b:304::20) by AM4PR0902MB1828.eurprd09.prod.outlook.com (2603:10a6:200:96::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.16; Fri, 17 Sep 2021 21:25:17 +0000 Original-Received: from AM9PR09MB4977.eurprd09.prod.outlook.com ([fe80::c55c:ece5:bed2:a9dc]) by AM9PR09MB4977.eurprd09.prod.outlook.com ([fe80::c55c:ece5:bed2:a9dc%9]) with mapi id 15.20.4523.018; Fri, 17 Sep 2021 21:25:17 +0000 In-Reply-To: <2ABC3C0C-CBF7-44D9-B498-B548F820B125@mit.edu> (Qiantan Hong's message of "Fri, 17 Sep 2021 16:56:34 +0000") X-TMN: [qc/01yMmSIUYnQbMmU55isBKc2otIW2C] X-ClientProxiedBy: AM6PR04CA0034.eurprd04.prod.outlook.com (2603:10a6:20b:92::47) To AM9PR09MB4977.eurprd09.prod.outlook.com (2603:10a6:20b:304::20) X-Microsoft-Original-Message-ID: <871r5m51z7.fsf@live.com> X-MS-Exchange-MessageSentRepresentingType: 1 Original-Received: from pascal.homepc (81.232.177.30) by AM6PR04CA0034.eurprd04.prod.outlook.com (2603:10a6:20b:92::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14 via Frontend Transport; Fri, 17 Sep 2021 21:25:16 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dbc412ff-613a-476e-477b-08d97a21a4ba X-MS-TrafficTypeDiagnostic: AM4PR0902MB1828: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7RRqIL5Oz5tMs35375WoO0o9DgMFmreYjyBwJZOv8vDYsOThbiv/iB4l7lZnpCGbNVm0dGpsOPApsyLzw3Pbq5oX3Oo9S+IPxzs9dqx+sbV7uhIzibHARnyYs65CfdYFBQ7RTbTfcBKEvcS92Kz3naJ4yu9ogaMfKaZsaBkLf6VDNAj+DhabJJqwNwCyd1Ub34YnRVY/c9e9t2Xnt5F68tKR7Fn4MPf8c20N6eSY0BYHcPF4a35UfbNfpf5lRbU1/BGAuWubE7V80A191jK7IJksJl7DEmDmEMeMNf5xJGZ5/LPbNaTA1ibzUFq1bMFKT522ZPcLmN7paK2LX8Dq0XnX6r5+5tjrdIRo66tHiCi0Tu1C/MZLVRidHZIKsQ//m+JYqW/BLODnIQPHqQeIgJufU/0Q8uKzIJj0o/iLpahRA7gWnU+n1mm+rXzlz+MH X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: JZiqo+9eeaOZllZT7HzBhrnU/L7eZjoiAjRHqGxf3vn2MUmkF2FpFuv9GC91F9Y3zDfbsAfpKQ64nLWrBiSl9+zTwUGM3MJHPnyEWlFM3Pp/YswPXo0D9zyLlMz+0QV0flNgkUj27FUMgmlodMRugw== X-OriginatorOrg: sct-15-20-3174-20-msonline-outlook-72e6e.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: dbc412ff-613a-476e-477b-08d97a21a4ba X-MS-Exchange-CrossTenant-AuthSource: AM9PR09MB4977.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2021 21:25:17.0486 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0902MB1828 Received-SPF: pass client-ip=40.92.68.55; envelope-from=arthur.miller@live.com; helo=EUR02-HE1-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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" Xref: news.gmane.io gmane.emacs.devel:274942 Archived-At: Qiantan Hong writes: > Just in case, is it possible to provide a generic autoload mechanism > that run arbitrary function to load the missing function, > instead of hardcoded to basically a REQUIRE? > > This can be very helpful for my object capabilities implementation > because it can be used to support importing object graph more lazily. > (Instead of needing to traverse a full reference closure of a function, > we can stop at arbitrary function and resume traversal only when > that function is called). > > Currently I can fake it with a closure that knows where it is > and replace itself once called. That is what autoloads does in principle. Autoload is just a stub in funcion slot of a symbol that loads the library where object is placed. > But it feels like reimplementing the same thing twice. Yes it sounds similar in essence, but you are doing this probably from memory, autoloads are to save cpu time and speed by delay-loading from the disk "on demand".