[PATCH 0/4] emacs: show: lazy handling of hidden parts
authorMark Walters <markwalters1009@gmail.com>
Sat, 4 May 2013 13:01:13 +0000 (14:01 +0100)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:54:35 +0000 (09:54 -0800)
ef/8e8cc3eb4bddd3cec0127b8d295bd9396ed3f5 [new file with mode: 0644]

diff --git a/ef/8e8cc3eb4bddd3cec0127b8d295bd9396ed3f5 b/ef/8e8cc3eb4bddd3cec0127b8d295bd9396ed3f5
new file mode 100644 (file)
index 0000000..5b7cc2b
--- /dev/null
@@ -0,0 +1,128 @@
+Return-Path: <markwalters1009@gmail.com>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 87F94431FC2\r
+       for <notmuch@notmuchmail.org>; Sat,  4 May 2013 06:01:33 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: 2.7\r
+X-Spam-Level: **\r
+X-Spam-Status: No, score=2.7 tagged_above=-999 required=5\r
+       tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,\r
+       FREEMAIL_ENVFROM_END_DIGIT=1, FREEMAIL_FROM=0.001,\r
+       FREEMAIL_REPLY=2.499, RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id BOyskPc3wQZh for <notmuch@notmuchmail.org>;\r
+       Sat,  4 May 2013 06:01:28 -0700 (PDT)\r
+Received: from mail-wg0-f46.google.com (mail-wg0-f46.google.com\r
+ [74.125.82.46])       (using TLSv1 with cipher RC4-SHA (128/128 bits))        (No client\r
+ certificate requested)        by olra.theworths.org (Postfix) with ESMTPS id\r
+ DE645431FAF   for <notmuch@notmuchmail.org>; Sat,  4 May 2013 06:01:27 -0700\r
+ (PDT)\r
+Received: by mail-wg0-f46.google.com with SMTP id n12so2295682wgh.1\r
+       for <notmuch@notmuchmail.org>; Sat, 04 May 2013 06:01:26 -0700 (PDT)\r
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;\r
+       h=x-received:from:to:cc:subject:date:message-id:x-mailer;\r
+       bh=sDCZjgwVc63efwm/NZIAJRanw+q7NDCtUKhQyMYctGA=;\r
+       b=gW7ZIFUlGDOOFLIXdS993/cLGkoF5yfBg2vBNYEH99o9my4maTOk7wFspe83XeZgHt\r
+       ERI+xHPR8xiCE4NbRXXPZIWYx3ozQvgBVQsnB9nDBbShd+oaUIMtYeipHtbHLPSeSIET\r
+       w9IKu5Dt/8VmdqLULqcKiYYvQVy6q+3MRH7auqyh9GrJ5ZwUDf06AOMhi3wjrdPNV7Ff\r
+       /FjHvTmn8aHy62R2g5lseVlsWhzVUIpyyEw3Yo5Nm05zkI9xuf3Zfat67HKNb6/t7S14\r
+       8p92W8uR2UKr7eBg/zHvvo74jIT0jFCprzwUhYy0d6tPjTJ1DoHPiQEC0I0rBMJb31m/\r
+       bafQ==\r
+X-Received: by 10.180.183.210 with SMTP id eo18mr1993253wic.17.1367672485299; \r
+       Sat, 04 May 2013 06:01:25 -0700 (PDT)\r
+Received: from localhost (93-97-24-31.zone5.bethere.co.uk. [93.97.24.31])\r
+       by mx.google.com with ESMTPSA id x13sm3143128wib.3.2013.05.04.06.01.23\r
+       for <multiple recipients>\r
+       (version=TLSv1.2 cipher=RC4-SHA bits=128/128);\r
+       Sat, 04 May 2013 06:01:24 -0700 (PDT)\r
+From: Mark Walters <markwalters1009@gmail.com>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH 0/4] emacs: show: lazy handling of hidden parts\r
+Date: Sat,  4 May 2013 14:01:13 +0100\r
+Message-Id: <1367672478-12247-1-git-send-email-markwalters1009@gmail.com>\r
+X-Mailer: git-send-email 1.7.9.1\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Sat, 04 May 2013 13:01:33 -0000\r
+\r
+This is a much better version of the WIP patch at\r
+id:1367628568-11656-1-git-send-email-markwalters1009@gmail.com\r
+\r
+There was some discussion on irc about the new invisibility handling\r
+making large threads of messages with html parts slow to appear. This\r
+is caused by the new code rendering all of these parts and then hiding\r
+them. (I think this is exacerbated by the text/html having to fetch\r
+the part as a separate request: it is not in the notmuch show output).\r
+\r
+This code makes the rendering of all hidden parts lazy (ie it occurs\r
+when the part is shown). This should make the common case of hidden\r
+parts which are never viewed much faster.\r
+\r
+The code is relatively simple: we store all the arguments to the part\r
+insertion handler on the part button and then give them to the part\r
+handler when needed. This is not very memory efficient (we already\r
+store the whole message so we could extract it all again) but I think\r
+it is unlikely to be a problem in practice.\r
+\r
+The patch series looks very large but almost everything of interest\r
+happens in the final patch: the rest is code rearrangement. In\r
+particular patch 3/4 is entirely code rearrangement (and since it\r
+changes some indentation looks like it changes much more than it\r
+actually does).\r
+\r
+Testing is always helpful but there are two particular things that\r
+would be very useful: first, if anyone who has found it slow can see\r
+if this fixes it and secondly if anyone with encryption setup could\r
+test that the encryption buttons all work and look correct (I don't\r
+have encryption set up).\r
+\r
+In my small amount of testing it seems to work and all tests pass.\r
+\r
+Best wishes\r
+\r
+Mark\r
+\r
+\r
+Mark Walters (4):\r
+  emacs:show: separate out handling of application/octet-stream\r
+  emacs: show: handle inline patch fake parts at top level\r
+  emacs: show: move the insertion of the header button to the top level\r
+  emacs: show: implement lazy hidden part handling\r
+\r
+ emacs/notmuch-show.el |  136 ++++++++++++++++++++++++++++++-------------------\r
+ emacs/notmuch-wash.el |    2 +-\r
+ 2 files changed, 84 insertions(+), 54 deletions(-)\r
+\r
+-- \r
+1.7.9.1\r
+\r
+\r
+*** BLURB HERE ***\r
+\r
+Mark Walters (4):\r
+  emacs:show: separate out handling of application/octet-stream\r
+  emacs: show: handle inline patch fake parts at top level\r
+  emacs: show: move the insertion of the header button to the top level\r
+  emacs: show: implement lazy hidden part handling\r
+\r
+ emacs/notmuch-show.el |  136 ++++++++++++++++++++++++++++++-------------------\r
+ emacs/notmuch-wash.el |    2 +-\r
+ 2 files changed, 84 insertions(+), 54 deletions(-)\r
+\r
+-- \r
+1.7.9.1\r
+\r