From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Rudolf =?utf-8?Q?Adamkovi=C4=8D?= Newsgroups: gmane.emacs.devel Subject: Re: feature/package-vc has been merged Date: Tue, 08 Nov 2022 00:17:22 +0100 Message-ID: References: <164484721900.31751.1453162457552427931@vcs2.savannah.gnu.org> <875yg6qtbl.fsf@posteo.net> <87ilk33lqk.fsf@posteo.net> <87mt9epqlk.fsf@posteo.net> <87ilk1bgvd.fsf@posteo.net> <87edupbdp0.fsf@posteo.net> <875yg1bc02.fsf@posteo.net> <878rkxgpms.fsf@posteo.net> <87sfiyk3a2.fsf_-_@posteo.net> <87mt948pmo.fsf@posteo.net> <87fsevyxnt.fsf@posteo.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36929"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Stefan Monnier , Richard Stallman , emacs-devel@gnu.org To: Philip Kaludercic Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Nov 08 00:22: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 1osBRS-0009Qn-6o for ged-emacs-devel@m.gmane-mx.org; Tue, 08 Nov 2022 00:22:10 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1osBNj-0001c4-7R; Mon, 07 Nov 2022 18:18:19 -0500 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 1osBMx-0001Pk-2N for emacs-devel@gnu.org; Mon, 07 Nov 2022 18:17:33 -0500 Original-Received: from mr85p00im-ztdg06021201.me.com ([17.58.23.189]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1osBMv-0002wQ-4F for emacs-devel@gnu.org; Mon, 07 Nov 2022 18:17:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=me.com; s=1a1hai; t=1667863047; bh=0cvmatthjQVQrl6HyFlH4uPuvaBrfrOa2IThRKpQc54=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=VhQDVvjhGM8GXKgg27iOArmkC3c5j56JRHMKRkaaZYHtqma9+cBnSz9WlfLUQMCwg yq3nlxL7Tnq48lJkXX+WryzolawBsxxztsW7wCYDlVhaA5IbrXoRxeY7wZbgbFMQ0n 4Z+5pZfAYHJNzHoW5J3xhlpgGOPs7IXPEutqk2Fj6SiimzdpcHcp8VhqpuSPa+JngM b+2/4R8ohmUJhIMtttk20j/mKzCReSKElt57L7kYOsJyhb0jE0ElPiuA+wN6valk/8 A8hSitxTWLtfIydB02k5T8HCAOllerMzK/a7HPVbyMdnvd0eyNylae+H/SaQUUZRrO /MXFZAQWvfwhA== Original-Received: from Rudolfs-MacBook-Air.local (mr38p00im-dlb-asmtp-mailmevip.me.com [17.57.152.18]) by mr85p00im-ztdg06021201.me.com (Postfix) with ESMTPSA id 25A7D32058B; Mon, 7 Nov 2022 23:17:25 +0000 (UTC) In-Reply-To: <87fsevyxnt.fsf@posteo.net> X-Proofpoint-GUID: mA1S_Y3-_D1QGSu2UjkxEjF-oIHk8ejz X-Proofpoint-ORIG-GUID: mA1S_Y3-_D1QGSu2UjkxEjF-oIHk8ejz X-Proofpoint-Virus-Version: =?UTF-8?Q?vendor=3Dfsecure_engine=3D1.1.170-22c6f66c430a71ce266a39bfe25bc?= =?UTF-8?Q?2903e8d5c8f:6.0.425,18.0.816,17.0.605.474.0000000_definitions?= =?UTF-8?Q?=3D2022-01-18=5F01:2022-01-14=5F01,2022-01-18=5F01,2020-01-23?= =?UTF-8?Q?=5F02_signatures=3D0?= X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=765 adultscore=0 mlxscore=0 phishscore=0 malwarescore=0 suspectscore=0 spamscore=0 clxscore=1015 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2211070174 Received-SPF: pass client-ip=17.58.23.189; envelope-from=salutis@me.com; helo=mr85p00im-ztdg06021201.me.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=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.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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:299308 Archived-At: Philip Kaludercic writes: > The thing is the user options aren't strictly variables. The usually > are, but they are explicitly meant to operate on a higher abstraction > level, sort of even in a separate name space. Gotcha! > But of course, I understand that not everyone feels comfortable with > this. So while I insist that package-vc-selected-packages ought to be > a user option, I have also made `package-vc-install-selected-packages' > autoloaded (I have yet to push all the commits) and invocable as a > regular function Perfect. Win-win. Thank you so much! (I hope you also marked the function as interactive. When playing with VC package, I have half of the history in M-x and the other half in M-:. Switching between the two all the time confuses me to no end.) >> I like the clear distinction between `foo' and `(foo)' in Lisp. I even >> like the `*' in C that clearly says "a pointer". Brilliant ideas lost >> to the history in most modern languages. But I digress! > > Maybe I am missing your point, but why shouldn't `foo' and (foo) be > different? The only context where I can think of `foo' and (foo) > being treated the same is in some APL-like language ... I apologize for the digression! :) To quickly explain, consider Swift code: class Things { // stored property var count =3D 0 // set during init } and class Things { // computed property var count: Int { // arbitrary code } } One calls `things.count' in both cases, with no parentheses, so one has no idea whether `count' is a *stored* property (true variable) with O(1) access or a *computed* property that runs in say in O(n). Accidentally quadratic code in no time! Plus, one also know nothing about side effects. (Further, one can also define `willSet' and `didSet' on *stored* properties, makes things even worse.) In C, one sees `count' or `*count' or `count()' and everything is clear on the first sight. Similarly, in Scheme, one sees `count' or `(count)'. > I see, this is an interesting approach. But just to make sure, can > you confirm that package-vc doesn't break any of the assumptions you > make that are necessary for your configuration to work as intended? Suddenly ... so many issues! :) First, Emacs failed with "circular loads" errors (or something like that). I had to comment out `(package-vc-ensure-packages)' here to work around the problem: (defcustom package-vc-selected-packages '() [...] :set (lambda (sym val) (custom-set-default sym val) (package-vc-ensure-packages)) I then tried to change all packages to VC at once and got: user-error: Package has no VC data Which one, I wondered. Anyway, I reverted the config and decided to proceed in smaller steps. As a side note, while I investigated various issues, I found myself wishing for a hyperlink to `package-vc-archive-spec-alist' from the help page for `package-vc-selected-packages'. (The help page mentions does not use a hyperlink.) Finally, I got to MELPA packages and got stuck altoegether. When I (1) require `package-vc', and then (2) run `package-refresh-contents', I get Debugger entered--Lisp error: (file-error "https://melpa.org/packages/elpa-packages.eld" "Not found") signal(file-error ("https://melpa.org/packages/elpa-packages.eld" "Not found")) package--with-response-buffer-1("https://melpa.org/packages/" #f(compiled-function () #) :file "elpa-packages.eld" :async nil :error-function #f(compiled-function () #) :noerror nil) package--download-one-archive(("melpa" . "https://melpa.org/packages/") "elpa-packages.eld" nil) (condition-case nil (package--download-one-archive archive "elpa-packages.eld" async) ((debug error) (message "Failed to download `%s' archive." (car archive)))) (let ((archive (car tail))) (condition-case nil (package--download-one-archive archive "elpa-packages.eld" async) ((debug error) (message "Failed to download `%s' archive." (car archive)))) (setq tail (cdr tail))) (while tail (let ((archive (car tail))) (condition-case nil (package--download-one-archive archive "elpa-packages.eld" async) ((debug error) (message "Failed to download `%s' archive." (car archive)))) (setq tail (cdr tail)))) (let ((tail package-archives)) (while tail (let ((archive (car tail))) (condition-case nil (package--download-one-archive archive "elpa-packages.eld" async) ((debug error) (message "Failed to download `%s' archive." (car archive)))) (setq tail (cdr tail))))) package-vc--download-and-read-archives(nil) run-hook-with-args(package-vc--download-and-read-archives nil) package-refresh-contents() funcall-interactively(package-refresh-contents) call-interactively(package-refresh-contents record nil) command-execute(package-refresh-contents record) execute-extended-command(nil "package-refresh-contents" nil) funcall-interactively(execute-extended-command nil "package-refresh-contents" nil) call-interactively(execute-extended-command nil nil) command-execute(execute-extended-command) Rudy -- "'Contrariwise,' continued Tweedledee, 'if it was so, it might be; and if it were so, it would be; but as it isn't, it ain't. That's logic.'" -- Lewis Carroll, Through the Looking Glass, 1871/1872 Rudolf Adamkovi=C4=8D [he/him] Studenohorsk=C3=A1 25 84103 Bratislava Slovakia