From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 05 03:31:14 2022 Received: (at submit) by debbugs.gnu.org; 5 Aug 2022 07:31:14 +0000 Received: from localhost ([127.0.0.1]:55999 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oJrnd-0004Sg-Qd for submit@debbugs.gnu.org; Fri, 05 Aug 2022 03:31:14 -0400 Received: from lists.gnu.org ([209.51.188.17]:51294) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oJrnZ-0004SW-U4 for submit@debbugs.gnu.org; Fri, 05 Aug 2022 03:31:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57204) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJrnZ-0001Pc-1Z for bug-gnu-emacs@gnu.org; Fri, 05 Aug 2022 03:31:09 -0400 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]:37861) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oJrnW-00068y-OJ for bug-gnu-emacs@gnu.org; Fri, 05 Aug 2022 03:31:08 -0400 Received: by mail-ej1-x62c.google.com with SMTP id kb8so3549760ejc.4 for ; Fri, 05 Aug 2022 00:31:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:user-agent:message-id:date:subject:cc:to:from:from:to :cc; bh=mze4LXLfUjCp5B6lnhDW7T6B2lRMATKKh5tPbQawbhE=; b=jaV8vMtdLIa5nLW1ziLLu7jTjsEzvJpOn7GtYvNQQyPfF1gQYZa+6cd00h50EsMxmV FuSr2WbYjcv6uvzrUTuQH+hrPmnrUrTSzxPPVMfAvKWmPGN0TevgJDYTB3esOA9XLN6W p0wdlP2LeqIi10r8Vwe1F7tGKtG4VwcIiDVWLwyLxuHVQ7n+NUwEoLFFfh5Eh1XMOFtn abSUbsVTTI4oCR3lGWA6zDGCW0o4iH0RtZNAPlxG4pt3DdQ9nXtgbUPE1AVAw9Y4TeFy R1fDn90Wl95RzToqofbGw4m0cHokwCQLLG4Tlvf/DApWmL0kB74lKq9CRSJfKirsZay6 +VNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc; bh=mze4LXLfUjCp5B6lnhDW7T6B2lRMATKKh5tPbQawbhE=; b=m1OZc5vN7xP20jfMxDt+oqjoU/G4bmeL0KsJvGKjf6yBq9H5epaRN7KYZZkz8D3UcE CbuG0WvpKrUBk0mgJ8O1TSuLFAR73I3pND9XnS6OV7uTneGPHzr5rC0Pi/cz0Ms2YaUY LXuS0HusvV2yba37omZ1fcD51Ni6dU0w3NGGz0Z09eXrHGWZPr9uvf9g8MzBRVd7rxai qLCgw4PC8+xyaKu8ApciKllJh44LhL4tGeheu7TvvzkSG6xccoQcJAoKKXZfyGB01/Pd UKmKgZjiWef6BgW3Wgh1CDwy0ilzvkT14DclPlFad/k5gc/Z/pdDL0YJ0/gAMhK9pD6t cazw== X-Gm-Message-State: ACgBeo3rgocyO1JXHglENxDCAdnFo1T4xjvVXTk5KU2YfU68xO+lSek1 dixiTO9WDCmcmVZAoP9x1EY= X-Google-Smtp-Source: AA6agR5qpLAPoKJhztfiX4WNCKyluM+LO/I6uHqtE7WWDO9B/vmpNh4WiJ14V+OrUwCGm8DYok7Yxw== X-Received: by 2002:a17:907:1c1c:b0:730:9473:7a0e with SMTP id nc28-20020a1709071c1c00b0073094737a0emr4397493ejc.492.1659684664560; Fri, 05 Aug 2022 00:31:04 -0700 (PDT) Received: from ars3 ([2a02:8109:8ac0:56d0::a827]) by smtp.gmail.com with ESMTPSA id l1-20020a1709060cc100b0072ee9790894sm1243357ejh.197.2022.08.05.00.31.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Aug 2022 00:31:03 -0700 (PDT) From: Augusto Stoffel To: bug-gnu-emacs@gnu.org Subject: [PATCH] Analogue of project-shell for Python Date: Fri, 05 Aug 2022 09:31:02 +0200 Message-ID: <874jyr87ux.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2a00:1450:4864:20::62c; envelope-from=arstoffel@gmail.com; helo=mail-ej1-x62c.google.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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit Cc: Philip Kaludercic , Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --=-=-= Content-Type: text/plain The Python shell already allows a shell to be "dedicated" to a buffer. This patch adds the option to create a shell dedicated to a project, as well as the option to make all Python shells dedicated by default. Stefan: you mentioned python.el could use project.el without a hard dependency, so it remains compatible with old Emacsen. Is this a good approach? (Also: the added seq dependency is kinda superfluous now, but it's nice to have it available for future developments as well.) Philip: I'm working around the possible absence of 'read-multiple-choice' here. Not sure it's a popular/useful enough function to include in compat, but I thought I would bring this up. --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-Python-shells-dedicated-to-a-project.patch Content-Transfer-Encoding: quoted-printable >From 7174b34701cb201c088f0fce6a57aee9a75eef20 Mon Sep 17 00:00:00 2001 From: Augusto Stoffel Date: Thu, 4 Aug 2022 12:08:58 +0200 Subject: [PATCH] Python shells dedicated to a project These shells run in the project root directory and are shared among all project buffers. * lisp/progmodes/python.el: Require 'seq' and (optionally) 'project' libraries. (python-shell-dedicated): New user option (python-shell-get-process-name): Adapt to project-dedicated shells. (run-python): Offer possibility to create a project-dedicated shell, or use 'python-shell-dedicated' as the default behavior. (python-shell-get-buffer): Adapt to project-dedicated shells. --- etc/NEWS | 11 ++++++ lisp/progmodes/python.el | 79 ++++++++++++++++++++++++++++------------ 2 files changed, 66 insertions(+), 24 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 963aa22c68..fcbf7deba7 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -2055,6 +2055,17 @@ the Galeon web browser was released in September, 20= 08. Note that this historical web browser is different from Mozilla Firefox; it is its predecessor. =20 +** Python Mode ++++ +*** Project shells and a new user option 'python-shell-dedicated' +When called with a prefix argument, 'run-python' now offers the choice +of creating a shell dedicated to the current project. This shell runs +in the project root directory and is shared among all project buffers. + +Without a prefix argument, the kind of shell (buffer-dedicated, +project-dedicated or global) is specified by the new +'python-shell-dedicated' variable. + ** Ruby Mode =20 --- diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index b8fc7d4c54..bbdd2a9502 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -5,7 +5,7 @@ ;; Author: Fabi=C3=A1n E. Gallina ;; URL: https://github.com/fgallina/python.el ;; Version: 0.28 -;; Package-Requires: ((emacs "24.4") (cl-lib "1.0")) +;; Package-Requires: ((emacs "24.4") (cl-lib "1.0") (seq "2.23")) ;; Maintainer: emacs-devel@gnu.org ;; Created: Jul 2010 ;; Keywords: languages @@ -245,6 +245,8 @@ (require 'ansi-color) (require 'cl-lib) (require 'comint) +(require 'project nil 'noerror) +(require 'seq) (eval-when-compile (require 'subr-x)) ;For `string-empty-p'. =20 ;; Avoid compiler warnings @@ -2218,6 +2220,16 @@ python-shell-compilation-regexp-alist "`compilation-error-regexp-alist' for inferior Python." :type '(alist regexp)) =20 +(defcustom python-shell-dedicated nil + "Whether to make Python shells dedicated by default. +This option influences `run-python' when called without a prefix +argument. If `buffer' or `project', create a Python shell +dedicated to the current buffer or its project (if one is found)." + :version "29.1" + :type '(choice (const :tag "To buffer" buffer) + (const :tag "To project" project) + (const :tag "Not dedicated" nil))) + (defvar python-shell-output-filter-in-progress nil) (defvar python-shell-output-filter-buffer nil) =20 @@ -2580,12 +2592,19 @@ python-shell-prompt-set-calculated-regexps =20 (defun python-shell-get-process-name (dedicated) "Calculate the appropriate process name for inferior Python process. -If DEDICATED is t returns a string with the form -`python-shell-buffer-name'[`buffer-name'] else returns the value -of `python-shell-buffer-name'." - (if dedicated - (format "%s[%s]" python-shell-buffer-name (buffer-name)) - python-shell-buffer-name)) +If DEDICATED is nil, this is simply `python-shell-buffer-name'. +If DEDICATED is `buffer' or `project', append the current buffer +name respectively the current project name." + (pcase dedicated + ('nil python-shell-buffer-name) + ('project + (if-let ((proj (and (featurep 'project) + (project-current)))) + (format "%s[%s]" python-shell-buffer-name (file-name-nondirectory + (directory-file-name + (project-root proj)))) + python-shell-buffer-name)) + (_ (format "%s[%s]" python-shell-buffer-name (buffer-name))))) =20 (defun python-shell-internal-get-process-name () "Calculate the appropriate process name for Internal Python process. @@ -3043,8 +3062,8 @@ run-python Argument CMD defaults to `python-shell-calculate-command' return value. When called interactively with `prefix-arg', it allows the user to edit such value and choose whether the interpreter -should be DEDICATED for the current buffer. When numeric prefix -arg is other than 0 or 4 do not SHOW. +should be DEDICATED to the current buffer or project. When +numeric prefix arg is other than 0 or 4 do not SHOW. =20 For a given buffer and same values of DEDICATED, if a process is already running for it, it will do nothing. This means that if @@ -3058,13 +3077,27 @@ run-python (if current-prefix-arg (list (read-shell-command "Run Python: " (python-shell-calculate-command= )) - (y-or-n-p "Make dedicated process? ") + (if (not (fboundp 'read-multiple-choice)) + (y-or-n-p "Make dedicated process? ") + (alist-get (car (read-multiple-choice "Make dedicated process?" + '((?b "to buffer") + (?p "to project") + (?n "no")))) + '((?b . buffer) (?p . project)))) (=3D (prefix-numeric-value current-prefix-arg) 4)) - (list (python-shell-calculate-command) nil t))) - (let ((buffer - (python-shell-make-comint - (or cmd (python-shell-calculate-command)) - (python-shell-get-process-name dedicated) show))) + (list (python-shell-calculate-command) + python-shell-dedicated + t))) + (let* ((project (and (eq 'project dedicated) + (featurep 'project) + (project-current t))) + (default-directory (if project + (project-root project) + default-directory)) + (buffer (python-shell-make-comint + (or cmd (python-shell-calculate-command)) + (python-shell-get-process-name dedicated) + show))) (get-buffer-process buffer))) =20 (defun run-python-internal () @@ -3094,15 +3127,13 @@ python-shell-get-buffer If current buffer is in `inferior-python-mode', return it." (if (derived-mode-p 'inferior-python-mode) (current-buffer) - (let* ((dedicated-proc-name (python-shell-get-process-name t)) - (dedicated-proc-buffer-name (format "*%s*" dedicated-proc-name)) - (global-proc-name (python-shell-get-process-name nil)) - (global-proc-buffer-name (format "*%s*" global-proc-name)) - (dedicated-running (comint-check-proc dedicated-proc-buffer-nam= e)) - (global-running (comint-check-proc global-proc-buffer-name))) - ;; Always prefer dedicated - (or (and dedicated-running dedicated-proc-buffer-name) - (and global-running global-proc-buffer-name))))) + (seq-some + (lambda (dedicated) + (let* ((proc-name (python-shell-get-process-name dedicated)) + (buffer-name (format "*%s*" proc-name))) + (when (comint-check-proc buffer-name) + buffer-name))) + '(buffer project nil)))) =20 (defun python-shell-get-process () "Return inferior Python process for current buffer." --=20 2.37.1 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 05 05:22:29 2022 Received: (at submit) by debbugs.gnu.org; 5 Aug 2022 09:22:29 +0000 Received: from localhost ([127.0.0.1]:56181 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oJtXI-0007QR-Nx for submit@debbugs.gnu.org; Fri, 05 Aug 2022 05:22:28 -0400 Received: from lists.gnu.org ([209.51.188.17]:59452) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oJtXH-0007QJ-AU for submit@debbugs.gnu.org; Fri, 05 Aug 2022 05:22:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46550) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJtXG-0003ph-MV for bug-gnu-emacs@gnu.org; Fri, 05 Aug 2022 05:22:26 -0400 Received: from mout02.posteo.de ([185.67.36.66]:41343) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJtXF-00070H-3C for bug-gnu-emacs@gnu.org; Fri, 05 Aug 2022 05:22:26 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 30517240101 for ; Fri, 5 Aug 2022 11:22:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1659691343; bh=6GvmL3Jq+rzsuH9PBfZUNmRQicYB4/2BhmttBtiSBUA=; h=From:To:Cc:Subject:Autocrypt:Date:From; b=Eg+xH4sHCyyF7PKERSURMwMRE/aVlU7376X6MMac0LrPFAlGpIRuSKQDNAVVLgHDH R69YRM3exnz4pBO6DuaCXNU7tAPyW94PBroehTcbuXmfmK3tdxoICVBk6Xs5HBhOG8 YeGoaG80qo4zQMnFvUwCVWgwOF0HbhTensBGbVqkU8USoTWARg+bO2OSf6siS+6rsE 4fEATwHA1hvWRcXAets5WJ50JSx+TkcUSfOlVNXm11A4E5I8joORiLXTkGYl5TlO57 oLqqIeYQtR9BsOAjEoET1ogX7kbn7g7wRRaiZLmqJoNLerSXqiA0h0OczmnDmCGtJ4 NzIWH+Nm/jxyg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4Lzg9B3W0jz9rxh; Fri, 5 Aug 2022 11:22:22 +0200 (CEST) From: Philip Kaludercic To: Augusto Stoffel Subject: Re: [PATCH] Analogue of project-shell for Python In-Reply-To: <874jyr87ux.fsf@gmail.com> (Augusto Stoffel's message of "Fri, 05 Aug 2022 09:31:02 +0200") References: <874jyr87ux.fsf@gmail.com> Autocrypt: addr=philipk@posteo.net; prefer-encrypt=nopreference; keydata= mDMEYHHqUhYJKwYBBAHaRw8BAQdAp3GdmYJ6tm5McweY6dEvIYIiry+Oz9rU4MH6NHWK0Ee0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiQBBMWCAA4FiEEDM2H44ZoPt9Ms0eHtVrAHPRh1FwFAmBx6lICGwMFCwkIBwIGFQoJ CAsCBBYCAwECHgECF4AACgkQtVrAHPRh1FyTkgEAjlbGPxFchvMbxzAES3r8QLuZgCxeAXunM9gh io0ePtUBALVhh9G6wIoZhl0gUCbQpoN/UJHI08Gm1qDob5zDxnIHuDgEYHHqUhIKKwYBBAGXVQEF AQEHQNcRB+MUimTMqoxxMMUERpOR+Q4b1KgncDZkhrO2ql1tAwEIB4h4BBgWCAAgFiEEDM2H44Zo Pt9Ms0eHtVrAHPRh1FwFAmBx6lICGwwACgkQtVrAHPRh1Fw1JwD/Qo7kvtib8jy7puyWrSv0MeTS g8qIxgoRWJE/KKdkCLEA/jb9b9/g8nnX+UcwHf/4VfKsjExlnND3FrBviXUW6NcB Date: Fri, 05 Aug 2022 09:22:21 +0000 Message-ID: <874jyrjb8y.fsf@posteo.net> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=185.67.36.66; envelope-from=philipk@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit Cc: bug-gnu-emacs@gnu.org, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Augusto Stoffel writes: > Philip: I'm working around the possible absence of > 'read-multiple-choice' here. Not sure it's a popular/useful enough > function to include in compat, but I thought I would bring this up. I have considered it, but the code in rmc.el is about 230 lines of code, that I didn't want to copy verbatim. If you think it is worthwhile, I can try to add `read-multiple-choice' in some form or another. From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 05 05:53:06 2022 Received: (at submit) by debbugs.gnu.org; 5 Aug 2022 09:53:06 +0000 Received: from localhost ([127.0.0.1]:56267 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oJu0w-0008He-7K for submit@debbugs.gnu.org; Fri, 05 Aug 2022 05:53:06 -0400 Received: from lists.gnu.org ([209.51.188.17]:40686) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oJu0r-0008HC-AU for submit@debbugs.gnu.org; Fri, 05 Aug 2022 05:53:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52254) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJu0r-0006Rw-3U for bug-gnu-emacs@gnu.org; Fri, 05 Aug 2022 05:53:01 -0400 Received: from mail-ej1-x633.google.com ([2a00:1450:4864:20::633]:43665) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oJu0o-0003iT-MT for bug-gnu-emacs@gnu.org; Fri, 05 Aug 2022 05:53:00 -0400 Received: by mail-ej1-x633.google.com with SMTP id gb36so4049262ejc.10 for ; Fri, 05 Aug 2022 02:52:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc; bh=8onAGs6OL9ei0EAEBFSEa/E6sFaqDbtx1n4f8BcHxbo=; b=lQjIJt4liPGXraMsCm3sm968SnKM6MV8Q9E+SWm2+cj5BxWUp7EOUpJy/IH7aMgW/7 3oOWjbTkhGQK7mc2VBJi99e+xzGtNSNnukBkT6r7LrE9rlsUf1Zw2rw/o+dqBJOv8dr3 wcem2f6ObMAJZ4OkW8DQSM2XHHzSwvcPYORvclKvdT2NrQbiUWckaILcrluWlB9K+BNG 0cHPYwubXVspg19U0cAbCkKMMOgNq2aRp7TBUPfOdPu8CaYXyyOlCROdID4O20btmEdf iIJVsD68H4HIO/h16HT6St6a4Wqoc6QX/IBN988h5F6s/XF6+8CVSO7KX7RrhpWYECFg p33w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc; bh=8onAGs6OL9ei0EAEBFSEa/E6sFaqDbtx1n4f8BcHxbo=; b=lfRhVLk0pOxJYlWAOEV/XMCvc3ZFqTRqo32DwgzRZ9QaP0vwWe+G1dNAGsLK+TDxP3 IHyYY2UzRZQYLeIvWjvjWQJeniyIy9QhEbzBX9ePs8WtUOcL0ItVXaqhcW+9mktt4XYB rHw7kS0v9DshfBdVOeAk6EKGm/Pyf0QTwReW6yzwZUfhhtCpuiUhfKy4o3iR2YRtO3Ce Ifc0hdA1ji/j7Ey62t5wcvVYBx6kxqyeYX9OKpM7A8eYV3BMpFdbWWuBs8X9mSUIDDyk gyyqCFhMKqqP/bHVNl8ygMwth+xTrC+Sz+o0YQELEV/jhaUM05hKDbHTAlbkGVtXb3LP Dw5Q== X-Gm-Message-State: ACgBeo0jsE3ALEnWGuHljFAhb8tJhbA4mesCsoNSm74iplOrZGML16wB AjfuQSWmscqRa73A5SmWLnU= X-Google-Smtp-Source: AA6agR5pfptt4Pw0SGqHosMNhPYxGlN9hZLy9gn/G/oG2CG7QAN96w4GAR9//Tn2MZtPmeQXu0MtZg== X-Received: by 2002:a17:907:2854:b0:72b:7daf:cc0d with SMTP id el20-20020a170907285400b0072b7dafcc0dmr4779827ejc.524.1659693176985; Fri, 05 Aug 2022 02:52:56 -0700 (PDT) Received: from ars3 ([2a02:8109:8ac0:56d0::a827]) by smtp.gmail.com with ESMTPSA id g12-20020a170906348c00b00711edab7622sm1367771ejb.40.2022.08.05.02.52.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Aug 2022 02:52:56 -0700 (PDT) From: Augusto Stoffel To: Philip Kaludercic Subject: Re: [PATCH] Analogue of project-shell for Python In-Reply-To: <874jyrjb8y.fsf@posteo.net> (Philip Kaludercic's message of "Fri, 05 Aug 2022 09:22:21 +0000") References: <874jyr87ux.fsf@gmail.com> <874jyrjb8y.fsf@posteo.net> Date: Fri, 05 Aug 2022 11:52:55 +0200 Message-ID: <87mtcj6mq0.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2a00:1450:4864:20::633; envelope-from=arstoffel@gmail.com; helo=mail-ej1-x633.google.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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit Cc: bug-gnu-emacs@gnu.org, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) On Fri, 5 Aug 2022 at 09:22, Philip Kaludercic wrote: > Augusto Stoffel writes: > >> Philip: I'm working around the possible absence of >> 'read-multiple-choice' here. Not sure it's a popular/useful enough >> function to include in compat, but I thought I would bring this up. > > I have considered it, but the code in rmc.el is about 230 lines of code, > that I didn't want to copy verbatim. If you think it is worthwhile, I > can try to add `read-multiple-choice' in some form or another. A bare-bones version that ignores the optional arguments could be much smaller, but I think it's at best borderline worth implementing it. From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 05 07:00:42 2022 Received: (at submit) by debbugs.gnu.org; 5 Aug 2022 11:00:42 +0000 Received: from localhost ([127.0.0.1]:56364 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oJv4M-0001pT-51 for submit@debbugs.gnu.org; Fri, 05 Aug 2022 07:00:42 -0400 Received: from lists.gnu.org ([209.51.188.17]:47962) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oJv4I-0001pK-VN for submit@debbugs.gnu.org; Fri, 05 Aug 2022 07:00:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33946) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJv4F-0007hg-P2 for bug-gnu-emacs@gnu.org; Fri, 05 Aug 2022 07:00:38 -0400 Received: from mout01.posteo.de ([185.67.36.65]:59051) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJv4D-0006Tw-E8 for bug-gnu-emacs@gnu.org; Fri, 05 Aug 2022 07:00:35 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id EF19C240026 for ; Fri, 5 Aug 2022 13:00:30 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1659697231; bh=aON8vhBDDw3TFtM3bldGvoC1cJzuimBccLVc+JH2SeY=; h=From:To:Cc:Subject:Autocrypt:Date:From; b=NbqdRw7z0rhWbLda05PVYZ4dl5nl3Z77RvjjuUPB24GLaiA58cqloqhtOAXd3mifY lKwTgUFaAS3juDnusANjJvYjgNynvsK9t2UaUDi99hrl2qq9q5iaMI5K9Q/N76qyPa j2ThtTajW/nAOFBaj3krlG/DKbnrOfAaENuU38LLq+9xrdnEHs54QHkF/YaCOegV/d I1KKmpZ6NqqMRgYz8Dg54FkDjKqARkOoIHUx1u57ngCR5ROayA5V2wRa1KQTIDCf34 pdc5UCF0DxusrkqPgpzm1olu/ixj5eJr62goD3AX769uTTqYO2oBzysfwrz42pxcB3 c+9K1DV2CRW5Q== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4LzjLP2v4Mz9rxM; Fri, 5 Aug 2022 13:00:29 +0200 (CEST) From: Philip Kaludercic To: Augusto Stoffel Subject: Re: [PATCH] Analogue of project-shell for Python In-Reply-To: <87mtcj6mq0.fsf@gmail.com> (Augusto Stoffel's message of "Fri, 05 Aug 2022 11:52:55 +0200") References: <874jyr87ux.fsf@gmail.com> <874jyrjb8y.fsf@posteo.net> <87mtcj6mq0.fsf@gmail.com> Autocrypt: addr=philipk@posteo.net; prefer-encrypt=nopreference; keydata= mDMEYHHqUhYJKwYBBAHaRw8BAQdAp3GdmYJ6tm5McweY6dEvIYIiry+Oz9rU4MH6NHWK0Ee0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiQBBMWCAA4FiEEDM2H44ZoPt9Ms0eHtVrAHPRh1FwFAmBx6lICGwMFCwkIBwIGFQoJ CAsCBBYCAwECHgECF4AACgkQtVrAHPRh1FyTkgEAjlbGPxFchvMbxzAES3r8QLuZgCxeAXunM9gh io0ePtUBALVhh9G6wIoZhl0gUCbQpoN/UJHI08Gm1qDob5zDxnIHuDgEYHHqUhIKKwYBBAGXVQEF AQEHQNcRB+MUimTMqoxxMMUERpOR+Q4b1KgncDZkhrO2ql1tAwEIB4h4BBgWCAAgFiEEDM2H44Zo Pt9Ms0eHtVrAHPRh1FwFAmBx6lICGwwACgkQtVrAHPRh1Fw1JwD/Qo7kvtib8jy7puyWrSv0MeTS g8qIxgoRWJE/KKdkCLEA/jb9b9/g8nnX+UcwHf/4VfKsjExlnND3FrBviXUW6NcB Date: Fri, 05 Aug 2022 11:00:28 +0000 Message-ID: <8735eb3qgj.fsf@posteo.net> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=185.67.36.65; envelope-from=philipk@posteo.net; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit Cc: bug-gnu-emacs@gnu.org, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Augusto Stoffel writes: > On Fri, 5 Aug 2022 at 09:22, Philip Kaludercic wrote: > >> Augusto Stoffel writes: >> >>> Philip: I'm working around the possible absence of >>> 'read-multiple-choice' here. Not sure it's a popular/useful enough >>> function to include in compat, but I thought I would bring this up. >> >> I have considered it, but the code in rmc.el is about 230 lines of code, >> that I didn't want to copy verbatim. If you think it is worthwhile, I >> can try to add `read-multiple-choice' in some form or another. > > A bare-bones version that ignores the optional arguments could be much > smaller, but I think it's at best borderline worth implementing it. Would this be enough: https://git.sr.ht/~pkal/compat/commit/1250ea050737db8ba07c44eaeab7be2e4faefe0a? From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 05 07:43:42 2022 Received: (at submit) by debbugs.gnu.org; 5 Aug 2022 11:43:42 +0000 Received: from localhost ([127.0.0.1]:56398 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oJvjx-00050o-C0 for submit@debbugs.gnu.org; Fri, 05 Aug 2022 07:43:42 -0400 Received: from lists.gnu.org ([209.51.188.17]:35896) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oJvjh-00050T-T2 for submit@debbugs.gnu.org; Fri, 05 Aug 2022 07:43:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41138) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJvjh-0006xv-0l for bug-gnu-emacs@gnu.org; Fri, 05 Aug 2022 07:43:25 -0400 Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]:45660) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oJvjf-0006TB-EZ for bug-gnu-emacs@gnu.org; Fri, 05 Aug 2022 07:43:24 -0400 Received: by mail-ej1-x630.google.com with SMTP id dc19so4497300ejb.12 for ; Fri, 05 Aug 2022 04:43:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc; bh=3Ls6IKhiAFGopnz/xUDArH9cZ9bEyG7x6xPYtPk0peg=; b=N8uL2Vm+ROFaDq766T7k/7IbGN24M0j9bA5DZG7fBRMBXJgGvrSTI41GaE5BdJYpx2 8VTC3N4pMZTRcIXo+uLQT4svORPzxKk/4rLZeyOCImnK7Z9PwsZ/BA/sbPGUQJtfYZb4 WaEp5YzbyAQFDE6x3D3CpdqRkfqir3FzNlnr23Tp1LxubJtOtzvJ0pFK+bTGR/rAgfpX iFUPCxH85EOJdCKjHQD37WV+unqCDkS4QoJd4uT8T/mrscogRzs5KZUa3FpdXHMoqtav dX7goHO6WYvqQAv80dcWg3ERC3d1E9l+sRVIIXOHeSD/qb+K6XqtjypKe8awXzNnii5k KgYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc; bh=3Ls6IKhiAFGopnz/xUDArH9cZ9bEyG7x6xPYtPk0peg=; b=1MtGz4IHKjrQ+S+VbDEV26KU46IyY5vFWi1YgMGpVIZ2xMcsi77zy0t9pJy20nRHol xjlbmITX9RNEqN9DzyNJQwv80v4QueIDQv8qn9pnnAg4CWee6uK+8zxp3z9mmtKLUufy me0sz9mN2l5k7uKjEf+uVFskPYPstLDliZvdNBPt6qUX+Fbi81ihNcfuNv9/D7gUI9fy q1jcClMh8jMb9Uv0IKrJp+3wZVT1ctmlWm1Q7i41csLip42yo2QKvSi01O+siIbxNzZz IDz0XMQjQSR2tAW6YN2J+IaHPQCbdoN5qGXgDMwCQThgjwZegeJjbeWSOPBm+1i99WI6 v8MQ== X-Gm-Message-State: ACgBeo2OjVO/D2A9e5NTxAaj7xUWf7dMi/MsayNm8M0IKfmbYY2reO+X uoj1Pu3hLaRQAYElMwhxKVY= X-Google-Smtp-Source: AA6agR6kiLLz8rMk4EVaxFHdIv0thWV/hRYxE/lGj/fPJM48YJdg6Ut433tzx9v/NEs19guEXIqksQ== X-Received: by 2002:a17:907:6089:b0:72f:56db:ccb6 with SMTP id ht9-20020a170907608900b0072f56dbccb6mr4964434ejc.318.1659699802041; Fri, 05 Aug 2022 04:43:22 -0700 (PDT) Received: from ars3 ([2a02:8109:8ac0:56d0::a827]) by smtp.gmail.com with ESMTPSA id v9-20020aa7cd49000000b0043d2424aeefsm1991554edw.87.2022.08.05.04.43.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Aug 2022 04:43:21 -0700 (PDT) From: Augusto Stoffel To: Philip Kaludercic Subject: Re: [PATCH] Analogue of project-shell for Python In-Reply-To: <8735eb3qgj.fsf@posteo.net> (Philip Kaludercic's message of "Fri, 05 Aug 2022 11:00:28 +0000") References: <874jyr87ux.fsf@gmail.com> <874jyrjb8y.fsf@posteo.net> <87mtcj6mq0.fsf@gmail.com> <8735eb3qgj.fsf@posteo.net> Date: Fri, 05 Aug 2022 13:43:20 +0200 Message-ID: <87czde7w6f.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2a00:1450:4864:20::630; envelope-from=arstoffel@gmail.com; helo=mail-ej1-x630.google.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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit Cc: bug-gnu-emacs@gnu.org, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) On Fri, 5 Aug 2022 at 11:00, Philip Kaludercic wrote: > Would this be enough: https://git.sr.ht/~pkal/compat/commit/1250ea050737db8ba07c44eaeab7be2e4faefe0a? Definitely! From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 08 10:42:42 2022 Received: (at control) by debbugs.gnu.org; 8 Aug 2022 14:42:42 +0000 Received: from localhost ([127.0.0.1]:41465 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oL3xq-00025q-Dh for submit@debbugs.gnu.org; Mon, 08 Aug 2022 10:42:42 -0400 Received: from mail-vs1-f49.google.com ([209.85.217.49]:39930) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oL3xo-00025K-D3 for control@debbugs.gnu.org; Mon, 08 Aug 2022 10:42:40 -0400 Received: by mail-vs1-f49.google.com with SMTP id c3so9024664vsc.6 for ; Mon, 08 Aug 2022 07:42:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:mime-version:date:message-id:subject:to; bh=BnpKYTFuFYyUhPMFx1Nedal3u4b4K+oZQ0+zFCY9x5I=; b=iA1xEniUBbe4MtBx7rsdha1WazEGZo2RGteSj8FfhZhj9dWdeS73dLzDXCp6LiEdMc CldNVcU0Wnrims9iS795FrALj5ZtpbawS8v4SJ0shmKKnNe9wAWrJkWvjgSZYHa4wyrY UAiyvDK2QYZ2Kf/U6Oxvk7vwrQ1TcYWLeBHsXMva5LXMPkhJ7X0aB0J17uV98TE3iuPL mERn5FxKSfS/UKhgsXmf7BxxdqT720dXhuNRjZlloGej0aYsz7P5U4QDTZIT6npFZqrQ MW/swQCwYWXb0G48wAaxaJwRGoOLy05Yo8K+RR0OI3MEyMegn319eVf6CwferBAoQpHc FZqQ== X-Gm-Message-State: ACgBeo30eu0u4sNOt4YnN5C58/Y3z7dLyGteLmdI22dOMDfd0XCoyliT bNedsKo/5k2LmRlm5IJ3MrH6Bw7nlKz/J65ay/qxqPLQ X-Google-Smtp-Source: AA6agR75IriidFbJd/SQHg7qRcj7YXxWOHO5ADV1LSACJDB64fgnXM18TqvFtlR83INRtHb0whONS06F1qe2/Dsa4dw= X-Received: by 2002:a67:efd6:0:b0:388:4860:9bda with SMTP id s22-20020a67efd6000000b0038848609bdamr7991309vsp.46.1659969754958; Mon, 08 Aug 2022 07:42:34 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Mon, 8 Aug 2022 07:42:34 -0700 From: Stefan Kangas MIME-Version: 1.0 Date: Mon, 8 Aug 2022 07:42:34 -0700 Message-ID: Subject: control message for bug #56997 To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) severity 56997 wishlist quit From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 23 12:40:41 2022 Received: (at 56997) by debbugs.gnu.org; 23 Aug 2022 16:40:41 +0000 Received: from localhost ([127.0.0.1]:44894 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQWxE-000663-RT for submit@debbugs.gnu.org; Tue, 23 Aug 2022 12:40:41 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:51266) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQWxD-00065c-5b for 56997@debbugs.gnu.org; Tue, 23 Aug 2022 12:40:39 -0400 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 5FA104416E5; Tue, 23 Aug 2022 12:40:33 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 0B7464416E0; Tue, 23 Aug 2022 12:40:32 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1661272832; bh=cG4czkcFY2HZ+yNqXO5S1VIKVIlCZz0MPD41mNoRLHE=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=hCOYpSMHhEMnDOWj+9XSZWHlRR1YACNI5LX6D3On4BUPkIHxr0SSlkj+Hq/PRPJX9 4DqmiuCNc8QbMe8WATE0xGoqMTlFBmSe4F8hpWmvAbakXQLsWaZkG7qV78eWuj3JN8 62fe2VMnQzjcGvVFjGiJObFbGRxS6qQw4SB6slI3hw0nkul80EZ91LHjMqA8JfIZ6s FgYu1ujwpnmMUmm+KocusHUH/YFrH/G7Wn+18Z0UfA2kpVMHmExoOFwjo6kDjVcl2L ryjcYRB+87sRbcYiDtxcdUbssCL0Tgcnon39q4GSP/HswsKGt+DQDO5r9bQvoUoQ+l DcvvsjBm3YnPA== Received: from alfajor (unknown [45.44.229.252]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id E037F12023C; Tue, 23 Aug 2022 12:40:31 -0400 (EDT) From: Stefan Monnier To: Augusto Stoffel Subject: Re: bug#56997: [PATCH] Analogue of project-shell for Python In-Reply-To: <874jyr87ux.fsf@gmail.com> (Augusto Stoffel's message of "Fri, 05 Aug 2022 09:31:02 +0200") Message-ID: References: <874jyr87ux.fsf@gmail.com> Date: Tue, 23 Aug 2022 12:40:30 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.040 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain T_SCC_BODY_TEXT_LINE -0.01 - X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 56997 Cc: Philip Kaludercic , 56997@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > The Python shell already allows a shell to be "dedicated" to a buffer. > This patch adds the option to create a shell dedicated to a project, as > well as the option to make all Python shells dedicated by default. > > Stefan: you mentioned python.el could use project.el without a hard > dependency, so it remains compatible with old Emacsen. Is this a good > approach? (Also: the added seq dependency is kinda superfluous now, but > it's nice to have it available for future developments as well.) I must admit that I don't really know how important is the ability to install python.el in older Emacsen. I know the maintainers of python.el want it to be possible, but that doesn't preclude depending on `seq.el` and `project.el` since those are also available on GNU ELPA. But it does make it less convenient for the end user, so whether that matters depends on its importance. I suggested a "soft" dependency as a possible choice, without implying it's necessarily better or worse, sorry :-( But, FWIW the patch looks good to me. > -;; Package-Requires: ((emacs "24.4") (cl-lib "1.0")) BTW, Emacs-24.3 already provides cl-lib-1.0 so we can drop `cl-lib` from this line. Stefan From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 24 12:55:44 2022 Received: (at 56997) by debbugs.gnu.org; 24 Aug 2022 16:55:44 +0000 Received: from localhost ([127.0.0.1]:47990 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQtfM-0002lh-2P for submit@debbugs.gnu.org; Wed, 24 Aug 2022 12:55:44 -0400 Received: from mail-ej1-f48.google.com ([209.85.218.48]:35641) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQtfK-0002lS-4L for 56997@debbugs.gnu.org; Wed, 24 Aug 2022 12:55:43 -0400 Received: by mail-ej1-f48.google.com with SMTP id n7so16520997ejh.2 for <56997@debbugs.gnu.org>; Wed, 24 Aug 2022 09:55:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc; bh=FlPAO6qjyDuML5RChuMAxjAoItHpNw/Kn60+VyOFI/w=; b=goISY7ZbtL1CJcCrR30fidZ6X3lBuJJJp1zkuQzjWY1s6h9NzUu6AW5lhdcrw6D83R YSucTi4om3gEjOdeHSyqQdc7xfUB2yoigGBKj7h1TIEV7Pa1+vu7A0f8qYTmi0K5ZiFx 6mmLAmkTs3e2ck2BwxvTueo712T996R30WMXQot8tF4h/OYIztwNSmRd6A0oLR3L5yDz FaKtVn91wmT9zhSQbbdvSrGs0rN6gZDcciXoPeL57XoAZo9sQlUnO+mGy21lXcyr70qU 0C/HXFGPsF6gxolIxDkKMh1N0KWK6MYD/2t7QwnndXgS9KPZhQOzrIMVvSk7238VES9l x85A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc; bh=FlPAO6qjyDuML5RChuMAxjAoItHpNw/Kn60+VyOFI/w=; b=MvQV+6zQ0N80MjSVDlNgFrjDX7SX52gFQpqzm2jkMsXZEC5VfUMw3OTO30e0/dDwur v67uvKnlqK4QTbcQcUHI8DV58ktfoLu1l45X/w+0kOavrY9qzZXBNf/EN0oUgCebb2xz uZxdt0RrX/tcjPrdvb0WzLOlDl40Fo0iFu3z4YhpblUOGgOtew2A5U/1UP49lCMVyExA Ig0QwwA46k3aKTJ9zYC2DBo02l+KREfHZF2OM47hjgt/jeV8+BEDWM3lltHKgYpVHFjt zbCLUFgU6RaO+DbuqOXC2BzMduzzwjfOhPwVBmw/z2hYkshu023I+x04WOUBz4OECci7 m45w== X-Gm-Message-State: ACgBeo22xlSJ8/P3ehuNC4C4oyEHaUsPhtD7O4AHeNc7mKBONKqWw6pG ySkMxEKiCYSv3JJeSntSthU= X-Google-Smtp-Source: AA6agR4RSs3OAC5C4Wk0L52xPyZZgLbUUIpVShbr37EosrStLTPJ63tBxj2Wn9yfRGBE0ppfi7p2Wg== X-Received: by 2002:a17:907:2bce:b0:73d:6ab5:17f4 with SMTP id gv14-20020a1709072bce00b0073d6ab517f4mr3583215ejc.632.1661360136204; Wed, 24 Aug 2022 09:55:36 -0700 (PDT) Received: from ars3 (pd95c95b0.dip0.t-ipconnect.de. [217.92.149.176]) by smtp.gmail.com with ESMTPSA id y3-20020aa7d503000000b00445f3ba4674sm64188edq.63.2022.08.24.09.55.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Aug 2022 09:55:35 -0700 (PDT) From: Augusto Stoffel To: Stefan Monnier Subject: Re: bug#56997: [PATCH] Analogue of project-shell for Python In-Reply-To: (Stefan Monnier's message of "Tue, 23 Aug 2022 12:40:30 -0400") References: <874jyr87ux.fsf@gmail.com> Date: Wed, 24 Aug 2022 18:55:33 +0200 Message-ID: <874jy1eg3e.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 56997 Cc: Philip Kaludercic , 56997@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain On Tue, 23 Aug 2022 at 12:40, Stefan Monnier wrote: > >> The Python shell already allows a shell to be "dedicated" to a buffer. >> This patch adds the option to create a shell dedicated to a project, as >> well as the option to make all Python shells dedicated by default. >> >> Stefan: you mentioned python.el could use project.el without a hard >> dependency, so it remains compatible with old Emacsen. Is this a good >> approach? (Also: the added seq dependency is kinda superfluous now, but >> it's nice to have it available for future developments as well.) > > I must admit that I don't really know how important is the ability to > install python.el in older Emacsen. I know the maintainers of python.el > want it to be possible, but that doesn't preclude depending on `seq.el` > and `project.el` since those are also available on GNU ELPA. But it > does make it less convenient for the end user, so whether that matters > depends on its importance. I see the point of remaining compatible going back one or two versions, not so much with even older versions; it's not like a Python major mode is unavailable in Emacs 24 and 25. > I suggested a "soft" dependency as a possible choice, without implying > it's necessarily better or worse, sorry :-( In any case I don't see any other practical way to proceed... > But, FWIW the patch looks good to me. > >> -;; Package-Requires: ((emacs "24.4") (cl-lib "1.0")) > > BTW, Emacs-24.3 already provides cl-lib-1.0 so we can drop `cl-lib` from > this line. > > > Stefan I've attached a new patch with a requirement on compat, so we can use read-multiple-choice unconditionally (I also removed the unnecessary cl-lib from the Package-Requires header). --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0001-Python-shells-dedicated-to-a-project.patch Content-Transfer-Encoding: quoted-printable >From 8b39ed7a724ae040798834c01ad11d4537fda0ee Mon Sep 17 00:00:00 2001 From: Augusto Stoffel Date: Thu, 4 Aug 2022 12:08:58 +0200 Subject: [PATCH] Python shells dedicated to a project These shells run in the project root directory and are shared among all project buffers. * lisp/progmodes/python.el: Require 'seq' and (optionally) 'compat' and 'project' libraries. (python-shell-dedicated): New user option (python-shell-get-process-name): Adapt to project-dedicated shells. (run-python): Offer possibility to create a project-dedicated shell, or use 'python-shell-dedicated' as the default behavior. (python-shell-get-buffer): Adapt to project-dedicated shells. --- etc/NEWS | 11 ++++++ lisp/progmodes/python.el | 78 +++++++++++++++++++++++++++------------- 2 files changed, 65 insertions(+), 24 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 963aa22c68..fcbf7deba7 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -2055,6 +2055,17 @@ the Galeon web browser was released in September, 20= 08. Note that this historical web browser is different from Mozilla Firefox; it is its predecessor. =20 +** Python Mode ++++ +*** Project shells and a new user option 'python-shell-dedicated' +When called with a prefix argument, 'run-python' now offers the choice +of creating a shell dedicated to the current project. This shell runs +in the project root directory and is shared among all project buffers. + +Without a prefix argument, the kind of shell (buffer-dedicated, +project-dedicated or global) is specified by the new +'python-shell-dedicated' variable. + ** Ruby Mode =20 --- diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index b8fc7d4c54..31909e6dc2 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -5,7 +5,7 @@ ;; Author: Fabi=C3=A1n E. Gallina ;; URL: https://github.com/fgallina/python.el ;; Version: 0.28 -;; Package-Requires: ((emacs "24.4") (cl-lib "1.0")) +;; Package-Requires: ((emacs "24.4") (compat "28.1.2.1") (seq "2.23")) ;; Maintainer: emacs-devel@gnu.org ;; Created: Jul 2010 ;; Keywords: languages @@ -245,6 +245,9 @@ (require 'ansi-color) (require 'cl-lib) (require 'comint) +(require 'compat nil 'noerror) +(require 'project nil 'noerror) +(require 'seq) (eval-when-compile (require 'subr-x)) ;For `string-empty-p'. =20 ;; Avoid compiler warnings @@ -2218,6 +2221,16 @@ python-shell-compilation-regexp-alist "`compilation-error-regexp-alist' for inferior Python." :type '(alist regexp)) =20 +(defcustom python-shell-dedicated nil + "Whether to make Python shells dedicated by default. +This option influences `run-python' when called without a prefix +argument. If `buffer' or `project', create a Python shell +dedicated to the current buffer or its project (if one is found)." + :version "29.1" + :type '(choice (const :tag "To buffer" buffer) + (const :tag "To project" project) + (const :tag "Not dedicated" nil))) + (defvar python-shell-output-filter-in-progress nil) (defvar python-shell-output-filter-buffer nil) =20 @@ -2580,12 +2593,19 @@ python-shell-prompt-set-calculated-regexps =20 (defun python-shell-get-process-name (dedicated) "Calculate the appropriate process name for inferior Python process. -If DEDICATED is t returns a string with the form -`python-shell-buffer-name'[`buffer-name'] else returns the value -of `python-shell-buffer-name'." - (if dedicated - (format "%s[%s]" python-shell-buffer-name (buffer-name)) - python-shell-buffer-name)) +If DEDICATED is nil, this is simply `python-shell-buffer-name'. +If DEDICATED is `buffer' or `project', append the current buffer +name respectively the current project name." + (pcase dedicated + ('nil python-shell-buffer-name) + ('project + (if-let ((proj (and (featurep 'project) + (project-current)))) + (format "%s[%s]" python-shell-buffer-name (file-name-nondirectory + (directory-file-name + (project-root proj)))) + python-shell-buffer-name)) + (_ (format "%s[%s]" python-shell-buffer-name (buffer-name))))) =20 (defun python-shell-internal-get-process-name () "Calculate the appropriate process name for Internal Python process. @@ -3043,8 +3063,8 @@ run-python Argument CMD defaults to `python-shell-calculate-command' return value. When called interactively with `prefix-arg', it allows the user to edit such value and choose whether the interpreter -should be DEDICATED for the current buffer. When numeric prefix -arg is other than 0 or 4 do not SHOW. +should be DEDICATED to the current buffer or project. When +numeric prefix arg is other than 0 or 4 do not SHOW. =20 For a given buffer and same values of DEDICATED, if a process is already running for it, it will do nothing. This means that if @@ -3058,13 +3078,25 @@ run-python (if current-prefix-arg (list (read-shell-command "Run Python: " (python-shell-calculate-command= )) - (y-or-n-p "Make dedicated process? ") + (alist-get (car (read-multiple-choice "Make dedicated process?" + '((?b "to buffer") + (?p "to project") + (?n "no")))) + '((?b . buffer) (?p . project))) (=3D (prefix-numeric-value current-prefix-arg) 4)) - (list (python-shell-calculate-command) nil t))) - (let ((buffer - (python-shell-make-comint - (or cmd (python-shell-calculate-command)) - (python-shell-get-process-name dedicated) show))) + (list (python-shell-calculate-command) + python-shell-dedicated + t))) + (let* ((project (and (eq 'project dedicated) + (featurep 'project) + (project-current t))) + (default-directory (if project + (project-root project) + default-directory)) + (buffer (python-shell-make-comint + (or cmd (python-shell-calculate-command)) + (python-shell-get-process-name dedicated) + show))) (get-buffer-process buffer))) =20 (defun run-python-internal () @@ -3094,15 +3126,13 @@ python-shell-get-buffer If current buffer is in `inferior-python-mode', return it." (if (derived-mode-p 'inferior-python-mode) (current-buffer) - (let* ((dedicated-proc-name (python-shell-get-process-name t)) - (dedicated-proc-buffer-name (format "*%s*" dedicated-proc-name)) - (global-proc-name (python-shell-get-process-name nil)) - (global-proc-buffer-name (format "*%s*" global-proc-name)) - (dedicated-running (comint-check-proc dedicated-proc-buffer-nam= e)) - (global-running (comint-check-proc global-proc-buffer-name))) - ;; Always prefer dedicated - (or (and dedicated-running dedicated-proc-buffer-name) - (and global-running global-proc-buffer-name))))) + (seq-some + (lambda (dedicated) + (let* ((proc-name (python-shell-get-process-name dedicated)) + (buffer-name (format "*%s*" proc-name))) + (when (comint-check-proc buffer-name) + buffer-name))) + '(buffer project nil)))) =20 (defun python-shell-get-process () "Return inferior Python process for current buffer." --=20 2.37.2 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 04 07:14:24 2022 Received: (at 56997) by debbugs.gnu.org; 4 Sep 2022 11:14:24 +0000 Received: from localhost ([127.0.0.1]:43554 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oUna3-0007hK-Ou for submit@debbugs.gnu.org; Sun, 04 Sep 2022 07:14:23 -0400 Received: from quimby.gnus.org ([95.216.78.240]:56866) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oUna2-0007h6-9z for 56997@debbugs.gnu.org; Sun, 04 Sep 2022 07:14:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:Date:References: In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=trEF48Qwi6jt8wzN8Rh9ExzcOMYmSI4KcbH95vaKFBw=; b=iv+N6GdCYl9h9wsjdRGurQVPNB UMuTZA7en/nelwJpBpjmX33iACvy0G1IVg7m7vyaqDYfi5fMrC6L7jnkzawkwpgbS6LSKTCiyc1oo 38TZJv7RtAO5ZQlHxqRh3ReXGh0wxU+FI2RyyFbub8a/5o97fy9kWrrJktMibtNE2ElY=; Received: from [84.212.220.105] (helo=joga) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oUnZs-0000lT-Pu; Sun, 04 Sep 2022 13:14:14 +0200 From: Lars Ingebrigtsen To: Augusto Stoffel Subject: Re: bug#56997: [PATCH] Analogue of project-shell for Python In-Reply-To: <874jy1eg3e.fsf@gmail.com> (Augusto Stoffel's message of "Wed, 24 Aug 2022 18:55:33 +0200") References: <874jyr87ux.fsf@gmail.com> <874jy1eg3e.fsf@gmail.com> X-Now-Playing: The Beatles's _The Beatles (2)_: "Yer Blues" Date: Sun, 04 Sep 2022 13:14:12 +0200 Message-ID: <875yi39yt7.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Augusto Stoffel writes: > I've attached a new patch with a requirement on compat, so we can use > read-multiple-choice unconditionally (I also removed the unnecessary > cl-lib from the Package-Requires header). Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 56997 Cc: Philip Kaludercic , Stefan Monnier , 56997@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Augusto Stoffel writes: > I've attached a new patch with a requirement on compat, so we can use > read-multiple-choice unconditionally (I also removed the unnecessary > cl-lib from the Package-Requires header). Thanks; now pushed to Emacs 29. From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 04 07:14:26 2022 Received: (at control) by debbugs.gnu.org; 4 Sep 2022 11:14:26 +0000 Received: from localhost ([127.0.0.1]:43557 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oUna6-0007hY-19 for submit@debbugs.gnu.org; Sun, 04 Sep 2022 07:14:26 -0400 Received: from quimby.gnus.org ([95.216.78.240]:56880) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oUna4-0007h9-Eh for control@debbugs.gnu.org; Sun, 04 Sep 2022 07:14:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=8aD3ehTNFIvUlQ6IA7yqDR7af4ttP/yiqTB+UD4a21o=; b=UH++cbsc4PNw9Yt+xulpJHUpfs /PtqTwVZZrzozoc7gIVzkfVoW6TUaEk/+vui79y/e5WR+zQnxB3PA17GF2JQrI06BD7EYdaGPwg6T c7rZTZgb4KEP/EOM6AzjNtM/8LO6Gg/GQIZ8j1wS9t4WRut5d7R55hiHUBgLaoXnCiyQ=; Received: from [84.212.220.105] (helo=joga) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oUnZw-0000lY-Uc for control@debbugs.gnu.org; Sun, 04 Sep 2022 13:14:18 +0200 Date: Sun, 04 Sep 2022 13:14:16 +0200 Message-Id: <874jxn9yt3.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #56997 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: close 56997 29.1 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) close 56997 29.1 quit From unknown Wed Aug 20 06:39:48 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 02 Oct 2022 11:24:10 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator