From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Philip Kaludercic Newsgroups: gmane.emacs.devel Subject: Re: Proposal for 'package-isolate' command Date: Sun, 20 Aug 2023 07:51:24 +0000 Message-ID: <87r0nyup6r.fsf@posteo.net> References: <87r0oftgye.fsf@posteo.net> <87350vt1wz.fsf@posteo.net> <871qgen1ln.fsf@posteo.net> <87edke4mou.fsf@posteo.net> <87wmy6kuan.fsf@posteo.net> <87wmy6w070.fsf@posteo.net> <87zg2sjleg.fsf@posteo.net> <87pm3nlbm7.fsf@posteo.net> <87zg2ri9g9.fsf@posteo.net> <87bkf7b7ls.fsf@posteo.net> <87v8dfi6zy.fsf@posteo.net> <877cpvb361.fsf@posteo.net> <87pm3mj0ot.fsf_-_@posteo.net> <87v8de9qel.fsf@posteo.net> <87pm3mgj8d.fsf@posteo.net> <877cpq9p7s.fsf@posteo.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24870"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Thierry Volpiatto Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Sep 13 13:51:04 2023 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 1qgOOd-0006E4-3w for ged-emacs-devel@m.gmane-mx.org; Wed, 13 Sep 2023 13:51:03 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qgONo-000442-Jk; Wed, 13 Sep 2023 07:50:14 -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 1qgONb-00040v-AN for emacs-devel@gnu.org; Wed, 13 Sep 2023 07:49:59 -0400 Original-Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgONV-0003qS-5t for emacs-devel@gnu.org; Wed, 13 Sep 2023 07:49:56 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 593F1240105 for ; Wed, 13 Sep 2023 13:49:49 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1694605789; bh=dULcJDlVF7eIqacsR+WRTxUb13QRYe/2evvxxOBrlYE=; h=From:To:Cc:Subject:Date:Message-ID:Autocrypt:MIME-Version:From; b=cZWk1m4ZZ5U7aO0OZVWtB15dVNamNm+eq9gAjyetUDpzTMeET3IsvvpvIbRU+vHgI uUXK82C6B8XmGCw7ciWKAw+XhwQMA+dxcNqH4FsKAKm02LuVZwRn8io2ZFfVCzF4zJ 1epKnmnnztjHnMHKCKOtuXcWbaZp4qymbJGTgylbwVaznsZCHF1h/X9k+XTuhuD6Y0 t2772Agt7XQha/EWwtsC8KMu2yReszZ68agtIBoIsyU/jH6u3/E5cC1EcNf6VAvRwp wPzdyCrDTV1M3MJqAfLEemqaHuV7Ym8/k+RvlufkbhqHZk8IqpWSoC6RAL/knlIBFz IZnmJhgfbhyXA== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4RlzJr6lKwz6txQ; Wed, 13 Sep 2023 13:49:48 +0200 (CEST) In-Reply-To: <877cpq9p7s.fsf@posteo.net> (Thierry Volpiatto's message of "Sun, 20 Aug 2023 06:40:16 +0000") Autocrypt: addr=philipk@posteo.net; keydata= mDMEZBBQQhYJKwYBBAHaRw8BAQdAHJuofBrfqFh12uQu0Yi7mrl525F28eTmwUDflFNmdui0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiWBBMWCAA+FiEEDg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwMFCQHhM4AFCwkI BwIGFQoJCAsCBBYCAwECHgECF4AACgkQ8xYDWXahwulikAEA77hloUiSrXgFkUVJhlKBpLCHUjA0 mWZ9j9w5d08+jVwBAK6c4iGP7j+/PhbkxaEKa4V3MzIl7zJkcNNjHCXmvFcEuDgEZBBQQhIKKwYB BAGXVQEFAQEHQI5NLiLRjZy3OfSt1dhCmFyn+fN/QKELUYQetiaoe+MMAwEIB4h+BBgWCAAmFiEE Dg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwwFCQHhM4AACgkQ8xYDWXahwukm+wEA8cml4JpK NeAu65rg+auKrPOP6TP/4YWRCTIvuYDm0joBALw98AMz7/qMHvSCeU/hw9PL6u6R2EScxtpKnWof z4oM Received-SPF: pass client-ip=185.67.36.66; envelope-from=philipk@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -9 X-Spam_score: -1.0 X-Spam_bar: - X-Spam_report: (-1.0 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_96_XX=3.405, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=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:310541 Archived-At: Thierry Volpiatto writes: > Hello Philip, > > Philip Kaludercic writes: > >> How about this patch, that will use a temporary directory when >> `package-isolate' is invoked with a prefix argument (not sure what the >> default should be, I guess reusing `user-emacs-directory' is less >> surprising): >> >> [2. text/x-diff; >> 0001-Add-command-to-start-Emacs-with-specific-packages.patch]... > > I was reading the code of the new version of `package--dependencies` and > had some questions: > > (named-let more ((pkg-desc desc)) > (let (deps) > (dolist (req (package-desc-reqs pkg-desc)) > (setq deps (nconc > (catch 'found > (dolist (p (apply #'append (mapcar #'cdr (package--alist)))) > (when (and (string= (car req) (package-desc-name p)) > (version-list-<= (cadr req) (package-desc-version p))) > (throw 'found (more p))))) > deps))) > (delete-dups (cons pkg-desc deps)))) > > > Why are you using `string=` to compare (car req) > with (package-desc-name p)? As opposed to what alternative? The advantage of `string=' compared to something like equal is that 1. that I do not have to care if a package name is a symbol or a string 2. that all other values would trigger an error. > Isn't (apply #'append (mapcar #'cdr (package--alist))) same as > (mapcar #'cadr (package--alist))? Iff every package in (package--alist) only had one package descriptor, which is not the case (seq-filter (lambda (e) (length> e 2)) (package--alist)) ;=> non-nil Also, see (seq-set-equal-p (apply #'append (mapcar #'cdr (package--alist))) (mapcar #'cadr (package--alist))) ;=> nil > I am not a fan of named-let but isn't using deps as a second arg of > 'more' more in the named-let spirit? (fully not tested) > > (named-let more ((pkg-desc desc) > (deps nil)) > (dolist (req (package-desc-reqs pkg-desc)) > (setq deps (nconc > (catch 'found > (dolist (p (apply #'append (mapcar #'cdr (package--alist)))) > (when (and (string= (car req) (package-desc-name p)) > (version-list-<= (cadr req) (package-desc-version p))) > (throw 'found (more p deps))))) > deps))) > (delete-dups (cons pkg-desc deps))) The only difference I believe would occur in this case, is that we would always maintain "the same" list of dependencies, throughout traversing all package dependencies. In the end that shouldn't change much, and it is only more work for `delete-dups'. > Thanks.