From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Taylan Kammer Newsgroups: gmane.lisp.guile.bugs Subject: bug#18835: load-from-path is inconsistent when looking for a compiled version of the source file Date: Mon, 17 May 2021 22:25:48 +0200 Message-ID: <9b5e0494-cbad-1187-f04b-98280b1ce07f@gmail.com> References: <2787802.8pnN87I00l@legolas.kobaltwit.lan> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------D3815E581937F966DBF60D3E" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17070"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 To: 18835@debbugs.gnu.org, Andy Wingo Original-X-From: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Mon May 17 22:26:07 2021 Return-path: Envelope-to: guile-bugs@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 1lijoV-0004GO-Jb for guile-bugs@m.gmane-mx.org; Mon, 17 May 2021 22:26:07 +0200 Original-Received: from localhost ([::1]:52800 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lijoU-0007a2-Lu for guile-bugs@m.gmane-mx.org; Mon, 17 May 2021 16:26:06 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40366) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lijoQ-0007Zu-WB for bug-guile@gnu.org; Mon, 17 May 2021 16:26:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:42341) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lijoQ-0001Xs-Ok for bug-guile@gnu.org; Mon, 17 May 2021 16:26:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lijoQ-0002LR-71 for bug-guile@gnu.org; Mon, 17 May 2021 16:26:02 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: <2787802.8pnN87I00l@legolas.kobaltwit.lan> Resent-From: Taylan Kammer Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Mon, 17 May 2021 20:26:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18835 X-GNU-PR-Package: guile Original-Received: via spool by 18835-submit@debbugs.gnu.org id=B18835.16212831619006 (code B ref 18835); Mon, 17 May 2021 20:26:02 +0000 Original-Received: (at 18835) by debbugs.gnu.org; 17 May 2021 20:26:01 +0000 Original-Received: from localhost ([127.0.0.1]:53887 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lijoO-0002LC-R8 for submit@debbugs.gnu.org; Mon, 17 May 2021 16:26:01 -0400 Original-Received: from mail-ed1-f50.google.com ([209.85.208.50]:41709) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lijoJ-0002Kt-Bl for 18835@debbugs.gnu.org; Mon, 17 May 2021 16:25:59 -0400 Original-Received: by mail-ed1-f50.google.com with SMTP id v5so8391785edc.8 for <18835@debbugs.gnu.org>; Mon, 17 May 2021 13:25:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:from:subject:message-id:date:user-agent:mime-version :content-language; bh=/bWFoZzqrvjzrE6aav77YELc/EFuE3P0SmU9LjxU2R4=; b=pc/LkgAFLkqnrkU0XrVMWlbfqDRWoyMH/tSu7XNFh1ZUkglOBJ+kUJ+wqZr8nFe7Fv BQkw5uoI1oxlEhkHfsWu1EO/YkOkvot9G8lZvYeVbJE0fkUn4zz/CnDqIgI1RxHaNJac PBxtOZBTCOuZGBs3ZMvft5LvcIwzNnse7VU/7i5herz76a/zaRwFTtN2D8cy69msaXRS waB9MSH3eO10YQ+IT4tpQYyvGFwo5zun/yjo+6Gm5/2NovV0GwzJ/xNB2ToOo5LuHWfx GZ5Ni5Z0gURz1IXjmKtKB41kgObob+50IVvHfFXjuMbdhwB79sNEUV2P6mVsxfxOR8Vn y9mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-language; bh=/bWFoZzqrvjzrE6aav77YELc/EFuE3P0SmU9LjxU2R4=; b=EbpAanjAi7gkTfUj/3jDf9B4rhecuoYTrV3XFVqofBMbCAwV2l94V43SdXYyFKfJZv lmD/GWvtMZLTQ00X+kLD/WwS/k/IFez+dsA4JRT8XoAf9vE86sWXCbSMYmupYwLnqgAk DnAM4oV1Yp5K8owuzGxVEcSJdbCJEooLBNojYMXFuqHjUSUVha/uGyK6zdIMRbnMOqH4 LHK7N0Jx7aDHiQ6SGxilI57rDfKjZfDZ/wI5y0qNr6Z7UWJrIT0q57t4KvzVn9i7+lvK e4x8lyMGL5ZL6GUF/K1Aly4dpr+Y/7zLQnEIofaaRhAKFxlVUBxOjiPAlnHH8F8ASLqW YR3g== X-Gm-Message-State: AOAM5311DX9HXz3uGJDdkhhmCrzf5wwSpO3rfp/Ztpt5cnzBxMIKcUvW heg8geTLW7xZ1v6Yk0Nk7IQ= X-Google-Smtp-Source: ABdhPJzGsB06+XH9clPPQbYtTceRZI6SfwWuyYaVUPICGW3HIO2H2cdEX2suoH/GpK5vweY78wZvFw== X-Received: by 2002:aa7:d94f:: with SMTP id l15mr2297667eds.235.1621283149465; Mon, 17 May 2021 13:25:49 -0700 (PDT) Original-Received: from [192.168.178.20] (b2b-109-90-125-150.unitymedia.biz. [109.90.125.150]) by smtp.gmail.com with ESMTPSA id x9sm11729010edv.22.2021.05.17.13.25.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 17 May 2021 13:25:49 -0700 (PDT) Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Original-Sender: "bug-guile" Xref: news.gmane.io gmane.lisp.guile.bugs:10083 Archived-At: This is a multi-part message in MIME format. --------------D3815E581937F966DBF60D3E Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit In 2016, Andy wrote: > The logic in load.c is that we only add on .go if the file > doesn't already have an extension. If the file has an extension and > it's not .go, then we don't grovel in the path at all. I guess this is > the wrong thing? > > I am not sure if we can change this in 2.0 or not. I guess we can. Well that ship has sailed anyway. ;-) IMO we should change the behavior to always try to add extensions, after first trying without an extension. It's feasible that one might choose to name one's files like foo.bar.scm and the like, in which case trying to load foo.bar should work. I might name a number of files foo.v1.scm, foo.v2.scm, and so on. Alternatively, consider the already popular foo.upstream.scm. Further, I don't see any possible confusion arising from adding the extensions. No one would name their files foo.go.scm or foo.scm.scm and then try to load "foo.go" or "foo.scm" and expect the one with an extra .scm to be loaded. I thought a bit whether there might be security implications, like when dropping files into a directory where every user can create files, and someone could maliciously put a foo.scm.scm to take precedence over your foo.scm, but that's already a problem as they could drop in a foo.go, so the solution is not to try to load files from directories you can't trust, like /tmp. The only compatibility issue I can think of: maybe some people put both a file foo and a file foo.scm in the same directory, and expect (load "foo") to *not* try to load the one without an extension. Thoughts? Attached is a patch that would implement the suggestion of trying without an extension first, then with an extension, without checking whether the original filename does or doesn't have an extension. -- Taylan --------------D3815E581937F966DBF60D3E Content-Type: text/plain; charset=UTF-8; name="0001-Make-load-try-to-add-an-extension-to-files-that-alre.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Make-load-try-to-add-an-extension-to-files-that-alre.pa"; filename*1="tch" RnJvbSAyZWQ4MGY4MzEwMDY4MTVlMzczNzRhNzQyMThhZjQ1NzI3MDMyMjlmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYXlsYW4gS2FtbWVyIDx0YXlsYW4ua2FtbWVyQGdt YWlsLmNvbT4KRGF0ZTogTW9uLCAxNyBNYXkgMjAyMSAxOTozMTo0MCArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIE1ha2UgbG9hZCB0cnkgdG8gYWRkIGFuIGV4dGVuc2lvbiB0byBmaWxlcyB0 aGF0IGFscmVhZHkgaGF2ZQogb25lLgoKKiBsaWJndWlsZS9sb2FkLmMgKGxvYWRfdGh1bmtf ZnJvbV9wYXRoLCBzZWFyY2hfcGF0aCk6IFJlbW92ZSB0aGUgY29kZQp0aGF0IGNoZWNrcyB3 aGV0aGVyIHRoZSBmaWxlbmFtZSBhbHJlYWR5IGhhcyBhbiBleHRlbnNpb24uICBBZGQgdGhl CmVtcHR5IHN0cmluZyB0byB0aGUgaGVhZCBvZiB0aGUgZXh0ZW5zaW9ucyBsaXN0LgotLS0K IGxpYmd1aWxlL2xvYWQuYyB8IDY3ICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmd1aWxlL2xvYWQuYyBiL2xpYmd1aWxl L2xvYWQuYwppbmRleCBlOTVjMzZkYjEuLjBjMTk4ZjE2NSAxMDA2NDQKLS0tIGEvbGliZ3Vp bGUvbG9hZC5jCisrKyBiL2xpYmd1aWxlL2xvYWQuYwpAQCAtNjQ5LDcgKzY0OSw2IEBAIGxv YWRfdGh1bmtfZnJvbV9wYXRoIChTQ00gZmlsZW5hbWUsIFNDTSBzb3VyY2VfZmlsZV9uYW1l LAogICBzdHJ1Y3Qgc3RyaW5nYnVmIGJ1ZjsKICAgc3RydWN0IHN0YXQgc3RhdF9idWY7CiAg IGNoYXIgKmZpbGVuYW1lX2NoYXJzOwotICBzaXplX3QgZmlsZW5hbWVfbGVuOwogICBTQ00g cGF0aCwgZXh0ZW5zaW9uczsKICAgU0NNIHJlc3VsdCA9IFNDTV9CT09MX0Y7CiAgIGNoYXIg aW5pdGlhbF9idWZmZXJbMjU2XTsKQEAgLTY2Nyw3ICs2NjYsNiBAQCBsb2FkX3RodW5rX2Zy b21fcGF0aCAoU0NNIGZpbGVuYW1lLCBTQ00gc291cmNlX2ZpbGVfbmFtZSwKICAgc2NtX2R5 bndpbmRfYmVnaW4gKDApOwogCiAgIGZpbGVuYW1lX2NoYXJzID0gc2NtX3RvX2xvY2FsZV9z dHJpbmcgKGZpbGVuYW1lKTsKLSAgZmlsZW5hbWVfbGVuID0gc3RybGVuIChmaWxlbmFtZV9j aGFycyk7CiAgIHNjbV9keW53aW5kX2ZyZWUgKGZpbGVuYW1lX2NoYXJzKTsKIAogICAvKiBJ ZiBGSUxFTkFNRSBpcyBhYnNvbHV0ZSBhbmQgaXMgc3RpbGwgdmFsaWQsIHJldHVybiBpdCB1 bmNoYW5nZWQuICAqLwpAQCAtNjgwLDM0ICs2NzgsNiBAQCBsb2FkX3RodW5rX2Zyb21fcGF0 aCAoU0NNIGZpbGVuYW1lLCBTQ00gc291cmNlX2ZpbGVfbmFtZSwKICAgICAgIGdvdG8gZW5k OwogICAgIH0KIAotICAvKiBJZiBGSUxFTkFNRSBoYXMgYW4gZXh0ZW5zaW9uLCBkb24ndCB0 cnkgdG8gYWRkIEVYVEVOU0lPTlMgdG8gaXQuICAqLwotICB7Ci0gICAgY2hhciAqZW5kcDsK LQotICAgIGZvciAoZW5kcCA9IGZpbGVuYW1lX2NoYXJzICsgZmlsZW5hbWVfbGVuIC0gMTsK LQkgZW5kcCA+PSBmaWxlbmFtZV9jaGFyczsKLQkgZW5kcC0tKQotICAgICAgewotCWlmICgq ZW5kcCA9PSAnLicpCi0JICB7Ci0gICAgICAgICAgICBpZiAoIXN0cmluZ19oYXNfYW5fZXh0 IChmaWxlbmFtZSwgZXh0ZW5zaW9ucykpCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAg ICAgICAvKiBUaGlzIGZpbGVuYW1lIGhhcyBhbiBleHRlbnNpb24sIGJ1dCBub3Qgb25lIG9m IHRoZSByaWdodAotICAgICAgICAgICAgICAgICAgIG9uZXMuLi4gKi8KLSAgICAgICAgICAg ICAgICBnb3RvIGVuZDsKLSAgICAgICAgICAgICAgfQotCSAgICAvKiBUaGlzIGZpbGVuYW1l IGFscmVhZHkgaGFzIGFuIGV4dGVuc2lvbiwgc28gY2FuY2VsIHRoZQotICAgICAgICAgICAg ICAgbGlzdCBvZiBleHRlbnNpb25zLiAgKi8KLQkgICAgZXh0ZW5zaW9ucyA9IFNDTV9FT0w7 Ci0JICAgIGJyZWFrOwotCSAgfQotCWVsc2UgaWYgKGlzX2ZpbGVfbmFtZV9zZXBhcmF0b3Ig KFNDTV9NQUtFX0NIQVIgKCplbmRwKSkpCi0JICAvKiBUaGlzIGZpbGVuYW1lIGhhcyBubyBl eHRlbnNpb24sIHNvIGtlZXAgdGhlIGN1cnJlbnQgbGlzdAotICAgICAgICAgICAgIG9mIGV4 dGVuc2lvbnMuICAqLwotCSAgYnJlYWs7Ci0gICAgICB9Ci0gIH0KLQogICAvKiBUaGlzIHNp bXBsaWZpZXMgdGhlIGxvb3AgYmVsb3cgYSBiaXQuCiAgICAqLwogICBpZiAoc2NtX2lzX251 bGwgKGV4dGVuc2lvbnMpKQpAQCAtNzM2LDYgKzcwNiw5IEBAIGxvYWRfdGh1bmtfZnJvbV9w YXRoIChTQ00gZmlsZW5hbWUsIFNDTSBzb3VyY2VfZmlsZV9uYW1lLAogICAgICAgc3RyaW5n YnVmX2NhdCAoJmJ1ZiwgZmlsZW5hbWVfY2hhcnMpOwogICAgICAgc2Fuc19leHRfbGVuID0g YnVmLnB0ciAtIGJ1Zi5idWY7CiAKKyAgICAgIC8qIEFkZCB0aGUgZW1wdHkgc3RyaW5nIGFz IHRoZSBmaXJzdCAiZXh0ZW5zaW9uLiIgKi8KKyAgICAgIGV4dGVuc2lvbnMgPSBzY21fY29u cyAoc2NtX251bGxzdHIsIGV4dGVuc2lvbnMpOworCiAgICAgICAvKiBUcnkgZXZlcnkgZXh0 ZW5zaW9uLiAqLwogICAgICAgZm9yIChleHRzID0gZXh0ZW5zaW9uczsgc2NtX2lzX3BhaXIg KGV4dHMpOyBleHRzID0gU0NNX0NEUiAoZXh0cykpCiAJewpAQCAtODA1LDcgKzc3OCw2IEBA IHNlYXJjaF9wYXRoIChTQ00gcGF0aCwgU0NNIGZpbGVuYW1lLCBTQ00gZXh0ZW5zaW9ucywg U0NNIHJlcXVpcmVfZXh0cywKIHsKICAgc3RydWN0IHN0cmluZ2J1ZiBidWY7CiAgIGNoYXIg KmZpbGVuYW1lX2NoYXJzOwotICBzaXplX3QgZmlsZW5hbWVfbGVuOwogICBTQ00gcmVzdWx0 ID0gU0NNX0JPT0xfRjsKICAgY2hhciBpbml0aWFsX2J1ZmZlclsyNTZdOwogCkBAIC04MTks NyArNzkxLDYgQEAgc2VhcmNoX3BhdGggKFNDTSBwYXRoLCBTQ00gZmlsZW5hbWUsIFNDTSBl eHRlbnNpb25zLCBTQ00gcmVxdWlyZV9leHRzLAogICBzY21fZHlud2luZF9iZWdpbiAoMCk7 CiAKICAgZmlsZW5hbWVfY2hhcnMgPSBzY21fdG9fbG9jYWxlX3N0cmluZyAoZmlsZW5hbWUp OwotICBmaWxlbmFtZV9sZW4gPSBzdHJsZW4gKGZpbGVuYW1lX2NoYXJzKTsKICAgc2NtX2R5 bndpbmRfZnJlZSAoZmlsZW5hbWVfY2hhcnMpOwogCiAgIC8qIElmIEZJTEVOQU1FIGlzIGFi c29sdXRlIGFuZCBpcyBzdGlsbCB2YWxpZCwgcmV0dXJuIGl0IHVuY2hhbmdlZC4gICovCkBA IC04MzMsMzUgKzgwNCw2IEBAIHNlYXJjaF9wYXRoIChTQ00gcGF0aCwgU0NNIGZpbGVuYW1l LCBTQ00gZXh0ZW5zaW9ucywgU0NNIHJlcXVpcmVfZXh0cywKICAgICAgIGdvdG8gZW5kOwog ICAgIH0KIAotICAvKiBJZiBGSUxFTkFNRSBoYXMgYW4gZXh0ZW5zaW9uLCBkb24ndCB0cnkg dG8gYWRkIEVYVEVOU0lPTlMgdG8gaXQuICAqLwotICB7Ci0gICAgY2hhciAqZW5kcDsKLQot ICAgIGZvciAoZW5kcCA9IGZpbGVuYW1lX2NoYXJzICsgZmlsZW5hbWVfbGVuIC0gMTsKLQkg ZW5kcCA+PSBmaWxlbmFtZV9jaGFyczsKLQkgZW5kcC0tKQotICAgICAgewotCWlmICgqZW5k cCA9PSAnLicpCi0JICB7Ci0gICAgICAgICAgICBpZiAoc2NtX2lzX3RydWUgKHJlcXVpcmVf ZXh0cykgJiYKLSAgICAgICAgICAgICAgICAhc3RyaW5nX2hhc19hbl9leHQgKGZpbGVuYW1l LCBleHRlbnNpb25zKSkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIC8qIFRo aXMgZmlsZW5hbWUgaGFzIGFuIGV4dGVuc2lvbiwgYnV0IG5vdCBvbmUgb2YgdGhlIHJpZ2h0 Ci0gICAgICAgICAgICAgICAgICAgb25lcy4uLiAqLwotICAgICAgICAgICAgICAgIGdvdG8g ZW5kOwotICAgICAgICAgICAgICB9Ci0JICAgIC8qIFRoaXMgZmlsZW5hbWUgYWxyZWFkeSBo YXMgYW4gZXh0ZW5zaW9uLCBzbyBjYW5jZWwgdGhlCi0gICAgICAgICAgICAgICBsaXN0IG9m IGV4dGVuc2lvbnMuICAqLwotCSAgICBleHRlbnNpb25zID0gU0NNX0VPTDsKLQkgICAgYnJl YWs7Ci0JICB9Ci0JZWxzZSBpZiAoaXNfZmlsZV9uYW1lX3NlcGFyYXRvciAoU0NNX01BS0Vf Q0hBUiAoKmVuZHApKSkKLQkgIC8qIFRoaXMgZmlsZW5hbWUgaGFzIG5vIGV4dGVuc2lvbiwg c28ga2VlcCB0aGUgY3VycmVudCBsaXN0Ci0gICAgICAgICAgICAgb2YgZXh0ZW5zaW9ucy4g ICovCi0JICBicmVhazsKLSAgICAgIH0KLSAgfQotCiAgIC8qIFRoaXMgc2ltcGxpZmllcyB0 aGUgbG9vcCBiZWxvdyBhIGJpdC4KICAgICovCiAgIGlmIChzY21faXNfbnVsbCAoZXh0ZW5z aW9ucykpCkBAIC04OTAsNiArODMyLDkgQEAgc2VhcmNoX3BhdGggKFNDTSBwYXRoLCBTQ00g ZmlsZW5hbWUsIFNDTSBleHRlbnNpb25zLCBTQ00gcmVxdWlyZV9leHRzLAogICAgICAgc3Ry aW5nYnVmX2NhdCAoJmJ1ZiwgZmlsZW5hbWVfY2hhcnMpOwogICAgICAgc2Fuc19leHRfbGVu ID0gYnVmLnB0ciAtIGJ1Zi5idWY7CiAKKyAgICAgIC8qIEFkZCB0aGUgZW1wdHkgc3RyaW5n IGFzIHRoZSBmaXJzdCAiZXh0ZW5zaW9uLiIgKi8KKyAgICAgIGV4dGVuc2lvbnMgPSBzY21f Y29ucyAoc2NtX251bGxzdHIsIGV4dGVuc2lvbnMpOworCiAgICAgICAvKiBUcnkgZXZlcnkg ZXh0ZW5zaW9uLiAqLwogICAgICAgZm9yIChleHRzID0gZXh0ZW5zaW9uczsgc2NtX2lzX3Bh aXIgKGV4dHMpOyBleHRzID0gU0NNX0NEUiAoZXh0cykpCiAJewotLSAKMi4zMC4yCgo= --------------D3815E581937F966DBF60D3E--