From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id aJqQK7SysWJDfwEAbAwnHQ (envelope-from ) for ; Tue, 21 Jun 2022 13:59:48 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id 2NuJK7SysWLF5QAA9RJhRA (envelope-from ) for ; Tue, 21 Jun 2022 13:59:48 +0200 Received: from mail.notmuchmail.org (yantan.tethera.net [IPv6:2a01:4f9:c011:7a79::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 8AAFD26AE4 for ; Tue, 21 Jun 2022 13:59:48 +0200 (CEST) Received: from yantan.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id D01A95F425; Tue, 21 Jun 2022 11:59:44 +0000 (UTC) Received: from fethera.tethera.net (fethera.tethera.net [198.245.60.197]) by mail.notmuchmail.org (Postfix) with ESMTP id 82D915F41C for ; Tue, 21 Jun 2022 11:59:41 +0000 (UTC) Received: by fethera.tethera.net (Postfix, from userid 1001) id BB8E45FBD7; Tue, 21 Jun 2022 07:59:39 -0400 (EDT) Received: (nullmailer pid 407970 invoked by uid 1000); Tue, 21 Jun 2022 11:59:38 -0000 From: David Bremner To: notmuch@notmuchmail.org Subject: v2 lazy body insertion Date: Tue, 21 Jun 2022 08:59:31 -0300 Message-Id: <20220621115933.407563-1-david@tethera.net> X-Mailer: git-send-email 2.35.2 MIME-Version: 1.0 Message-ID-Hash: 2IJ2BWVIE2SVLUUPBH4VCD463AZD4AXA X-Message-ID-Hash: 2IJ2BWVIE2SVLUUPBH4VCD463AZD4AXA X-MailFrom: bremner@tethera.net X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.3 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: DE ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1655812788; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-owner:list-unsubscribe:list-subscribe:list-post; bh=rCKe4CPPP9LHxnA9Dtg7tJLbblmtthgLMJr/LpXHKE8=; b=SZpVeEFgi3iRwBm0KkDXwzFyEcdspG+xpymT0gSsXEVVV4wwjRCzn1dSCSk3Xa7wg4lqEo 8s5LYLrpyTfpWgMaiWFLEkHkmXFdQ+4TH6MuGzSwLoJAiMqwkQ94BLLxG3LdImOkOGIyie cthFrGeflZecig4UCTJTWgduvuNHKa+tx36KLUNHIuGUs9LAO3slxMN7ReLJu6rvSZ4LMo THmRVRmDfHhD1dXbxOJ+W4lRwiohzrbIEJoaVFsYhGcECZeqkDYHMyCiLNOdegTZcpPACa ILJUpyx+w6K6KjjQH/4CTGzgyAoJZDkhTSSUqLLrQG6b8Dpyh45ryYeiSMeTVQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1655812788; a=rsa-sha256; cv=none; b=VkeLUjXx1n5a3hAB2yNRtKN7frk5Pdy0vuJ27/B553KO+rfCJlvDkL69lEwH1smetTYCOZ AefSVEBvXzcBfWd142Z8SyBuOC81ALgMGvvsQM9t4XVx16uhEP6/o2NO3aNfRC6Rz9H+9J Jzdw424YKrLpXRDxm0FZNLj49TA6QB93EHvRl4VsaR3FoWuDs5Dv/fSo+wboIhN6anD78p vnJiIoGOHypVjICswzC4rGTIHCyB4IsUaUfZRp8yJP05Hbhq5vvO/HndlN7j3iIxJjVNKi 5rltvY9MqhCMEHg/scllsYE1stNTmjVaYgWKb2lIZ+DjOWXDVav+w5fcg/m6uA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2a01:4f9:c011:7a79::1 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Spam-Score: -1.70 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2a01:4f9:c011:7a79::1 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Queue-Id: 8AAFD26AE4 X-Spam-Score: -1.70 X-Migadu-Scanner: scn0.migadu.com X-TUID: XfIrvN01dAGf This obsoletes the series at [1]. Compared to that series, this does not introduce an extra layer of buttons, but just toggles more parts closed. It still seems to be a similar (maybe even better, which is suprising) performance improvement. While doing this revision I realized that notmuch-show-max-text-part-size can play a similar role. There are some details to check there, in particular the setting of 0 to disable is unfortunate. In some sense the heuristic of only (fully) displaying shallow messages is backwards. Most likely the thing user wants to read are things near the leaves of the discussion tree. That will require either extending the notmuch-show CLI output (boo!) or a second recursive traversal of every message in emacs. I'll have to see if the latter is a performance problem. This revision also adds a few more performance tests, to avoid overfitting to the display of one thread. [1]: id:20220605170851.1595387-1-david@tethera.net