--- /dev/null
+Return-Path: <sojkam1@fel.cvut.cz>\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 067F7431FBD\r
+ for <notmuch@notmuchmail.org>; Sun, 17 Aug 2014 03:02:03 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -2.3\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-2.3 tagged_above=-999 required=5\r
+ tests=[RCVD_IN_DNSWL_MED=-2.3] 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 ZzOcCSvFHsYW for <notmuch@notmuchmail.org>;\r
+ Sun, 17 Aug 2014 03:01:53 -0700 (PDT)\r
+Received: from max.feld.cvut.cz (max.feld.cvut.cz [147.32.192.36])\r
+ by olra.theworths.org (Postfix) with ESMTP id 9AE5A431FBC\r
+ for <notmuch@notmuchmail.org>; Sun, 17 Aug 2014 03:01:53 -0700 (PDT)\r
+Received: from localhost (unknown [192.168.200.7])\r
+ by max.feld.cvut.cz (Postfix) with ESMTP id 137F919F33C1;\r
+ Sun, 17 Aug 2014 12:01:49 +0200 (CEST)\r
+X-Virus-Scanned: IMAP STYX AMAVIS\r
+Received: from max.feld.cvut.cz ([192.168.200.1])\r
+ by localhost (styx.feld.cvut.cz [192.168.200.7]) (amavisd-new,\r
+ port 10044)\r
+ with ESMTP id T8_vnmWa0lLV; Sun, 17 Aug 2014 12:01:45 +0200 (CEST)\r
+Received: from imap.feld.cvut.cz (imap.feld.cvut.cz [147.32.192.34])\r
+ by max.feld.cvut.cz (Postfix) with ESMTP id 9C3F019F33CC;\r
+ Sun, 17 Aug 2014 12:01:43 +0200 (CEST)\r
+Message-ID: <53F07D7F.9080006@fel.cvut.cz>\r
+Date: Sun, 17 Aug 2014 12:01:35 +0200\r
+From: Michal Sojka <sojkam1@fel.cvut.cz>\r
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;\r
+ rv:24.0) Gecko/20100101 Icedove/24.7.0\r
+MIME-Version: 1.0\r
+To: notmuch@notmuchmail.org\r
+Subject: Re: [PATCH v3] Emacs: Add address completion mechanism implemented\r
+ in elisp\r
+References: <1407771091-12651-1-git-send-email-sojkam1@fel.cvut.cz>\r
+In-Reply-To: <1407771091-12651-1-git-send-email-sojkam1@fel.cvut.cz>\r
+Content-Type: text/plain; charset=ISO-8859-1; format=flowed\r
+Content-Transfer-Encoding: 7bit\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: Sun, 17 Aug 2014 10:02:03 -0000\r
+\r
+On 11.8.2014 17:31, Michal Sojka wrote:\r
+> Currently, notmuch has an address completion mechanism that requires\r
+> external command to provide completion candidates. This patch adds a\r
+> completion mechanism inspired by https://github.com/tjim/nevermore,\r
+> which is implemented in Emacs lisp only.\r
+>\r
+> The core of the new mechanism is the function notmuch-address-harvest\r
+> that collects the completion candidates from the notmuch database and\r
+> stores them in notmuch-address-completions variable.\r
+> notmuch-address-harvest is called on the first entry to message-mode\r
+> and runs asychnornously so that the user doesn't have to wait for it\r
+> to complete while composing the message. The\r
+> notmuch-address-completions variable is used in message-mode as a\r
+> source of completion candidates. Currently, there are two ways how the\r
+> notmuch-address-completions variable is used.\r
+This patch will need to be improved. I have just performed experiments \r
+on a system with rotating harddisk and the initial address harvesting \r
+takes about a minute (on SSD it's 6 seconds). This basically means that \r
+when writing a first message, address completion does not know about \r
+most completions candidates.\r
+\r
+Probably, first invocation of address harvesting should take into \r
+account the initial text and search only for addresses matching this \r
+text. I'll try to implement this later.\r
+\r
+-Michal\r