From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Andrea Corallo Newsgroups: gmane.emacs.devel Subject: Re: How does one find out what file a library has been loaded from? Date: Tue, 02 Aug 2022 14:13:58 +0000 Message-ID: References: <83bktlnuog.fsf@gnu.org> <83ilnmfq9t.fsf@gnu.org> <83ilnd4f72.fsf@gnu.org> <83bkt226a7.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="7597"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: acm@muc.de, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Aug 02 16:15:10 2022 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 1oIsfu-0001gl-Dd for ged-emacs-devel@m.gmane-mx.org; Tue, 02 Aug 2022 16:15:10 +0200 Original-Received: from localhost ([::1]:43028 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oIsfs-0002FL-Q7 for ged-emacs-devel@m.gmane-mx.org; Tue, 02 Aug 2022 10:15:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:46298) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIset-0001UC-Ue for emacs-devel@gnu.org; Tue, 02 Aug 2022 10:14:09 -0400 Original-Received: from mx.sdf.org ([205.166.94.24]:61887) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oIser-0006Mh-99; Tue, 02 Aug 2022 10:14:07 -0400 Original-Received: from ma.sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 272EDwFH000887 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Tue, 2 Aug 2022 14:13:58 GMT In-Reply-To: <83bkt226a7.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 02 Aug 2022 15:12:32 +0300") Received-SPF: pass client-ip=205.166.94.24; envelope-from=akrl@sdf.org; helo=mx.sdf.org X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-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" Xref: news.gmane.io gmane.emacs.devel:292992 Archived-At: Eli Zaretskii writes: >> From: Andrea Corallo >> Cc: acm@muc.de, emacs-devel@gnu.org >> Date: Tue, 02 Aug 2022 08:43:53 +0000 >> >> > Other than that only note I've is that (in 'maybe_swap_for_eln1') we do >> > reject the .eln file if it's younger than the corresponding .elc one. I >> > think we should mimic this as well here no? >> >> I do realize now this is probably not a real case as: if (in >> 'maybe_swap_for_eln1') we reject the eln while loading because older >> than the elc we give up entirely on loading native code, even if might >> be available in another directory down in `native-comp-eln-load-path'. >> So your code should be just fine in this respect. > > I'm not sure I understand: in what sense do we "give up entirely on > loading native code"? I don't see in maybe_swap_for_eln1 or in > maybe_swap_for_eln anything that would mean something like that. All > I see is that we continue using the .elc file if the timestamp test > fails. Yes correct, that's what I meant, we give up for this specific .elc file instead of keep on searching. > So in that case, my changes would return the .eln file even > though it was not actually loaded. Ops that's correct, I miss-read your code sorry. > We could document this corner use case, and say that we return the > .eln file even if it's outdated, or we could add the timestamp test > you suggested, and return the .elc file if the test fails. I think would be nicer to have the timestamp test. Still if the filesystem state changes the result could be incorrect, ex one could even remove the .eln file and even if the definition is coming from it we'd return the .elc. Perhaps we should document this? Thanks Andrea