From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#135: eval-defun binds print-level during eval Date: Sun, 24 Apr 2022 17:10:26 +0200 Message-ID: <87mtga8ql9.fsf_-_@gnus.org> References: <87hce9i8n5.fsf@blah.blah> <87ej9au0yy.fsf@blah.blah> <87hce58dqy.fsf@blah.blah> <87aacgl7l9.fsf@blah.blah> <87oc0tdh4y.fsf@blah.blah> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="37835"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: 135@debbugs.gnu.org, Stefan Monnier To: Kevin Ryde Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Apr 24 17:11:10 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1nidtG-0009fc-1Z for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 24 Apr 2022 17:11:10 +0200 Original-Received: from localhost ([::1]:39458 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nidtE-0002mf-TJ for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 24 Apr 2022 11:11:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37934) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nidt8-0002lL-4U for bug-gnu-emacs@gnu.org; Sun, 24 Apr 2022 11:11:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:37830) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nidt7-0001z5-Rt for bug-gnu-emacs@gnu.org; Sun, 24 Apr 2022 11:11:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nidt7-0004dQ-L4 for bug-gnu-emacs@gnu.org; Sun, 24 Apr 2022 11:11:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 24 Apr 2022 15:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 135 X-GNU-PR-Package: emacs Original-Received: via spool by 135-submit@debbugs.gnu.org id=B135.165081305417802 (code B ref 135); Sun, 24 Apr 2022 15:11:01 +0000 Original-Received: (at 135) by debbugs.gnu.org; 24 Apr 2022 15:10:54 +0000 Original-Received: from localhost ([127.0.0.1]:59960 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nidsz-0004d4-T3 for submit@debbugs.gnu.org; Sun, 24 Apr 2022 11:10:54 -0400 Original-Received: from quimby.gnus.org ([95.216.78.240]:41322) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nidsy-0004cs-7r for 135@debbugs.gnu.org; Sun, 24 Apr 2022 11:10:52 -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:In-Reply-To:Date: References: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=6+laTrpXk3+gSns04mh19A5kjUHkfL/YsKtvNc2E1ZE=; b=HKZbPpP6ZwYkBf1ee080SdjGTE T3eDt7jrddfLH4k1EKEAxAboSFSG+9HPj0YgsDS1lVSSOUug54Wh5uxCqtM631Bp0r89g/5i/VXll r5c4CUoIAzHtqYPeMVtUhID3uXKRCmMYFwYN3UJXXup/u/HEpAoVuwc4HHPewYzbtT4s=; Original-Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nidsZ-0007Rf-IC; Sun, 24 Apr 2022 17:10:29 +0200 X-Now-Playing: Grenadine's _Nopalitos_: "Steely Daniel" In-Reply-To: <87oc0tdh4y.fsf@blah.blah> (Kevin Ryde's message of "Sun, 17 Jul 2011 07:56:13 +1000") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:230570 Archived-At: I had an idea, after obviously pondering this issue for ten years. To recap, for people with bad memories -- put this in a buffer and `C-M-x' it: (progn print-level) It will print 4, because we rebind print-level before evaling it, but ideally it should have its real value while doing the eval, but be eval-expression-print-level during printing. As the printing is actually deep inside the bowels of readevalloop, untangling that's a challenge... but... the following simple change handles the test case, and doesn't seem to lead to any obvious regressions. Any comments here? diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index 33f6902491..c442d0fa76 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -1614,8 +1614,6 @@ elisp--eval-defun ;; printing, not while evaluating. (defvar elisp--eval-defun-result) (let ((debug-on-error eval-expression-debug-on-error) - (print-length eval-expression-print-length) - (print-level eval-expression-print-level) elisp--eval-defun-result) (save-excursion ;; Arrange for eval-region to "read" the (possibly) altered form. @@ -1631,9 +1629,13 @@ elisp--eval-defun (setq form (funcall load-read-function (current-buffer))) (setq end (point))) ;; Alter the form if necessary. - (let ((form (eval-sexp-add-defvars - (elisp--eval-defun-1 - (macroexpand form))))) + (let ((form `(let ((print-level ,print-level) + (print-length ,print-length)) + ,(eval-sexp-add-defvars + (elisp--eval-defun-1 + (macroexpand form))))) + (print-length eval-expression-print-length) + (print-level eval-expression-print-level)) (eval-region beg end standard-output (lambda (_ignore) ;; Skipping to the end of the specified region -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no