From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 24 03:58:41 2017 Received: (at submit) by debbugs.gnu.org; 24 Dec 2017 08:58:41 +0000 Received: from localhost ([127.0.0.1]:49907 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eT27F-0005Wk-Am for submit@debbugs.gnu.org; Sun, 24 Dec 2017 03:58:41 -0500 Received: from eggs.gnu.org ([208.118.235.92]:45057) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eT27C-0005WX-SL for submit@debbugs.gnu.org; Sun, 24 Dec 2017 03:58:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eT276-00080n-HD for submit@debbugs.gnu.org; Sun, 24 Dec 2017 03:58:33 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_20,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:41557) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eT276-00080Z-Di for submit@debbugs.gnu.org; Sun, 24 Dec 2017 03:58:32 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35986) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eT275-0003Ia-1T for bug-gnu-emacs@gnu.org; Sun, 24 Dec 2017 03:58:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eT274-0007zP-4E for bug-gnu-emacs@gnu.org; Sun, 24 Dec 2017 03:58:31 -0500 Received: from mail-qt0-x230.google.com ([2607:f8b0:400d:c0d::230]:38708) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eT273-0007ym-Tv for bug-gnu-emacs@gnu.org; Sun, 24 Dec 2017 03:58:30 -0500 Received: by mail-qt0-x230.google.com with SMTP id d4so40690317qtj.5 for ; Sun, 24 Dec 2017 00:58:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=iEqcVujBOJ77/DzpIq9zmCxfeAQJbsu5wLtyvSoAowY=; b=kntiEAuqZm4TlZtuFotRO7J006bN/FLbKVEseCcqMr3tU/+KkPEw2dT/Wo71HZVqv+ OqrzbXbgpBeJqMt7cwj3SMGI9QLij9RPu8D4r9eU+rry/HtY4OqdK0HVN4TMBLLaTHYS jRC6gUQKukJDrwSSWEzapNW9Csn/df5ElqYSZm+DMXLTG36XCvaGd8+ZhRQQxfcNM75x YmDWL7yAk/1d7hr1fmde264AN/trf8adJntA6gkNmkIUR8AldNKgWezX3lm8pFye5Hsc xqlMxyrJ1H3KDjtS5OWs0dJUwIHpj+kbI/rR0E81pfShn47xoQtOFMGTdO1Iy1YoI3pA ML3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=iEqcVujBOJ77/DzpIq9zmCxfeAQJbsu5wLtyvSoAowY=; b=HobCQKXXy41DtIZl4iGkVzAxBIrzJnvrE8QQv4QSizGF2H6083yB5ynf3UA/n3mRza 0fHuVNVLKUEWjZZsirDIu56+yyFKdE9OL+aXPFGR87Qx1KqeBWGLAoehgh8T7mRwNQ9r fvUleKwQQRuk0xlzWZzhXrvn0vzlLiP2cUsRoxLRSQaLJ+sj6q1fHG7Ibzy7FwuXT11t Kjzs9oOIRx0wzV6HbP5At8JUpUZqC7aVfkHsjjP2HmWByADAdS4QGCNvKIu+MWeh36Yv zj2j96OW+0jfnCFosutGCEYT8VdOSALwt46NVHM3PdOwNfmurThMnae69+m+EDE83JoM TpOA== X-Gm-Message-State: AKGB3mIt1eVdHL9IuJ9stFyuxyrpBoJkGHd7JvGfOeDFvSvIMSn+LmgF IqsXMUNwcR8qVrNkpuxiR5GL4djZvLZxNnrx2R0lMw== X-Google-Smtp-Source: ACJfBotPrJAIJ2aO6ETH+dP7u5V+ehItNcAbEyhdywZf2jDAhE62LWQNT7/9P/zlHorZdTCqLilNV8DcD3wBlHTngT8= X-Received: by 10.200.24.83 with SMTP id n19mr25578055qtk.263.1514105908880; Sun, 24 Dec 2017 00:58:28 -0800 (PST) MIME-Version: 1.0 Received: by 10.237.43.166 with HTTP; Sun, 24 Dec 2017 00:58:28 -0800 (PST) From: Shuguang Sun Date: Sun, 24 Dec 2017 16:58:28 +0800 Message-ID: Subject: icomplete re-build the completion table after each key press To: bug-gnu-emacs@gnu.org Content-Type: multipart/alternative; boundary="94eb2c050f74d9e886056112402c" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --94eb2c050f74d9e886056112402c Content-Type: text/plain; charset="UTF-8" Hi, The icomplete re-build the completion table 'completion-all-sorted-completions' after each key press. However, I think it should keep the 'completion-all-sorted-completions' builded at beging and re-use it afterwise. At least in Windows, GNU Emacs 27.0.50 (build 1, x86_64-w64-mingw32) of 2017-12-09. How to repeat it: 1: emacs -q 2: icomplete-mode (we can't find anything wired unless we call dired-do-copy on a network-mapped remote file under a slow network) 3: modify function icomplete-exhibit to log as below: insert '(print completion-all-sorted-completions)' between '(save-excursion (goto-char (point-max))' and '(if (and (or icomplete-show-matches-on-no-input', and C-M-x. Then it will print 'nil' after each key press which means 'completion-all-sorted-completions' is empty. 4. modify function icomplete-completions to log as below: insert '(print completion-all-sorted-completions)' at the begining of the function body, prior to "(let* ((minibuffer-completion-table candidates)'. Then it will print 'nil' after each key press which means 'completion-all-sorted-completions' is empty. Thereby, it has to call "(comps (completion-all-sorted-completions (icomplete--field-beg) (icomplete--field-end)))' in function icomplete-completions to re-build the completiong table after each key press. Thanks *Stefan Monnier *to point out it should be a bug in the help maillist. By the way, '(sequencep (icomplete--completion-table))' in function icomplete-exhibit always returns 'nil', and the icomplete-delay-completions-threshold actually has no effect. (print (icomplete--completion-table)) just returns the table name (function to generate the table), but not the content of the table. By the way again, if call dired-do-copy or dired-do-rename, icomplete-max-delay-chars counts the whole path of the file because, the path has been put to the minibuffer automatically. This may not a bug, however, I think it should be documented. Best Regards, Shuguang Sun --94eb2c050f74d9e886056112402c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

The icomplete re-build t= he completion table 'completion-all-sorted-completions' after each = key press. However, I think it should keep the 'completion-all-sorted-c= ompletions' builded at beging and re-use it afterwise.

At least in Windows, GNU Emacs 27.0.50 (build 1, x86_64-w64-mingw3= 2) of 2017-12-09.

How to repeat it:
= 1: emacs -q
2: icomplete-mode (we can't find anything wired u= nless we call dired-do-copy on a network-mapped remote file under a slow ne= twork)
3: modify function icomplete-exhibit to log as below:<= /div>
=C2=A0=C2=A0=C2=A0 insert '(print completion-all-sorted-compl= etions)' between '(save-excursion=C2=A0 (goto-char (point-max))'= ; and '(if (and (or icomplete-show-matches-on-no-input', and C-M-x.=
=C2=A0=C2=A0=C2=A0 Then it will print 'nil' after e= ach key press which means 'completion-all-sorted-completions' is em= pty.
4. modify function icomplete-completions to log as below:
=C2=A0=C2=A0=C2=A0 insert '(print completion-all-sorted-co= mpletions)' at the begining of the function body, prior to "(let*= ((minibuffer-completion-table candidates)'.
=C2=A0=C2= =A0=C2=A0 Then it will print 'nil' after each key press which means= 'completion-all-sorted-completions' is empty.

=
Thereby, it has to call "(comps (completion-all-sorted-completion= s=C2=A0=C2=A0=C2=A0=C2=A0 (icomplete--field-beg) (icomplete--field-end)))&#= 39; in function icomplete-completions to re-build the completiong table aft= er each key press.

Thanks Stefan Monnier to= point out it should be a bug in the help maillist.
By the way, '(sequencep (icomplete--completion-table))'= ; in function icomplete-exhibit always returns 'nil', and the icomp= lete-delay-completions-threshold actually has no effect.
(pr= int (icomplete--completion-table)) just returns the table name (function to= generate the table), but not the content of the table.

By the way again, if call dired-do-copy or dired-do-rename, icomplete= -max-delay-chars counts the whole path of the file because, the path has be= en put to the minibuffer automatically. This may not a bug, however, I thin= k it should be documented.


Best Reg= ards,
Shuguang Sun
--94eb2c050f74d9e886056112402c-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 25 09:41:04 2017 Received: (at submit) by debbugs.gnu.org; 25 Dec 2017 14:41:04 +0000 Received: from localhost ([127.0.0.1]:51246 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eTTw7-0003HZ-U3 for submit@debbugs.gnu.org; Mon, 25 Dec 2017 09:41:04 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38148) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eTTw6-0003Gz-I8 for submit@debbugs.gnu.org; Mon, 25 Dec 2017 09:41:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eTTw0-0007cD-50 for submit@debbugs.gnu.org; Mon, 25 Dec 2017 09:40:57 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:59899) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eTTw0-0007c3-1n for submit@debbugs.gnu.org; Mon, 25 Dec 2017 09:40:56 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57279) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eTTvy-00029u-DH for bug-gnu-emacs@gnu.org; Mon, 25 Dec 2017 09:40:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eTTvx-0007Zd-Fu for bug-gnu-emacs@gnu.org; Mon, 25 Dec 2017 09:40:54 -0500 Received: from mail-qk0-x235.google.com ([2607:f8b0:400d:c09::235]:43933) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eTTvx-0007Yv-9v for bug-gnu-emacs@gnu.org; Mon, 25 Dec 2017 09:40:53 -0500 Received: by mail-qk0-x235.google.com with SMTP id j137so23697714qke.10 for ; Mon, 25 Dec 2017 06:40:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=JujS8AR1OOcoAbuL+qa7mQ5ATdyQ3IIapJmPri0Qsco=; b=lPfdrALC+Zn6t4zMI3IiSKdjtsHi1Kn87DFjWbovPVM850ztKQeFmvcNLJAPrHbUOh FK8KE7Q8axDAf4FbzsRSaDFUlb2RAgcKDyU29rqf6Jyg96w1Im4fFr6wffX22/Cp0fca qNJkymqha19iGW0tni5Bulhduu0nAcGSIvUstVlRppluMpRaGc3bcsDqP0cBRQK87FH/ 1DgnTRSpWYvlI1MgdS5D2W+xObCtjqh6nbMNKntfeWrYHWoCfj62JY8n3kVnIwLjfk0T qCt1Np8osanbcOisle/0hene1VumpG9b4k7/ioirb5YOvxoh84nZkmGl5pTa95BHiDj1 NpWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=JujS8AR1OOcoAbuL+qa7mQ5ATdyQ3IIapJmPri0Qsco=; b=PRu4pqAxN/GXy24QghSlsBMqF7JoQ/vLEuBLdDI47R0ZkYN1/GZgfDpg2SIw0EfG9t 4Fe3jrO3MTJrVDWshrDs9VnINC3/yvjZLdGeL5GRrrK/XjG3PEiOKYs5A1FhAjB98zJe ltvgwwA61YnPQZpfdxHC/Cn7hcdxp6cWVOormDHsBuLAYsMkZFPqQMRv+R99Iht8vcIq fs+er29WUKab7ALYg258qpInjbkwWnWHY8n3pJmyOCgKlxg6Bkn8/jQFLyGKqnZIWHLQ tJtaQiwei/kZAebNgQU2Gy2Vk1oyyJlfyexSiPx5jWLfok6weIgNqnKmQfhCrLjJfoEc Q0Lg== X-Gm-Message-State: AKGB3mL13iJBn19zLY6Ym+EJ6DU6BFD83z3hguHOkZ2hR6RR4yL6TMVU kzIRg6w0t4r3o4eqKv2BmePWVdBbLWpUsbAfs1g= X-Google-Smtp-Source: ACJfBousxki88cq2EmAveCkg4sUQDyGnFNX3Kd5yNw89ryES8SWHJFnZFzMBHnBWgdYwTo5OfZmlTIgHDKckJkO2eaU= X-Received: by 10.55.234.22 with SMTP id t22mr11600431qkj.319.1514212851665; Mon, 25 Dec 2017 06:40:51 -0800 (PST) MIME-Version: 1.0 Received: by 10.237.43.166 with HTTP; Mon, 25 Dec 2017 06:40:51 -0800 (PST) From: Shuguang Sun Date: Mon, 25 Dec 2017 22:40:51 +0800 Message-ID: Subject: bug#29833: icomplete re-build the completion table after each key press To: shuguang@gmail.com, bug-gnu-emacs@gnu.org Content-Type: multipart/alternative; boundary="089e082cccfc23511005612b27c4" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --089e082cccfc23511005612b27c4 Content-Type: text/plain; charset="UTF-8" For reference: If icomplete-mode is on, it has the same issue with counsel-find-file (from swiper/counsel, https://github.com/abo-abo/ swiper/blob/master/counsel.el). After typeing each key, it will try to re-build the file list. If turning icomplete-mode off, it will act as ido and will not re-build the completion list. Best Regards, Shuguang --089e082cccfc23511005612b27c4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
For reference: If icomplete-mode is on, it has the sa= me issue with counse= l-find-file (from swiper/counsel, https://github.com/abo-abo/swiper/blob/master/counsel.el). After typeing each key, it will= try to re-build the file list. If turning icomplete-mode off, it will act as ido and wi= ll not re-build the completion list.

Best Regards,
Shuguang
--089e082cccfc23511005612b27c4-- From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 06 02:27:41 2018 Received: (at submit) by debbugs.gnu.org; 6 Jan 2018 07:27:41 +0000 Received: from localhost ([127.0.0.1]:37527 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eXitJ-0007iV-Bx for submit@debbugs.gnu.org; Sat, 06 Jan 2018 02:27:41 -0500 Received: from eggs.gnu.org ([208.118.235.92]:51050) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eXitH-0007iJ-SJ for submit@debbugs.gnu.org; Sat, 06 Jan 2018 02:27:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eXitB-0001Dr-4Y for submit@debbugs.gnu.org; Sat, 06 Jan 2018 02:27:34 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID,URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:50158) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eXitA-0001Db-R0 for submit@debbugs.gnu.org; Sat, 06 Jan 2018 02:27:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42012) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eXit8-0000NC-SG for bug-gnu-emacs@gnu.org; Sat, 06 Jan 2018 02:27:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eXit7-0001BE-4G for bug-gnu-emacs@gnu.org; Sat, 06 Jan 2018 02:27:30 -0500 Received: from mail-qk0-x22f.google.com ([2607:f8b0:400d:c09::22f]:44288) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eXit6-0001A5-PF for bug-gnu-emacs@gnu.org; Sat, 06 Jan 2018 02:27:29 -0500 Received: by mail-qk0-x22f.google.com with SMTP id v188so8641711qkh.11 for ; Fri, 05 Jan 2018 23:27:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=caerDesN+ZFAI4+5HkGxgQppa32AixqLjekHS1C3FYM=; b=muOtdUx0ZP2n2T/cBCljCP0PATCNtuvmCQ4svspKS/v/VXueUZg+z+MxMpIWaGP/jT BjMIKWYkP/2OGab8nxAXc/v7KUEVwn0kOnP6tTNJikUuhKQ5usb/6Xhl/ZqP+ZB0TAdZ lTEKA1UbhdZCgi1K+DIjpowEUaYHIjVJSWwd0WhtD4d2O2BbLXQuImMN9WEYpLTLHeiA K7s7QIO/i8rfzflLm7AYB11L/D0T8icJuN2OuIP1KsQip6nWEmCX7CydqGxUJtRZ6uV7 wkOqoVseBxv+zK0ZXBGL5y3GDlwcyB6WAmNCUjCyuDKNEySSyvUAKJ2fszMAMAagzZUm Eyzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=caerDesN+ZFAI4+5HkGxgQppa32AixqLjekHS1C3FYM=; b=bBor3Et4Jy6NYE2F1QasACfV6DTzRwfEg8s+DeQp3+X1T9CaOy/KoGnTbkZW6duXl9 wBdRFSr3iCk5On+wVBizu6FMpwQe3MWMnEQFJojYymZTJfcLHi87bRTpPocFVKcRkr3z KkMRzO0q2/JEilXyEIM7sxDd469ZMUlVtjHIGkAf8s4PG8lLThcvKEsxXI1sX6UlMA/K 6uok5AYleV2nJiTDF1Vh9bPnPhCDgN8xMTn64RiiKKe9uQGFh2eU7e+SFNd43Zfa4yJE za1r3aKBs1ILKv9+KRE1URiylrYZ1zPcgrD8LT0Hy0AhrIY0E7tstyDU88M4hSDRZCNl vJog== X-Gm-Message-State: AKwxyteQ/KAnTK7Ao8/yOMiqTFz9IdZmy2KBFpyD2JcKBkT0rN3TQEOw /87Afp0n4BpbCjFugLbWi6ziq8zi7ZzO64JFTyy6Ag== X-Google-Smtp-Source: ACJfBotzy4xmXC7xRDArN0mWtB/wUky32PTcb4l9fziLanJWuYPzDWonSHsYIIqqbrrLdu3rwy3l/yK4z8ac/puAbPw= X-Received: by 10.55.43.198 with SMTP id r67mr7334376qkr.292.1515223647767; Fri, 05 Jan 2018 23:27:27 -0800 (PST) MIME-Version: 1.0 Received: by 10.237.43.166 with HTTP; Fri, 5 Jan 2018 23:27:27 -0800 (PST) In-Reply-To: References: From: Shuguang Sun Date: Sat, 6 Jan 2018 15:27:27 +0800 Message-ID: Subject: Re: icomplete re-build the completion table after each key press To: bug-gnu-emacs@gnu.org Content-Type: multipart/mixed; boundary="001a1147a9f24834ba0562167fe3" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --001a1147a9f24834ba0562167fe3 Content-Type: multipart/alternative; boundary="001a1147a9f24834b70562167fe1" --001a1147a9f24834b70562167fe1 Content-Type: text/plain; charset="UTF-8" Dear Emacs developers: I tired to find out the issues and provide patches to minibuffer.el and icomplete.el. What is the issue? 1. The function completion--flush-all-sorted-completions defined in minibuffer.el is always called without parameters which make it flush the cached table every time. 2. The function completion--flush-all-sorted-completions is added to the hook of after-change-functions, however, (jit-lock-after-change t) in the hook will trigger flush every time 3. The local cached table completion-all-sorted-completions is not used actually. The minibuffer-completion-table is called in a lot of function which will rebuild the table instead of the chached table. It has small impact on the performance of 1. operation in memory, e.g., describe-variable, describe-function 2. filename in local driver/PC 3. filename in tramp where it works on the ls output instead of trying to re-do the ls command on the server Those operations are fast and time for fuctions symbolp and functionp is ignorable. However, if it works under some slow instance, for example, a mapped driver in Window with slow net work, the performance is bad as the completion tries to list the directory in each call of completion--do-completion and icomplete-completions, and some other completion functions. The patches try to use the cached table completion-all-sorted-completions-table as much as possible, and for filename completion, it caches the list of files in the base directory (file-name-directory). https://github.com/ShuguangSun/emacsimprovement/tree/master/bug%2329833 On Sun, Dec 24, 2017 at 4:58 PM, Shuguang Sun wrote: > Hi, > > The icomplete re-build the completion table 'completion-all-sorted-completions' > after each key press. However, I think it should keep the > 'completion-all-sorted-completions' builded at beging and re-use it > afterwise. > > At least in Windows, GNU Emacs 27.0.50 (build 1, x86_64-w64-mingw32) of > 2017-12-09. > > How to repeat it: > 1: emacs -q > 2: icomplete-mode (we can't find anything wired unless we call > dired-do-copy on a network-mapped remote file under a slow network) > 3: modify function icomplete-exhibit to log as below: > insert '(print completion-all-sorted-completions)' between > '(save-excursion (goto-char (point-max))' and '(if (and (or > icomplete-show-matches-on-no-input', and C-M-x. > Then it will print 'nil' after each key press which means > 'completion-all-sorted-completions' is empty. > 4. modify function icomplete-completions to log as below: > insert '(print completion-all-sorted-completions)' at the begining of > the function body, prior to "(let* ((minibuffer-completion-table > candidates)'. > Then it will print 'nil' after each key press which means > 'completion-all-sorted-completions' is empty. > > Thereby, it has to call "(comps (completion-all-sorted-completions > (icomplete--field-beg) (icomplete--field-end)))' in function > icomplete-completions to re-build the completiong table after each key > press. > > Thanks *Stefan Monnier *to point out it should be a bug in the help > maillist. > > By the way, '(sequencep (icomplete--completion-table))' in function > icomplete-exhibit always returns 'nil', and the icomplete-delay-completions-threshold > actually has no effect. > (print (icomplete--completion-table)) just returns the table name > (function to generate the table), but not the content of the table. > > By the way again, if call dired-do-copy or dired-do-rename, > icomplete-max-delay-chars counts the whole path of the file because, the > path has been put to the minibuffer automatically. This may not a bug, > however, I think it should be documented. > > > Best Regards, > Shuguang Sun > --001a1147a9f24834b70562167fe1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Dear Emacs developers:

I tir= ed to find out the issues and provide patches to minibuffer.el and icomplet= e.el.

What is the issue?
1. The function= completion--flush-all-sorted-completions defined in minibuffer.el is alway= s called without parameters which make it flush the cached table every time= .
2. The function completion--flush-all-sorted-completions is add= ed to the hook of after-change-functions, however, (jit-lock-after-change t= ) in the hook will trigger flush every time
3. The local cached t= able completion-all-sorted-completions is not used actually. The minibuffer= -completion-table is called in a lot of function which will rebuild the tab= le instead of the chached table.

It has small impa= ct on the performance of
1. operation in memory, e.g., descr= ibe-variable, describe-function
2. filename in local driver/P= C
3. filename in tramp where it works on the ls output instea= d of trying to re-do the ls command on the server
Those operation= s are fast and time for fuctions symbolp and functionp is ignorable.

However, if it works under some slow instance, for e= xample, a mapped driver in Window with slow net work, the performance is ba= d as the completion tries to list the directory in each call of completion-= -do-completion and icomplete-completions, and some other completion functio= ns.

The patches try to use the cached table comple= tion-all-sorted-completions-table as much as possible, and for filename com= pletion, it caches the list of files in the base directory (file-name-direc= tory).









On Sun, D= ec 24, 2017 at 4:58 PM, Shuguang Sun <shuguang@gmail.com> w= rote:
Hi,

The icomplete re-build the completion table 'completion= -all-sorted-completions' after each key press. However, I think it= should keep the 'completion-all-sorted-completions' builded a= t beging and re-use it afterwise.

At least in Wind= ows, GNU Emacs 27.0.50 (build 1, x86_64-w64-mingw32) of 2017-12-09.

How to repeat it:
1: emacs -q
2: = icomplete-mode (we can't find anything wired unless we call dired-do-co= py on a network-mapped remote file under a slow network)
3: m= odify function icomplete-exhibit to log as below:
=C2=A0=C2=A0=C2= =A0 insert '(print completion-all-sorted-completions)' between= '(save-excursion=C2=A0 (goto-char (point-max))' and '(if (and = (or icomplete-show-matches-on-no-input', and C-M-x.
=C2=A0=C2=A0=C2=A0 Then it will print 'nil' after each key press w= hich means 'completion-all-sorted-completions' is empty.
=
4. modify function icomplete-completions to log as below:
=C2=A0=C2=A0=C2=A0 insert '(print completion-all-sorted-complet= ions)' at the begining of the function body, prior to "(let* ((mi= nibuffer-completion-table candidates)'.
=C2=A0=C2=A0=C2= =A0 Then it will print 'nil' after each key press which means '= completion-all-sorted-completions' is empty.

<= div>Thereby, it has to call "(comps (completion-all-sorted-comple= tions=C2=A0=C2=A0=C2=A0=C2=A0 (icomplete--field-beg) (icomplete--field-end)= ))' in function icomplete-completions to re-build the completiong table= after each key press.

Thanks Stefan Monnier to point out it should be a bug in the help maillist.

By the way, '(sequencep (icomplete--completion-table))= ' in function icomplete-exhibit always returns 'nil', and = the icomplete-delay-completions-threshold actually has no effect.
=
(print (icomplete--completion-table)) just returns the table nam= e (function to generate the table), but not the content of the table.
=

By the way again, if call dired-do-copy or dired-do-ren= ame, icomplete-max-delay-chars counts the whole path of the file because, t= he path has been put to the minibuffer automatically. This may not a bug, h= owever, I think it should be documented.


Best Regards,
Shuguang Sun

--001a1147a9f24834b70562167fe1-- --001a1147a9f24834ba0562167fe3 Content-Type: application/octet-stream; name="minibuffer.el.patch" Content-Disposition: attachment; filename="minibuffer.el.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jc31177h0 ZGlmZiAtLWdpdCBhL2xpc3AvbWluaWJ1ZmZlci5lbCBiL2xpc3AvbWluaWJ1ZmZlci5lbA0KaW5k ZXggNGQxNGIyNjQxZi4uYTkyMWRmZGJhNCAxMDA2NDQNCi0tLSBhL2xpc3AvbWluaWJ1ZmZlci5l bA0KKysrIGIvbGlzcC9taW5pYnVmZmVyLmVsDQpAQCAtMSw2ICsxLDYgQEANCiA7OzsgbWluaWJ1 ZmZlci5lbCAtLS0gTWluaWJ1ZmZlciBjb21wbGV0aW9uIGZ1bmN0aW9ucyAtKi0gbGV4aWNhbC1i aW5kaW5nOiB0IC0qLQ0KIA0KLTs7IENvcHlyaWdodCAoQykgMjAwOC0yMDE4IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLg0KKzs7IENvcHlyaWdodCAoQykgMjAwOC0yMDE3IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KIA0KIDs7IEF1dGhvcjogU3RlZmFuIE1vbm5pZXIgPG1v bm5pZXJAaXJvLnVtb250cmVhbC5jYT4NCiA7OyBQYWNrYWdlOiBlbWFjcw0KQEAgLTk3Nyw2ICs5 NzcsMTAgQEAgY29tcGxldGlvbi0tcmVwbGFjZQ0KICAgICAodW5sZXNzICh6ZXJvcCBzdWZmaXgt bGVuKQ0KICAgICAgIChzZXRxIGVuZCAoLSBlbmQgc3VmZml4LWxlbikpDQogICAgICAgKHNldHEg bmV3dGV4dCAoc3Vic3RyaW5nIG5ld3RleHQgMCAoLSBzdWZmaXgtbGVuKSkpKQ0KKyAgICA7OyBB ZnRlciB0aGlzIGFtZW5kbWVudCwgdGhlIG5ld3RleHQgaGFzIG5vIGRpcmVjdG9yeQ0KKyAgICAo aWYgbWluaWJ1ZmZlci1jb21wbGV0aW5nLWZpbGUtbmFtZQ0KKyAgICAgICAgKHNldHEgbmV3dGV4 dCAoY29uY2F0IChmaWxlLW5hbWUtZGlyZWN0b3J5IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3Bl cnRpZXMgYmVnIGVuZCkpIG5ld3RleHQpKQ0KKyAgICAgICAgKQ0KICAgICAoZ290by1jaGFyIGJl ZykNCiAgICAgKGxldCAoKGxlbmd0aCAoLSBlbmQgYmVnKSkpICAgICAgICAgO1JlYWQgYGVuZCcg YmVmb3JlIHdlIGluc2VydCB0aGUgdGV4dC4NCiAgICAgICAoaW5zZXJ0LWFuZC1pbmhlcml0IG5l d3RleHQpDQpAQCAtOTk5LDcgKzEwMDMsMTEgQEAgY29tcGxldGlvbi0tY3ljbGUtdGhyZXNob2xk DQogICAgICAgICAgKG92ZXIgKGNvbXBsZXRpb24tLWNhdGVnb3J5LW92ZXJyaWRlIGNhdCAnY3lj bGUpKSkNCiAgICAgKGlmIG92ZXIgKGNkciBvdmVyKSBjb21wbGV0aW9uLWN5Y2xlLXRocmVzaG9s ZCkpKQ0KIA0KLShkZWZ2YXItbG9jYWwgY29tcGxldGlvbi1hbGwtc29ydGVkLWNvbXBsZXRpb25z IG5pbCkNCis7OyBJZiB0aGVyZSBpcyBhIHByb3BlciBjb21wbGV0aW9uLWFsbC1zb3J0ZWQtY29t cGxldGlvbnMtdGFibGUsDQorOzsgZnVjdGlvbiBjb21wbGV0aW9uLWFsbC1zb3J0ZWQtY29tcGxl dGlvbnMgbmVlZHMgbm90IHRvIGJlIGNhbGxlZA0KKyhkZWZ2YXItbG9jYWwgY29tcGxldGlvbi1h bGwtc29ydGVkLWNvbXBsZXRpb25zLXRhYmxlIG5pbCkNCis7OyBUaGUgc3RyaW5nIHRvIGJ1aWxk IGNvbXBsZXRpb24tYWxsLXNvcnRlZC1jb21wbGV0aW9ucy10YWJsZQ0KKyhkZWZ2YXItbG9jYWwg Y29tcGxldGlvbi0tYWxsLXNvcnRlZC1jb21wbGV0aW9ucy1uYW1lIG5pbCkNCiAoZGVmdmFyLWxv Y2FsIGNvbXBsZXRpb24tLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMtbG9jYXRpb24gbmlsKQ0KIChk ZWZ2YXIgY29tcGxldGlvbi1jeWNsaW5nIG5pbCkNCiANCkBAIC0xMDMwLDE1ICsxMDM4LDE4IEBA IGNvbXBsZXRpb24tLWRvLWNvbXBsZXRpb24NCiBUUlktQ09NUExFVElPTi1GVU5DVElPTiBpcyBh IGZ1bmN0aW9uIHRvIHVzZSBpbiBwbGFjZSBvZiBgdHJ5LWNvbXBsZXRpb24nLg0KIEVYUEVDVC1F WEFDVCwgaWYgbm9uLW5pbCwgbWVhbnMgdGhhdCB0aGVyZSBpcyBubyBuZWVkIHRvIHRlbGwgdGhl IHVzZXINCiB3aGVuIHRoZSBidWZmZXIncyB0ZXh0IGlzIGFscmVhZHkgYW4gZXhhY3QgbWF0Y2gu Ig0KLSAgKGxldCogKChzdHJpbmcgKGJ1ZmZlci1zdWJzdHJpbmcgYmVnIGVuZCkpDQorICAobGV0 KiAoKHN0cmluZyAoaWYgbWluaWJ1ZmZlci1jb21wbGV0aW5nLWZpbGUtbmFtZQ0KKyAgICAgICAg ICAgICAgICAgICAgIChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5IChidWZmZXItc3Vic3RyaW5nLW5v LXByb3BlcnRpZXMgYmVnIGVuZCkpDQorICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3Ry aW5nLW5vLXByb3BlcnRpZXMgYmVnIGVuZCkpKQ0KICAgICAgICAgIChtZCAoY29tcGxldGlvbi0t ZmllbGQtbWV0YWRhdGEgYmVnKSkNCi0gICAgICAgICAoY29tcCAoZnVuY2FsbCAob3IgdHJ5LWNv bXBsZXRpb24tZnVuY3Rpb24NCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRp b24tdHJ5LWNvbXBsZXRpb24pDQotICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nDQotICAg ICAgICAgICAgICAgICAgICAgICAgbWluaWJ1ZmZlci1jb21wbGV0aW9uLXRhYmxlDQotICAgICAg ICAgICAgICAgICAgICAgICAgbWluaWJ1ZmZlci1jb21wbGV0aW9uLXByZWRpY2F0ZQ0KLSAgICAg ICAgICAgICAgICAgICAgICAgICgtIChwb2ludCkgYmVnKQ0KLSAgICAgICAgICAgICAgICAgICAg ICAgIG1kKSkpDQorICAgICAgICAgOzsgY29tcGxldGlvbi1hbGwtc29ydGVkLWNvbXBsZXRpb25z IHRha2VzIGNhcmUgYWJvdXQgdGhlIHByZWRpY3QNCisgICAgICAgICAoY29tcCAoY29tcGxldGlv bi10cnktY29tcGxldGlvbg0KKyAgICAgICAgICAgICAgICBzdHJpbmcNCisgICAgICAgICAgICAg ICAgKGNvbXBsZXRpb24tYWxsLXNvcnRlZC1jb21wbGV0aW9ucyBiZWcgZW5kKQ0KKyAgICAgICAg ICAgICAgICBuaWwNCisgICAgICAgICAgICAgICAgKGxlbmd0aCBzdHJpbmcpDQorICAgICAgICAg ICAgICAgIG1kKSkNCisgICAgICAgICApDQogICAgIChjb25kDQogICAgICAoKG51bGwgY29tcCkN CiAgICAgICAobWluaWJ1ZmZlci1oaWRlLWNvbXBsZXRpb25zKQ0KQEAgLTEwODAsOCArMTA5MSwx MyBAQCBjb21wbGV0aW9uLS1kby1jb21wbGV0aW9uDQogDQogICAgICAgICAgIDs7IEl0IGRpZCBm aW5kIGEgbWF0Y2guICBEbyB3ZSBtYXRjaCBzb21lIHBvc3NpYmlsaXR5IGV4YWN0bHkgbm93Pw0K ICAgICAgICAgICAobGV0KiAoKGV4YWN0ICh0ZXN0LWNvbXBsZXRpb24gY29tcGxldGlvbg0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaWJ1ZmZlci1jb21wbGV0 aW9uLXRhYmxlDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5p YnVmZmVyLWNvbXBsZXRpb24tcHJlZGljYXRlKSkNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChpZiAoY29uc3AgY29tcGxldGlvbi1hbGwtc29ydGVkLWNvbXBsZXRp b25zLXRhYmxlKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbXBsZXRpb24tYWxsLXNvcnRlZC1jb21wbGV0aW9ucy10YWJsZQ0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5pYnVmZmVyLWNvbXBsZXRpb24tdGFibGUN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChub3QgKGNvbnNwIGNvbXBsZXRp b24tYWxsLXNvcnRlZC1jb21wbGV0aW9ucy10YWJsZSkpDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWluaWJ1ZmZlci1jb21wbGV0aW9uLXByZWRpY2F0ZSkN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpDQogICAgICAgICAg ICAgICAgICAodGhyZXNob2xkIChjb21wbGV0aW9uLS1jeWNsZS10aHJlc2hvbGQgbWQpKQ0KICAg ICAgICAgICAgICAgICAgKGNvbXBzDQogICAgICAgICAgICAgICAgICAgOzsgQ2hlY2sgdG8gc2Vl IGlmIHdlIHdhbnQgdG8gZG8gY3ljbGluZy4gIFdlIGRvIGl0DQpAQCAtMTA5NSwxMiArMTExMSwx NyBAQCBjb21wbGV0aW9uLS1kby1jb21wbGV0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAob3IgKG5vdCBjb21wbGV0ZWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKDwgKGNhciAoY29tcGxldGlvbi1ib3VuZGFyaWVzDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBjb21wbGV0aW9uIDAgY29tcC1wb3MpDQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaWJ1ZmZlci1jb21w bGV0aW9uLXRhYmxlDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bWluaWJ1ZmZlci1jb21wbGV0aW9uLXByZWRpY2F0ZQ0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChpZiAoY29uc3AgY29tcGxldGlvbi1hbGwtc29ydGVkLWNvbXBs ZXRpb25zLXRhYmxlKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb21wbGV0aW9uLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMtdGFibGUNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmlidWZmZXItY29tcGxldGlvbi10 YWJsZQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAobm90IChjb25zcCBj b21wbGV0aW9uLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMtdGFibGUpKQ0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5pYnVmZmVyLWNvbXBsZXRpb24tcHJl ZGljYXRlKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIpKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC1wb3MpKSkNCi0gICAgICAg ICAgICAgICAgICAgKGNvbXBsZXRpb24tYWxsLXNvcnRlZC1jb21wbGV0aW9ucyBiZWcgZW5kKSkp KQ0KLSAgICAgICAgICAgIChjb21wbGV0aW9uLS1mbHVzaC1hbGwtc29ydGVkLWNvbXBsZXRpb25z KQ0KKyAgICAgICAgICAgICAgICAgICAgKGNvbXBsZXRpb24tYWxsLXNvcnRlZC1jb21wbGV0aW9u cyBiZWcgZW5kKSkpKQ0KKyAgICAgICAgICAgIDs7IGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gZmx1 c2ggdGFibGVzIGZvciBlYWNoIGNhbGwNCisgICAgICAgICAgICA7OyAoY29tcGxldGlvbi0tZmx1 c2gtYWxsLXNvcnRlZC1jb21wbGV0aW9ucykNCiAgICAgICAgICAgICAoY29uZA0KICAgICAgICAg ICAgICAoKGFuZCAoY29uc3AgKGNkciBjb21wcykpIDs7IFRoZXJlJ3Mgc29tZXRoaW5nIHRvIGN5 Y2xlLg0KICAgICAgICAgICAgICAgICAgICAobm90IChpZ25vcmUtZXJyb3JzDQpAQCAtMTExMCw3 ICsxMTMxLDExIEBAIGNvbXBsZXRpb24tLWRvLWNvbXBsZXRpb24NCiAgICAgICAgICAgICAgIDs7 IE5vdCBtb3JlIHRoYW4gY29tcGxldGlvbi1jeWNsZS10aHJlc2hvbGQgcmVtYWluaW5nDQogICAg ICAgICAgICAgICA7OyBjb21wbGV0aW9uczogbGV0J3MgY3ljbGUuDQogICAgICAgICAgICAgICAo c2V0cSBjb21wbGV0ZWQgdCBleGFjdCB0KQ0KLSAgICAgICAgICAgICAgKGNvbXBsZXRpb24tLWNh Y2hlLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMgYmVnIGVuZCBjb21wcykNCisgICAgICAgICAgICAg IDs7IEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gZmx1c2ggdGFibGVzIGZvciBlYWNoIGNhbGwNCisg ICAgICAgICAgICAgIDs7IFdvdWxkIGl0IGJlIG1vcmUgZWZmaWNpZW50IHRvIHJlcGxhY2UgdGhl IGNhY2hlZCB0YWJsZQ0KKyAgICAgICAgICAgICAgOzsgd2l0aCB0aGUgbmV3IHJlc3RyaWN0ZWQg b25lPw0KKyAgICAgICAgICAgICAgOzsgRm9yIGZpbGVuYW1lIGNvbXBsZXRpb24sIGl0IGlzIGJh c2VkIG9uIGJhc2UgZGlyZWN0b3J5Lg0KKyAgICAgICAgICAgICAgKGNvbXBsZXRpb24tYWxsLXNv cnRlZC1jb21wbGV0aW9ucyBiZWcgZW5kKQ0KICAgICAgICAgICAgICAgKG1pbmlidWZmZXItZm9y Y2UtY29tcGxldGUgYmVnIGVuZCkpDQogICAgICAgICAgICAgIChjb21wbGV0ZWQNCiAgICAgICAg ICAgICAgIDs7IFdlIGNvdWxkIGFsc28gZGVjaWRlIHRvIHJlZnJlc2ggdGhlIGNvbXBsZXRpb25z LA0KQEAgLTExNTksNyArMTE4NCw5IEBAIGNvbXBsZXRpb24tLWluLXJlZ2lvbi0xDQogICA7OyBt YXJrIHRoZSBjb21wbGV0aW9uIGJ1ZmZlciBvYnNvbGV0ZS4NCiAgIChzZXRxIHRoaXMtY29tbWFu ZCAnY29tcGxldGlvbi1hdC1wb2ludCkNCiAgICh1bmxlc3MgKGVxICdjb21wbGV0aW9uLWF0LXBv aW50IGxhc3QtY29tbWFuZCkNCi0gICAgKGNvbXBsZXRpb24tLWZsdXNoLWFsbC1zb3J0ZWQtY29t cGxldGlvbnMpDQorICAgIDs7IGZsdXNoIHdpdGggbm8gYXJncyB3aWxsIGFsd2F5cyBmbHVzaCB0 aGUgY29tcGxldGlvbiB0YWJsZQ0KKyAgICA7OyBub3QgbmVjZXNzYXJ5IHRvIGZsdXNoIGhlcmUN CisgICAgOzsgKGNvbXBsZXRpb24tLWZsdXNoLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMpDQogICAg IChzZXRxIG1pbmlidWZmZXItc2Nyb2xsLXdpbmRvdyBuaWwpKQ0KIA0KICAgKGNvbmQNCkBAIC0x MTc3LDcgKzEyMDQsNyBAQCBjb21wbGV0aW9uLS1pbi1yZWdpb24tMQ0KIAkgICAgKHNjcm9sbC11 cCkpKQ0KICAgICAgICAgbmlsKSkpDQogICAgOzsgSWYgd2UncmUgY3ljbGluZywga2VlcCBvbiBj eWNsaW5nLg0KLSAgICgoYW5kIGNvbXBsZXRpb24tY3ljbGluZyBjb21wbGV0aW9uLWFsbC1zb3J0 ZWQtY29tcGxldGlvbnMpDQorICAgKChhbmQgY29tcGxldGlvbi1jeWNsaW5nIGNvbXBsZXRpb24t YWxsLXNvcnRlZC1jb21wbGV0aW9ucy10YWJsZSkNCiAgICAgKG1pbmlidWZmZXItZm9yY2UtY29t cGxldGUgYmVnIGVuZCkNCiAgICAgdCkNCiAgICAodCAocGNhc2UgKGNvbXBsZXRpb24tLWRvLWNv bXBsZXRpb24gYmVnIGVuZCkNCkBAIC0xMTg1LDIwICsxMjEyLDM5IEBAIGNvbXBsZXRpb24tLWlu LXJlZ2lvbi0xDQogICAgICAgICAoXyAgICAgdCkpKSkpDQogDQogKGRlZnVuIGNvbXBsZXRpb24t LWNhY2hlLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMgKGJlZyBlbmQgY29tcHMpDQotICAoYWRkLWhv b2sgJ2FmdGVyLWNoYW5nZS1mdW5jdGlvbnMNCi0gICAgICAgICAgICAnY29tcGxldGlvbi0tZmx1 c2gtYWxsLXNvcnRlZC1jb21wbGV0aW9ucyBuaWwgdCkNCisgIDs7IFRoZSB2YWx1ZSBvZiBhZnRl ci1jaGFuZ2UtZnVuY3Rpb25zIGlzIChqaXQtbG9jay1hZnRlci1jaGFuZ2UgdCksDQorICA7OyBp dCBtYWtlcyB0aGUgZmx1c2ggY2FsbGVkIHdpdGhvdXQgcGFyYW1ldGVycyBldmVyeSB0aW1lDQor ICA7OyAoYWRkLWhvb2sgJ2FmdGVyLWNoYW5nZS1mdW5jdGlvbnMNCisgIDs7ICAgICAgICAgICAn Y29tcGxldGlvbi0tZmx1c2gtYWxsLXNvcnRlZC1jb21wbGV0aW9ucyBuaWwgdCkNCiAgIChzZXRx IGNvbXBsZXRpb24tLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMtbG9jYXRpb24NCiAgICAgICAgIChj b25zIChjb3B5LW1hcmtlciBiZWcpIChjb3B5LW1hcmtlciBlbmQpKSkNCi0gIChzZXRxIGNvbXBs ZXRpb24tYWxsLXNvcnRlZC1jb21wbGV0aW9ucyBjb21wcykpDQorICA7OyBUaGUgc3RyaW5nIHRv IGJ1aWxkIHRoZSBjb21wbGV0aW9uIHRhYmxlDQorICAoc2V0cSBjb21wbGV0aW9uLS1hbGwtc29y dGVkLWNvbXBsZXRpb25zLW5hbWUNCisgICAgICAgIChpZiBtaW5pYnVmZmVyLWNvbXBsZXRpbmct ZmlsZS1uYW1lDQorICAgICAgICAgICAgKGZpbGUtbmFtZS1kaXJlY3RvcnkgKGJ1ZmZlci1zdWJz dHJpbmctbm8tcHJvcGVydGllcyBiZWcgZW5kKSkNCisgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJp bmctbm8tcHJvcGVydGllcyBiZWcgZW5kKSkpDQorICAoc2V0cSBjb21wbGV0aW9uLWFsbC1zb3J0 ZWQtY29tcGxldGlvbnMtdGFibGUgY29tcHMpKQ0KIA0KIChkZWZ1biBjb21wbGV0aW9uLS1mbHVz aC1hbGwtc29ydGVkLWNvbXBsZXRpb25zICgmb3B0aW9uYWwgc3RhcnQgZW5kIF9sZW4pDQogICAo dW5sZXNzIChhbmQgc3RhcnQgZW5kDQotICAgICAgICAgICAgICAgKG9yICg+IHN0YXJ0IChjZHIg Y29tcGxldGlvbi0tYWxsLXNvcnRlZC1jb21wbGV0aW9ucy1sb2NhdGlvbikpDQotICAgICAgICAg ICAgICAgICAgICg8IGVuZCAoY2FyIGNvbXBsZXRpb24tLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMt bG9jYXRpb24pKSkpDQorICAgICAgICAgICAgICAgY29tcGxldGlvbi0tYWxsLXNvcnRlZC1jb21w bGV0aW9ucy1sb2NhdGlvbg0KKyAgICAgICAgICAgICAgIGNvbXBsZXRpb24tLWFsbC1zb3J0ZWQt Y29tcGxldGlvbnMtbmFtZQ0KKyAgICAgICAgICAgICAgIDs7IG5vdCBzdXJlIHdoaWNoIGlzIG1v cmUgZWZmaWNpZW50IHRvIGNvbXBhcmUgbG9jYXRpb24gb3IgdGhlIHN0cmluZw0KKyAgICAgICAg ICAgICAgIChub3QgKG9yICg+IHN0YXJ0IChjZHIgY29tcGxldGlvbi0tYWxsLXNvcnRlZC1jb21w bGV0aW9ucy1sb2NhdGlvbikpDQorICAgICAgICAgICAgICAgICAgICAgICAgKDwgZW5kIChjYXIg Y29tcGxldGlvbi0tYWxsLXNvcnRlZC1jb21wbGV0aW9ucy1sb2NhdGlvbikpKSkNCisgICAgICAg ICAgICAgICAoaWYgbWluaWJ1ZmZlci1jb21wbGV0aW5nLWZpbGUtbmFtZQ0KKyAgICAgICAgICAg ICAgICAgICAobGV0ICgoc3RyYyAoY29tcGFyZS1zdHJpbmdzDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb21wbGV0aW9uLS1hbGwtc29ydGVkLWNvbXBsZXRpb25zLW5hbWUgbmls IG5pbA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUtbmFtZS1kaXJlY3Rv cnkgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBzdGFydCBlbmQpKSBuaWwgbmlsIHQp KSkNCisgICAgICAgICAgICAgICAgICAgICAoZXEgdCBzdHJjKSkNCisgICAgICAgICAgICAgICAg IChlcSAwIChzdHJpbmctbWF0Y2gtcCAocmVnZXhwLXF1b3RlIGNvbXBsZXRpb24tLWFsbC1zb3J0 ZWQtY29tcGxldGlvbnMtbmFtZSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpKQ0KKyAgICAg ICAgICAgICAgICAgKSkNCiAgICAgKHJlbW92ZS1ob29rICdhZnRlci1jaGFuZ2UtZnVuY3Rpb25z DQogICAgICAgICAgICAgICAgICAnY29tcGxldGlvbi0tZmx1c2gtYWxsLXNvcnRlZC1jb21wbGV0 aW9ucyB0KQ0KICAgICAoc2V0cSBjb21wbGV0aW9uLWN5Y2xpbmcgbmlsKQ0KLSAgICAoc2V0cSBj b21wbGV0aW9uLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMgbmlsKSkpDQorICAgIChzZXRxIGNvbXBs ZXRpb24tLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMtbmFtZSBuaWwpDQorICAgIChzZXRxIGNvbXBs ZXRpb24tYWxsLXNvcnRlZC1jb21wbGV0aW9ucy10YWJsZSBuaWwpKSkNCiANCiAoZGVmdW4gY29t cGxldGlvbi0tbWV0YWRhdGEgKHN0cmluZyBiYXNlIG1kLWF0LXBvaW50IHRhYmxlIHByZWQpDQog ICA7OyBMaWtlIGNvbXBsZXRpb24tbWV0YWRhdGEsIGJ1dCBmb3IgdGhlIHNwZWNpZmljIGNhc2Ug b2YgZ2V0dGluZyB0aGUNCkBAIC0xMjA5LDIxICsxMjU1LDQ2IEBAIGNvbXBsZXRpb24tLW1ldGFk YXRhDQogICAgICAgKGNvbXBsZXRpb24tbWV0YWRhdGEgKHN1YnN0cmluZyBzdHJpbmcgMCBiYXNl KSB0YWJsZSBwcmVkKSkpKQ0KIA0KIChkZWZ1biBjb21wbGV0aW9uLWFsbC1zb3J0ZWQtY29tcGxl dGlvbnMgKCZvcHRpb25hbCBzdGFydCBlbmQpDQotICAob3IgY29tcGxldGlvbi1hbGwtc29ydGVk LWNvbXBsZXRpb25zDQorDQorICA7OyBjb21wbGV0aW9uLS1mbHVzaC1hbGwtc29ydGVkLWNvbXBs ZXRpb25zIGlzIGFsd2F5cyBjYWxsZWQgd2l0aG91dCBhcmdzLi4uDQorICA7OyB3aGljaCBtZWFu cyBpdCB3aWxsIGFsd2F5cyBmbHVzaCB0aGUgY29tcGxldGlvbiB0YWJsZQ0KKyAgOzsgdGhlcmVm b3JlLCBuZWVkIHRvIHRha2UgY2FyZSBhYm91dCBpdCBvdXQgdGhlcmUNCisgICh1bmxlc3MgKGFu ZCBzdGFydCBlbmQNCisgICAgICAgICAgICAgICBjb21wbGV0aW9uLS1hbGwtc29ydGVkLWNvbXBs ZXRpb25zLWxvY2F0aW9uDQorICAgICAgICAgICAgICAgY29tcGxldGlvbi0tYWxsLXNvcnRlZC1j b21wbGV0aW9ucy1uYW1lDQorICAgICAgICAgICAgICAgOzsgbm90IHN1cmUgd2hpY2ggaXMgbW9y ZSBzdWZmaWNpZW50LCB0byBjb21wYXJlIGxvY2F0aW9uIG9yIHN0cmluZw0KKyAgICAgICAgICAg ICAgIChub3QgKG9yICg+IHN0YXJ0IChjZHIgY29tcGxldGlvbi0tYWxsLXNvcnRlZC1jb21wbGV0 aW9ucy1sb2NhdGlvbikpDQorICAgICAgICAgICAgICAgICAgICAgICAgKDwgZW5kIChjYXIgY29t cGxldGlvbi0tYWxsLXNvcnRlZC1jb21wbGV0aW9ucy1sb2NhdGlvbikpKSkNCisgICAgICAgICAg ICAgICAoaWYgbWluaWJ1ZmZlci1jb21wbGV0aW5nLWZpbGUtbmFtZQ0KKyAgICAgICAgICAgICAg ICAgICAobGV0ICgoc3RyYyAoY29tcGFyZS1zdHJpbmdzDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb21wbGV0aW9uLS1hbGwtc29ydGVkLWNvbXBsZXRpb25zLW5hbWUgbmlsIG5p bA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUtbmFtZS1kaXJlY3Rvcnkg KGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBzdGFydCBlbmQpKSBuaWwgbmlsIHQpKSkN CisgICAgICAgICAgICAgICAgICAgICAoZXEgdCBzdHJjKSkNCisgICAgICAgICAgICAgICAgIChl cSAwIChzdHJpbmctbWF0Y2gtcCAocmVnZXhwLXF1b3RlIGNvbXBsZXRpb24tLWFsbC1zb3J0ZWQt Y29tcGxldGlvbnMtbmFtZSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpKQ0KKyAgICAgICAg ICAgICAgICAgKSkNCisgICAgICAgIChjb21wbGV0aW9uLS1mbHVzaC1hbGwtc29ydGVkLWNvbXBs ZXRpb25zKQ0KKyAgICApDQorDQorICAob3IgY29tcGxldGlvbi1hbGwtc29ydGVkLWNvbXBsZXRp b25zLXRhYmxlDQogICAgICAgKGxldCogKChzdGFydCAob3Igc3RhcnQgKG1pbmlidWZmZXItcHJv bXB0LWVuZCkpKQ0KICAgICAgICAgICAgICAoZW5kIChvciBlbmQgKHBvaW50LW1heCkpKQ0KLSAg ICAgICAgICAgICAoc3RyaW5nIChidWZmZXItc3Vic3RyaW5nIHN0YXJ0IGVuZCkpDQorICAgICAg ICAgICAgIChzdHJpbmcgKGlmIG1pbmlidWZmZXItY29tcGxldGluZy1maWxlLW5hbWUNCisgICAg ICAgICAgICAgICAgICAgICAgICAgOzsgSXQgYnVpbGRzIHRoZSBjb21wbGV0aW9uIGxpc3Qgb24g dGhlIGRpcmVjdG9yeSwgaW5zdGVhZCB0aGUgc3Vic3RyaW5nDQorICAgICAgICAgICAgICAgICAg ICAgICAgIDs7IG5vdCBzdXJlIHdoaWNoIG9uZSBpcyBtb3JlIGVmZmVjaWVudA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAoZmlsZS1uYW1lLWRpcmVjdG9yeSAoYnVmZmVyLXN1YnN0cmluZy1u by1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpDQorICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVy LXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpKQ0KICAgICAgICAgICAgICAobWQg KGNvbXBsZXRpb24tLWZpZWxkLW1ldGFkYXRhIHN0YXJ0KSkNCiAgICAgICAgICAgICAgKGFsbCAo Y29tcGxldGlvbi1hbGwtY29tcGxldGlvbnMNCiAgICAgICAgICAgICAgICAgICAgc3RyaW5nDQog ICAgICAgICAgICAgICAgICAgIG1pbmlidWZmZXItY29tcGxldGlvbi10YWJsZQ0KICAgICAgICAg ICAgICAgICAgICBtaW5pYnVmZmVyLWNvbXBsZXRpb24tcHJlZGljYXRlDQotICAgICAgICAgICAg ICAgICAgICgtIChwb2ludCkgc3RhcnQpDQorICAgICAgICAgICAgICAgICAgIChsZW5ndGggc3Ry aW5nKQ0KICAgICAgICAgICAgICAgICAgICBtZCkpDQogICAgICAgICAgICAgIChsYXN0IChsYXN0 IGFsbCkpDQogICAgICAgICAgICAgIChiYXNlLXNpemUgKG9yIChjZHIgbGFzdCkgMCkpDQotICAg ICAgICAgICAgIChhbGwtbWQgKGNvbXBsZXRpb24tLW1ldGFkYXRhIChidWZmZXItc3Vic3RyaW5n LW5vLXByb3BlcnRpZXMNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0YXJ0IChwb2ludCkpDQorICAgICAgICAgICAgIDs7IHByZWRpY3QgYW5kIG1ldGF0ZGF0 YSB3b3JrcyBoZXJlDQorICAgICAgICAgICAgIChhbGwtbWQgKGNvbXBsZXRpb24tLW1ldGFkYXRh IHN0cmluZw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNl LXNpemUgbWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlu aWJ1ZmZlci1jb21wbGV0aW9uLXRhYmxlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1pbmlidWZmZXItY29tcGxldGlvbi1wcmVkaWNhdGUpKQ0KQEAgLTEyNTIs NiArMTMyMyw0MiBAQCBjb21wbGV0aW9uLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMNCiAgICAgICAg ICAgKGNvbXBsZXRpb24tLWNhY2hlLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMNCiAgICAgICAgICAg IHN0YXJ0IGVuZCAobmNvbmMgYWxsIGJhc2Utc2l6ZSkpKSkpKQ0KIA0KKzs7IFRoaXMgb25lIGFj Y2VwdGFibGUgY2FjaGVkIHRhYmxlLg0KKzs7IEl0IGNvdWxkIGJlIG1hZGUgaW50byBmdW5jdGlv biBjb21wbGV0aW9uLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMNCisoZGVmdW4gY29tcGxldGlvbi0t YWxsLXNvcnRlZC1jb21wbGV0aW9ucyAoc3RhcnQgbmFtZSB0YWJsZSkNCisNCisgIChsZXQqICgo bWQgKGNvbXBsZXRpb24tLWZpZWxkLW1ldGFkYXRhIHN0YXJ0KSkNCisgICAgICAgICAoYWxsIChj b21wbGV0aW9uLWFsbC1jb21wbGV0aW9ucw0KKyAgICAgICAgICAgICAgIG5hbWUgdGFibGUgbmls IChsZW5ndGggbmFtZSkgbWQpKQ0KKyAgICAgICAgIChsYXN0IChsYXN0IGFsbCkpDQorICAgICAg ICAgKGJhc2Utc2l6ZSAob3IgKGNkciBsYXN0KSAwKSkNCisgICAgICAgICAoYWxsLW1kIChjb21w bGV0aW9uLS1tZXRhZGF0YSBuYW1lDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYmFzZS1zaXplIG1kDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGFibGUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwpKQ0K KyAgICAgICAgIChzb3J0LWZ1biAoY29tcGxldGlvbi1tZXRhZGF0YS1nZXQgYWxsLW1kICdjeWNs ZS1zb3J0LWZ1bmN0aW9uKSkpDQorDQorICAgICh3aGVuIGxhc3QNCisgICAgICAoc2V0Y2RyIGxh c3QgbmlsKQ0KKw0KKyAgICAgIDs7IERlbGV0ZSBkdXBsaWNhdGVzOiBkbyBpdCBhZnRlciBzZXR0 aW5nIGxhc3QncyBjZHIgdG8gbmlsIChzbw0KKyAgICAgIDs7IGl0J3MgYSBwcm9wZXIgbGlzdCks IGFuZCBiZSBjYXJlZnVsIHRvIHJlc2V0IGBsYXN0JyBzaW5jZSBpdA0KKyAgICAgIDs7IG1heSBi ZSBhIGRpZmZlcmVudCBjb25zLWNlbGwuDQorICAgICAgKHNldHEgYWxsIChkZWxldGUtZHVwcyBh bGwpKQ0KKyAgICAgIChzZXRxIGxhc3QgKGxhc3QgYWxsKSkNCisNCisgICAgICAoc2V0cSBhbGwg KGlmIHNvcnQtZnVuIChmdW5jYWxsIHNvcnQtZnVuIGFsbCkNCisgICAgICAgICAgICAgICAgICA7 OyBQcmVmZXIgc2hvcnRlciBjb21wbGV0aW9ucywgYnkgZGVmYXVsdC4NCisgICAgICAgICAgICAg ICAgICAoc29ydCBhbGwgKGxhbWJkYSAoYzEgYzIpICg8IChsZW5ndGggYzEpIChsZW5ndGggYzIp KSkpKSkNCisgICAgICA7OyBQcmVmZXIgcmVjZW50bHkgdXNlZCBjb21wbGV0aW9ucy4NCisgICAg ICAod2hlbiAobWluaWJ1ZmZlcnApDQorICAgICAgICAobGV0ICgoaGlzdCAoc3ltYm9sLXZhbHVl IG1pbmlidWZmZXItaGlzdG9yeS12YXJpYWJsZSkpKQ0KKyAgICAgICAgICAoc2V0cSBhbGwgKHNv cnQgYWxsIChsYW1iZGEgKGMxIGMyKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KD4gKGxlbmd0aCAobWVtYmVyIGMxIGhpc3QpKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxlbmd0aCAobWVtYmVyIGMyIGhpc3QpKSkpKSkpKQ0KKyAgICAgICkpKQ0KKw0K Kw0KIChkZWZ1biBtaW5pYnVmZmVyLWZvcmNlLWNvbXBsZXRlLWFuZC1leGl0ICgpDQogICAiQ29t cGxldGUgdGhlIG1pbmlidWZmZXIgd2l0aCBmaXJzdCBvZiB0aGUgbWF0Y2hlcyBhbmQgZXhpdC4i DQogICAoaW50ZXJhY3RpdmUpDQpAQCAtMTI5Myw3ICsxNDAwLDcgQEAgbWluaWJ1ZmZlci1mb3Jj ZS1jb21wbGV0ZQ0KICAgICAgIChzZXRxIHRoaXMtY29tbWFuZCAnY29tcGxldGlvbi1hdC1wb2lu dCkgO0ZvciBjb21wbGV0aW9uLWluLXJlZ2lvbi4NCiAgICAgICA7OyBJZiBjb21wbGV0aW5nIGZp bGUgbmFtZXMsIChjYXIgYWxsKSBtYXkgYmUgYSBkaXJlY3RvcnksIHNvIHdlJ2Qgbm93DQogICAg ICAgOzsgaGF2ZSBhIG5ldyBzZXQgb2YgcG9zc2libGUgY29tcGxldGlvbnMgYW5kIG1pZ2h0IHdh bnQgdG8gcmVzZXQNCi0gICAgICA7OyBjb21wbGV0aW9uLWFsbC1zb3J0ZWQtY29tcGxldGlvbnMg dG8gbmlsLCBidXQgd2UgcHJlZmVyIG5vdCB0bywNCisgICAgICA7OyBjb21wbGV0aW9uLWFsbC1z b3J0ZWQtY29tcGxldGlvbnMtdGFibGUgdG8gbmlsLCBidXQgd2UgcHJlZmVyIG5vdCB0bywNCiAg ICAgICA7OyBzbyB0aGF0IHJlcGVhdGVkIGNhbGxzIG1pbmlidWZmZXItZm9yY2UtY29tcGxldGUg c3RpbGwgY3ljbGUNCiAgICAgICA7OyB0aHJvdWdoIHRoZSBwcmV2aW91cyBwb3NzaWJsZSBjb21w bGV0aW9ucy4NCiAgICAgICAobGV0ICgobGFzdCAobGFzdCBhbGwpKSkNCkBAIC0xNzg3LDEzICsx ODk0LDIzIEBAIG1pbmlidWZmZXItY29tcGxldGlvbi1oZWxwDQogICAobWVzc2FnZSAiTWFraW5n IGNvbXBsZXRpb24gbGlzdC4uLiIpDQogICAobGV0KiAoKHN0YXJ0IChvciBzdGFydCAobWluaWJ1 ZmZlci1wcm9tcHQtZW5kKSkpDQogICAgICAgICAgKGVuZCAob3IgZW5kIChwb2ludC1tYXgpKSkN CisgICAgICAgICA7OyBEb2VzIGl0IG5lZWQgdG8ga2VlcCB0aGUgdGV4dCBwcm9wZXJ0aWVzPw0K ICAgICAgICAgIChzdHJpbmcgKGJ1ZmZlci1zdWJzdHJpbmcgc3RhcnQgZW5kKSkNCisgICAgICAg ICAoc3RyaW5nIChpZiBtaW5pYnVmZmVyLWNvbXBsZXRpbmctZmlsZS1uYW1lDQorICAgICAgICAg ICAgICAgICAgICAgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgKGJ1ZmZlci1zdWJzdHJpbmctbm8t cHJvcGVydGllcyBzdGFydCBlbmQpKQ0KKyAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0 cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpKQ0KICAgICAgICAgIChtZCAoY29tcGxldGlv bi0tZmllbGQtbWV0YWRhdGEgc3RhcnQpKQ0KICAgICAgICAgIChjb21wbGV0aW9ucyAoY29tcGxl dGlvbi1hbGwtY29tcGxldGlvbnMNCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZw0KLSAg ICAgICAgICAgICAgICAgICAgICAgbWluaWJ1ZmZlci1jb21wbGV0aW9uLXRhYmxlDQotICAgICAg ICAgICAgICAgICAgICAgICBtaW5pYnVmZmVyLWNvbXBsZXRpb24tcHJlZGljYXRlDQotICAgICAg ICAgICAgICAgICAgICAgICAoLSAocG9pbnQpIHN0YXJ0KQ0KKyAgICAgICAgICAgICAgICAgICAg ICAgOzsgSWYgdGhlcmUgaXMgY2FjaGVkIHRhYmxlLCB1c2luZyB0aGUgdGFibGUNCisgICAgICAg ICAgICAgICAgICAgICAgIChpZiAoY29uc3AgY29tcGxldGlvbi1hbGwtc29ydGVkLWNvbXBsZXRp b25zLXRhYmxlKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb24tYWxsLXNv cnRlZC1jb21wbGV0aW9ucy10YWJsZQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICBtaW5pYnVm ZmVyLWNvbXBsZXRpb24tdGFibGUNCisgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KKyAgICAg ICAgICAgICAgICAgICAgICAgKGlmIChjb25zcCBjb21wbGV0aW9uLWFsbC1zb3J0ZWQtY29tcGxl dGlvbnMtdGFibGUpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsDQorICAgICAgICAg ICAgICAgICAgICAgICAgIG1pbmlidWZmZXItY29tcGxldGlvbi1wcmVkaWNhdGUpDQorICAgICAg ICAgICAgICAgICAgICAgICAobGVuZ3RoIHN0cmluZykNCiAgICAgICAgICAgICAgICAgICAgICAg IG1kKSkpDQogICAgIChtZXNzYWdlIG5pbCkNCiAgICAgKGlmIChvciAobnVsbCBjb21wbGV0aW9u cykNCkBAIC0xODEwLDExICsxOTI3LDE5IEBAIG1pbmlidWZmZXItY29tcGxldGlvbi1oZWxwDQog ICAgICAgKGxldCogKChsYXN0IChsYXN0IGNvbXBsZXRpb25zKSkNCiAgICAgICAgICAgICAgKGJh c2Utc2l6ZSAob3IgKGNkciBsYXN0KSAwKSkNCiAgICAgICAgICAgICAgKHByZWZpeCAodW5sZXNz ICh6ZXJvcCBiYXNlLXNpemUpIChzdWJzdHJpbmcgc3RyaW5nIDAgYmFzZS1zaXplKSkpDQotICAg ICAgICAgICAgIChhbGwtbWQgKGNvbXBsZXRpb24tLW1ldGFkYXRhIChidWZmZXItc3Vic3RyaW5n LW5vLXByb3BlcnRpZXMNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0YXJ0IChwb2ludCkpDQorICAgICAgICAgICAgIChzdHJpbmcyIChpZiBtaW5pYnVmZmVy LWNvbXBsZXRpbmctZmlsZS1uYW1lDQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZS1u YW1lLW5vbmRpcmVjdG9yeSAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IChw b2ludCkpKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXBy b3BlcnRpZXMgc3RhcnQgKHBvaW50KSkpKQ0KKyAgICAgICAgICAgICAoYWxsLW1kIChjb21wbGV0 aW9uLS1tZXRhZGF0YSBzdHJpbmcyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJhc2Utc2l6ZSBtZA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtaW5pYnVmZmVyLWNvbXBsZXRpb24tdGFibGUNCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluaWJ1ZmZlci1jb21wbGV0aW9uLXByZWRpY2F0 ZSkpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoY29u c3AgY29tcGxldGlvbi1hbGwtc29ydGVkLWNvbXBsZXRpb25zLXRhYmxlKQ0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbi1hbGwtc29ydGVk LWNvbXBsZXRpb25zLXRhYmxlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWluaWJ1ZmZlci1jb21wbGV0aW9uLXRhYmxlDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoaWYgKGNvbnNwIGNvbXBsZXRpb24tYWxsLXNvcnRlZC1jb21wbGV0 aW9ucy10YWJsZSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5pbA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1p bmlidWZmZXItY29tcGxldGlvbi1wcmVkaWNhdGUpDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkpDQogICAgICAgICAgICAgIChhZnVuIChvciAoY29tcGxldGlv bi1tZXRhZGF0YS1nZXQgYWxsLW1kICdhbm5vdGF0aW9uLWZ1bmN0aW9uKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgKHBsaXN0LWdldCBjb21wbGV0aW9uLWV4dHJhLXByb3BlcnRpZXMNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmFubm90YXRpb24tZnVuY3Rpb24pDQo= --001a1147a9f24834ba0562167fe3 Content-Type: application/octet-stream; name="icomplete.el.patch" Content-Disposition: attachment; filename="icomplete.el.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jc31178o1 ZGlmZiAtLWdpdCBhL2xpc3AvaWNvbXBsZXRlLmVsIGIvbGlzcC9pY29tcGxldGUuZWwNCmluZGV4 IGIzN2RiODg2OWIuLjNmOWI0OGIzYzMgMTAwNjQ0DQotLS0gYS9saXNwL2ljb21wbGV0ZS5lbA0K KysrIGIvbGlzcC9pY29tcGxldGUuZWwNCkBAIC0xLDYgKzEsNiBAQA0KIDs7OyBpY29tcGxldGUu ZWwgLS0tIG1pbmlidWZmZXIgY29tcGxldGlvbiBpbmNyZW1lbnRhbCBmZWVkYmFjaw0KIA0KLTs7 IENvcHlyaWdodCAoQykgMTk5Mi0xOTk0LCAxOTk3LCAxOTk5LCAyMDAxLTIwMTggRnJlZSBTb2Z0 d2FyZQ0KKzs7IENvcHlyaWdodCAoQykgMTk5Mi0xOTk0LCAxOTk3LCAxOTk5LCAyMDAxLTIwMTcg RnJlZSBTb2Z0d2FyZQ0KIDs7IEZvdW5kYXRpb24sIEluYy4NCiANCiA7OyBBdXRob3I6IEtlbiBN YW5oZWltZXIgPGtsbUBpLmFtPg0KQEAgLTM4Nyw3ICszODcsMTEgQEAgaWNvbXBsZXRlLWNvbXBs ZXRpb25zDQogICAgICAgKGlmIGxhc3QgKHNldGNkciBsYXN0IG5pbCkpDQogICAgICAgKHdoZW4g KGFuZCBtaW5pYnVmZmVyLWNvbXBsZXRpbmctZmlsZS1uYW1lDQogICAgICAgICAgICAgICAgICBp Y29tcGxldGUtd2l0aC1jb21wbGV0aW9uLXRhYmxlcykNCi0gICAgICAgIChzZXRxIGNvbXBzIChj b21wbGV0aW9uLXBjbS0tZmlsZW5hbWUtdHJ5LWZpbHRlciBjb21wcykpKQ0KKyAgICAgICAgKHNl dHEgY29tcHMgKGNvbXBsZXRpb24tcGNtLS1maWxlbmFtZS10cnktZmlsdGVyIGNvbXBzKSkNCisg ICAgICAgIDs7IG5vIGRpcmVjdG9yeQ0KKyAgICAgICAgKHNldHEgbmFtZSAoZmlsZS1uYW1lLW5v bmRpcmVjdG9yeSBuYW1lKSkpDQorICAgICAgOzsgZ2V0IGFsbCBjb21wbGV0aW9ucyBpbiBjYWNo ZWQgdGFibGUNCisgICAgICAoc2V0cSBjb21wcyAoY29tcGxldGlvbi0tYWxsLXNvcnRlZC1jb21w bGV0aW9ucyAoaWNvbXBsZXRlLS1maWVsZC1iZWcpIG5hbWUgY29tcHMpKQ0KICAgICAgIChsZXQq ICgobW9zdC10cnkNCiAgICAgICAgICAgICAgIChpZiAoYW5kIGJhc2Utc2l6ZSAoPiBiYXNlLXNp emUgMCkpDQogICAgICAgICAgICAgICAgICAgKGNvbXBsZXRpb24tdHJ5LWNvbXBsZXRpb24NCg== --001a1147a9f24834ba0562167fe3-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 19 10:04:14 2020 Received: (at control) by debbugs.gnu.org; 19 Jan 2020 15:04:14 +0000 Received: from localhost ([127.0.0.1]:43730 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1itC7a-0004Bd-Da for submit@debbugs.gnu.org; Sun, 19 Jan 2020 10:04:14 -0500 Received: from ted.gofardesign.uk ([67.225.143.91]:51132) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1itC7Z-0004BQ-LA for control@debbugs.gnu.org; Sun, 19 Jan 2020 10:04:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=marxist.se; s=default; h=Subject:From:To:Date:Sender:Reply-To:Message-ID:Cc:MIME-Version :Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=VUEvSJLBhbsMokYhnJFAqkFdh6RaMOaLUbhwqr9CGXE=; b=cSc9ktJJ5TyGyz7c5A0GYfelxY Qk9PMXHUobZgJvbHOc1LXTpXkoqZd6z+nY5Te8pw8rSW9A22i5VgWZNE/9pNGnKZMiNDjt/mbYXBH GeHcovsIIVeYsnc94U5xQja6lnokcMBx8Ejp8CkZKoR/jJR0vkY9u7ImiuVrG8bXvW3ytZya9xyMg 4tZrPR278C6FNJxHAVNa9zZdVRDd8RAuhQ8Sw/ya9QuXGfD/NKSW7yXOEE50lZAG0sl8vZ3krdEip UxaTKlUmpzF6BF0eKAX3I9Sddl5fqu99oj1r2LjX/QqKQV/yGcDyH+B8Xgf8Qfmov/RVHLPDXhcz/ hKzZHAQw==; Received: from h-70-69.a785.priv.bahnhof.se ([155.4.70.69]:39812 helo=localhost) by ted.gofardesign.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from ) id 1itC7U-00006h-51 for control@debbugs.gnu.org; Sun, 19 Jan 2020 10:04:08 -0500 Date: Sun, 19 Jan 2020 16:04:06 +0100 To: control@debbugs.gnu.org From: Stefan Kangas Subject: control message for bug #29833 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - ted.gofardesign.uk X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - marxist.se X-Get-Message-Sender-Via: ted.gofardesign.uk: authenticated_id: stefan@marxist.se X-Authenticated-Sender: ted.gofardesign.uk: stefan@marxist.se X-Source: X-Source-Args: X-Source-Dir: X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" Message-Id: X-Spam-Score: -1.0 (-) tags 29833 + patch quit From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 21 10:27:53 2020 Received: (at 29833) by debbugs.gnu.org; 21 Sep 2020 14:27:53 +0000 Received: from localhost ([127.0.0.1]:55598 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kKMnJ-0006kH-B3 for submit@debbugs.gnu.org; Mon, 21 Sep 2020 10:27:53 -0400 Received: from quimby.gnus.org ([95.216.78.240]:49080) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kKMnG-0006k3-UO for 29833@debbugs.gnu.org; Mon, 21 Sep 2020 10:27: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=ku+7S3rq8Uah3LbDNKdUUMbxzcVcoWqLdUuSbiVwjwI=; b=U1jSU34GYZGmJOj5upXllknSG2 3LOWYUdvoyF+1+Vvrb0bfvugleDPd0dAvUGqza4C0dLnwG9oirriZFWD8OZQfe+DLIWQotgiG9izd crefuplxB/Lz9J+tqNMMOv/QBrMJwo9IPopuTi4IzrD1erP4I+NjUNi2VWbk48o8mVp4=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kKMn6-0005FJ-BI; Mon, 21 Sep 2020 16:27:43 +0200 From: Lars Ingebrigtsen To: Shuguang Sun Subject: Re: bug#29833: icomplete re-build the completion table after each key press References: X-Now-Playing: LCD Soundsystem's _This Is Happening_: "I Can Change" Date: Mon, 21 Sep 2020 16:27:38 +0200 In-Reply-To: (Shuguang Sun's message of "Sat, 6 Jan 2018 15:27:27 +0800") Message-ID: <87zh5jmch1.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Shuguang Sun writes: > I tired to find out the issues and provide patches to minibuffer.el and icomplete.el. > > What is the issue? > 1. The function completion--flush-all-sorted-completions defined in minibuffer.el is > [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 29833 Cc: 29833@debbugs.gnu.org, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Shuguang Sun writes: > I tired to find out the issues and provide patches to minibuffer.el and icomplete.el. > > What is the issue? > 1. The function completion--flush-all-sorted-completions defined in minibuffer.el is > always called without parameters which make it flush the cached table every > time. > 2. The function completion--flush-all-sorted-completions is added to the hook of > after-change-functions, however, (jit-lock-after-change t) in the hook will trigger > flush every time > 3. The local cached table completion-all-sorted-completions is not used actually. > The minibuffer-completion-table is called in a lot of function which will rebuild the > table instead of the chached table. [...] > The patches try to use the cached table completion-all-sorted-completions-table as > much as possible, and for filename completion, it caches the list of files in the base > directory (file-name-directory). This patch unfortunately got no response when it was posted two years ago, and it no longer applies cleanly to Emacs 28. I'm not very familiar with the completion functions, but I think your changes make conceptual sense, at least. Perhaps Stefan can provide some feedback here? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 21 13:47:34 2020 Received: (at 29833) by debbugs.gnu.org; 21 Sep 2020 17:47:34 +0000 Received: from localhost ([127.0.0.1]:56109 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kKPuY-0003co-91 for submit@debbugs.gnu.org; Mon, 21 Sep 2020 13:47:34 -0400 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:63154) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kKPuX-0003cc-2v for 29833@debbugs.gnu.org; Mon, 21 Sep 2020 13:47:33 -0400 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 818C28009B; Mon, 21 Sep 2020 13:47:27 -0400 (EDT) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id F018080921; Mon, 21 Sep 2020 13:47:21 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1600710441; bh=mkBCA6U+ixyqFaRMpIqEsMGIcfWydWeJ8ifrv/neoWE=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=HiFSbIdfSiogxUM7IGBX0sR3WJP9m4TEovCqmNofoH0qFtxvHenubsm2hqulox3EX QW3Xhdt4o9NE3XPfa1HqubD7HG4c/GiwKQtwOvVmmZ+X5ZoQfnO8WT47wkHRhgObkA fvIBwNmBHmvUgzZ1KfninjeKZrOg/F+zy83oKdCc6kXPvQFoB1wvoHR18VNBkCqbfZ SmGg6pSrw7XA7eRF3VouGPLCZUbrbH21Dqgg5rbIQbdrNhkAyEeh23/JT+QLN6g4aU hmht/Bd81//rYawBlfLocJPAceGHAKpxl9l6FRLEHDIDLMUd5a97MssLOlZg3uP75D VqHFKqKBCmSwg== Received: from alfajor (unknown [45.72.232.131]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id C0ED3120201; Mon, 21 Sep 2020 13:47:21 -0400 (EDT) From: Stefan Monnier To: Shuguang Sun Subject: Re: bug#29833: icomplete re-build the completion table after each key press Message-ID: References: Date: Mon, 21 Sep 2020 13:47:20 -0400 In-Reply-To: (Shuguang Sun's message of "Sun, 24 Dec 2017 16:58:28 +0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.076 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 29833 Cc: 29833@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > The icomplete re-build the completion table > 'completion-all-sorted-completions' after each key press. This is considered normal. The reason is that icomplete can't know in general how to take the list of matching completions for "foob" or for "fo" (or for any other string for that matter) and compute the corresponding list of matching completions. This is because it depends on lots of details. E.g. when completing files when going from "foo" to "foo/" the list of completions is completely changed. In other cases, "foo" matches something using a particular completion-style but "foob" doesn't, so a different completion-style will be used, ... It is true that in many case the completions of "foob" are a subset of the completions of "foo", so we could recompute them faster but icomplete is not being told under which conditions this is true and it's not being told *how* it could be recomputed (e.g. by looking for candidates matching "foob" or by looking for candidates matching "f.*o.*o.*b", ...). So in order to be able to avoid recomputing the candidates "from scratch", we'd need the rest of the completion code to give us more info, but there is no such infrastructure. What the current completion system expects instead is that if the time needed to recompute the candidates can be large, the *completion table* should use a cache. Stefan From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 23 08:51:34 2021 Received: (at 29833) by debbugs.gnu.org; 23 Jul 2021 12:51:34 +0000 Received: from localhost ([127.0.0.1]:42532 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m6ueL-0001lx-W4 for submit@debbugs.gnu.org; Fri, 23 Jul 2021 08:51:34 -0400 Received: from quimby.gnus.org ([95.216.78.240]:38444) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m6ueJ-0001le-PL for 29833@debbugs.gnu.org; Fri, 23 Jul 2021 08:51:32 -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=AH+90VG40aNIdi47twGWe/OvmB++BxIU18hANK11UPk=; b=XdRrQbWkJRw6paF0thpKSdOMQk x67Zv5qFx1dzk4m+G0as2iS2CLykbHA6B8voXpyRRCnQBxTrRusE+fyhohTtTMr/9s6/ilarwi7ZA DeiGz/iNnNuHrvPMWfXI9UVzipw43tfdOGklq+/Ky0HTXeYHSoHpSYnwz/agxRfu1M7Y=; Received: from cm-84.212.220.105.getinternet.no ([84.212.220.105] helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m6ueA-0008Ag-JV; Fri, 23 Jul 2021 14:51:25 +0200 From: Lars Ingebrigtsen To: Stefan Monnier Subject: Re: bug#29833: icomplete re-build the completion table after each key press References: X-Now-Playing: Nazar's _Guerrilla_: "Intercept" Date: Fri, 23 Jul 2021 14:51:22 +0200 In-Reply-To: (Stefan Monnier's message of "Mon, 21 Sep 2020 13:47:20 -0400") Message-ID: <878s1xdwhh.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Stefan Monnier writes: > So in order to be able to avoid recomputing the candidates "from > scratch", we'd need the rest of the completion code to give us more > info, but there is no such infrastructure. > > What the curre [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 29833 Cc: 29833@debbugs.gnu.org, Shuguang Sun X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Stefan Monnier writes: > So in order to be able to avoid recomputing the candidates "from > scratch", we'd need the rest of the completion code to give us more > info, but there is no such infrastructure. > > What the current completion system expects instead is that if the time > needed to recompute the candidates can be large, the *completion table* > should use a cache. The completion code has gotten a lot of work lately, but I guess the conclusion here is that there's nothing specific to do in this bug report, so I'm closing it. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 23 08:51:39 2021 Received: (at control) by debbugs.gnu.org; 23 Jul 2021 12:51:39 +0000 Received: from localhost ([127.0.0.1]:42535 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m6ueR-0001mG-6Z for submit@debbugs.gnu.org; Fri, 23 Jul 2021 08:51:39 -0400 Received: from quimby.gnus.org ([95.216.78.240]:38470) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m6ueP-0001ln-Dg for control@debbugs.gnu.org; Fri, 23 Jul 2021 08:51:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=KmC1xNDcaY80dopuxG9N2gKHXH5wagWx7qmuKFo9mXc=; b=C87zv4i8qJATKbnVOvOHcYt9z4 g7cmwU7QfWmvvvJ2+Q1v+p8tTNVKVjDGoYO0KaPt+DeKBcDDKGWfigbe8ka7epwbEM6SduuLg6Cpw /Rg4xSeMEvf7dB281bD1U+vJNW5TWt3cjANeZjmOe7dZaX8325vdKvcSrogdLKlyBheI=; Received: from cm-84.212.220.105.getinternet.no ([84.212.220.105] helo=elva) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1m6ueH-0008Av-OD for control@debbugs.gnu.org; Fri, 23 Jul 2021 14:51:31 +0200 Date: Fri, 23 Jul 2021 14:51:29 +0200 Message-Id: <877dhhdwha.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #29833 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: close 29833 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) close 29833 quit From unknown Fri Jun 20 07:16:36 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 21 Aug 2021 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator