From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= Newsgroups: gmane.emacs.bugs Subject: bug#68072: pp functions have O(n^2) runtime with lisp-indent-function set to common-lisp-indent-function Date: Fri, 5 Jan 2024 13:06:30 +0000 Message-ID: References: <875y0jw5jf.fsf@prescott.mail-host-address-is-not-set> 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="2051"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Brennan Vincent , 68072@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jan 05 14:07:11 2024 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 1rLjup-0000Iw-4S for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 05 Jan 2024 14:07:11 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rLjud-0006Kf-PA; Fri, 05 Jan 2024 08:06:59 -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 1rLjuc-0006KW-IE for bug-gnu-emacs@gnu.org; Fri, 05 Jan 2024 08:06:58 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rLjuc-0001Ce-A1 for bug-gnu-emacs@gnu.org; Fri, 05 Jan 2024 08:06:58 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rLjug-0003nt-D9 for bug-gnu-emacs@gnu.org; Fri, 05 Jan 2024 08:07:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 05 Jan 2024 13:07:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68072 X-GNU-PR-Package: emacs Original-Received: via spool by 68072-submit@debbugs.gnu.org id=B68072.170446001614608 (code B ref 68072); Fri, 05 Jan 2024 13:07:02 +0000 Original-Received: (at 68072) by debbugs.gnu.org; 5 Jan 2024 13:06:56 +0000 Original-Received: from localhost ([127.0.0.1]:56658 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rLjua-0003nY-BU for submit@debbugs.gnu.org; Fri, 05 Jan 2024 08:06:56 -0500 Original-Received: from mail-lj1-x22e.google.com ([2a00:1450:4864:20::22e]:49433) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rLjuX-0003nI-4f for 68072@debbugs.gnu.org; Fri, 05 Jan 2024 08:06:55 -0500 Original-Received: by mail-lj1-x22e.google.com with SMTP id 38308e7fff4ca-2ccbc328744so18555131fa.3 for <68072@debbugs.gnu.org>; Fri, 05 Jan 2024 05:06:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1704460002; x=1705064802; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=2kPt3HH27gHLJDN/y/mE7SneNvmWoTuTd6eSDwHjkBA=; b=a3FCghSnlPCXddXlDx9fzHt4SapQsyHDhKOcLVGMEfM65VVPSzgncnUB5corsslJCm og1YFcICFJLRqxuEc7EPYeVISMftr4bZgV9ju7qK5n4eNVUb0CVry7SbMSvk6j8Y/x2C DCq5GWrq5cyRR6KfN+Qq4xVPWYvNHWkgfosWBrbzuVeZ2Y5I31ohefmA7BWW6MwXsO14 8pGEvweKepqCivDFKsrgeywOQWb3eYLgfYN6phdM88/EdxSmpHPXHwh3qgcEXuZdRbky AyebDq6wxGfupzPJ33Hi6FPaQbic0XcEBVYGSXv2PkaWHgwPE8pzs0umG+Yyrdmgieo6 meyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704460002; x=1705064802; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2kPt3HH27gHLJDN/y/mE7SneNvmWoTuTd6eSDwHjkBA=; b=QOn3NDN3jzBo5mB5WeqjD/Zo7/pQHCjmbgvrRfKHhC2lrQ2ruPNiL+gMK7g7SseCd1 bMjmdqo7mCvmjLtMfWoMmGaVl5PHefnNOhbVlI2TSCw64bwcB7Hd77Qiaj7Bo94TI3AC Xmj8mcqahRCOIChS6ePNkgWJZOy58ivObrxR/g53PtVwUIB2Y6Fh+j7/B2f3a+cG+6o5 qnTZVpDTPKX1CP3NcbJOtKPhykX8EToGTbCIrWbUL782kqbvxNdc7DsEz6pW+aXDzJlB I2OiewHVGg7rpnUUy5k9tXZ01513om5MIjPBcYF39GlifzzfucFqftPaxOEna8KhMQ8+ +GfQ== X-Gm-Message-State: AOJu0YwCbkdGExpBySFRtvxI/11yWuvqi1h/BV5w9qSvT4phLyvSlFgU br8BoF+WyD3/OeHtORm8ZoFa4JCCbKgLeElQ2uRlWIx0m6Y= X-Google-Smtp-Source: AGHT+IFChWUS31TmZnJcvp2vFYO/ZKiaR8r+KsNBrAIe+ejTezT41K3kGzKAGhmAtcDjAN1hz67B5XWqXJJ8nVPsWYU= X-Received: by 2002:a05:651c:14a:b0:2cc:89f4:15a3 with SMTP id c10-20020a05651c014a00b002cc89f415a3mr1046508ljd.49.1704460001929; Fri, 05 Jan 2024 05:06:41 -0800 (PST) In-Reply-To: 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:277386 Archived-At: On Fri, Jan 5, 2024 at 3:50=E2=80=AFAM Stefan Monnier wrote: > > > And Eglot should probably use a faster pretty printer than the default > > `pp` for that. Maybe we should make `lisp-data-mode` set > > `pp-default-function` or `lisp-indent-function` to avoid such problems? > > Jsonrpc uses the pretty printer via `pp-to-string` so there's no major > mode to change (and `pp-to-string` isn't told whether it's printing code > or data =F0=9F=99=81), and in order to run on older Emacsen it can't real= ly use > the `pp-function` argument either. > > So in the mean time, maybe the patch below is in order? > Jo=C3=A3o, any comment? Maybe, I think so. Though the starting premise of this bug: > This also causes eglot (in its default configuration) to hang when > opening large Rust files, since rust-analyzer tends to send large amounts= of > inlay hints, and eglot logs the messages it receives as pretty-printed > lisp objects. Is not true anymore, starting around the time Brennan opened it. Eglot now uses JSON by default, which should solve most of the performance issues related to logging. But Lisp pp is still opt-in, and making it faster (and relatively pretty) is a good thing. Jo=C3=A3o