From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 07 10:40:31 2019 Received: (at submit) by debbugs.gnu.org; 7 Nov 2019 15:40:32 +0000 Received: from localhost ([127.0.0.1]:43694 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iSjtf-00074n-L2 for submit@debbugs.gnu.org; Thu, 07 Nov 2019 10:40:31 -0500 Received: from lists.gnu.org ([209.51.188.17]:36693) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iSjtd-00074g-MA for submit@debbugs.gnu.org; Thu, 07 Nov 2019 10:40:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:32935) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iSjtc-0006DS-9H for bug-gnu-emacs@gnu.org; Thu, 07 Nov 2019 10:40:29 -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, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iSjta-0007fn-Co for bug-gnu-emacs@gnu.org; Thu, 07 Nov 2019 10:40:28 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:39119) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iSjtY-0007Uh-5J for bug-gnu-emacs@gnu.org; Thu, 07 Nov 2019 10:40:26 -0500 Received: by mail-wr1-x42b.google.com with SMTP id a11so3546905wra.6 for ; Thu, 07 Nov 2019 07:40:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:to:from:subject:message-id:date:user-agent:mime-version :content-language; bh=0qng8NFyJ2rcZX8ySSzA2NxeojZhNC2VxbUcGHCHghY=; b=pWHY0lNgKGzmWe4CDKeIatDSrcOnGzCsOFSapPJFkECHA1+IHx5KO8ZXG+QVmJp+kk WDIPc/kePcX+Afjw4w3Y61N0JGTQZccN4HtRTHA39FMIhcpoKZbs40/yAJDl7/inf71o gCvqe0S+T/bHHZyyvZN2I498fjeE0NSoDWHtywwtWeUoM/TBOjScMcXUShnVr1jY+unu q+EkU5NvwmOsGq/7Zlvpw6PXRV3k1F25NwpD9WWAxYfb9RY74pmkSk5vSfIkZwPKHCcn n3hwWBCRlDHRIGxRFDD/+c7qgthOhWS77srhPtj5RqbDeY26+f6fgSiYcS0lQjvIuI4x pnNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:to:from:subject:message-id:date :user-agent:mime-version:content-language; bh=0qng8NFyJ2rcZX8ySSzA2NxeojZhNC2VxbUcGHCHghY=; b=G36g8RmX13uKawxxMnqO/MSzGd/KmSpit0hAHXiPAi7SkptiEwyo26Fk3PLUAPFY7P 0IVbRyi/TqfM8w3byCq+/uW62IBsNkOETB69ZLPBVlDpFuDYrstnVp5c5gYTDhkG4lvC z/mAbMdlDmWnlEPMUCkP71y7tYoNyqQjinuIlTbwMySsLI/PEz4hjXQANi5wzWZSrppw Fw/ZqIPGMqXgUQK2IpTacPDIn1wUKsPBt8+rJw8lnVx6pMiCx/tQOcSY2VkLTRjJQv6g jUMD1Kf/edqoNIuk/xuSnMGEiaiY6Tkz26h3KCu2o4+0SerBlTQmF4C3lpi+yyQu4sXm sCIA== X-Gm-Message-State: APjAAAXJfKL6FR2hHPOovd55lJwkVCm8APpYD+9IeViGJrcgDt1owP8x pdo3Q409oDEBIvF8TDaPXqBxqshXCFM= X-Google-Smtp-Source: APXvYqxlKMT27H6e2wxVawVLAzyv7rqfli3NXcJNgsesZ9IzWtika7yoYRUBVRSJRJbjL6Qr306Hjw== X-Received: by 2002:a5d:6a8d:: with SMTP id s13mr3455729wru.23.1573141214193; Thu, 07 Nov 2019 07:40:14 -0800 (PST) Received: from [192.168.0.149] ([109.110.245.170]) by smtp.googlemail.com with ESMTPSA id l10sm4457527wrg.90.2019.11.07.07.40.12 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 Nov 2019 07:40:12 -0800 (PST) To: bug-gnu-emacs@gnu.org From: Dmitry Gutov Subject: 27.0.50; elixir-mode fontification is very slow Message-ID: <3b0bfb66-437d-3606-dc06-05957f01b516@yandex.ru> Date: Thu, 7 Nov 2019 17:40:11 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------5D716F23368D05D3F2FC2FC5" Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42b X-Spam-Score: 1.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: -2.0 (--) This is a multi-part message in MIME format. --------------5D716F23368D05D3F2FC2FC5 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit I haven't been able to track this to a particular component (e.g. a regexp) for now, but font-lock-fontify-region is now considerably slower than it was in Emacs 26 (at least at revision cb8fb597e5bf4f14). To reproduce: install elixir-mode (e.g. from MELPA Stable): (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t) M-x list-packages, install elixir-mode. Savet the attached tiny.__ex__ as tiny.ex. Visit tiny.ex. Eval: (benchmark 1 '(font-lock-fontify-region (point-min) (point-max))). "Elapsed time: 0.158824s" With larger files, the times are much longer. I had a break from Elixir, so I noticed this only now. In GNU Emacs 27.0.50 (build 11, x86_64-pc-linux-gnu, GTK+ Version 3.24.8) of 2019-11-05 built on potemkin Repository revision: dd19cc3aa16ccc441a8a2bfcdeb3005a6eef2543 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12004000 System Description: Ubuntu 19.04 --------------5D716F23368D05D3F2FC2FC5 Content-Type: text/plain; charset=UTF-8; name="tiny.__ex__" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="tiny.__ex__" IyBtb2R1bGVfbmFtZS5leApkZWZtb2R1bGUgTW9kdWxlTmFtZSBkbwogIGRlZiBtZXNzYWdl KHt0bywgJUluY2lkZW50TWVzc2FnZXt0aXRsZTogX3QsIGJvZHk6IG1zZ319KSBkbwogICAg bXNnCiAgICB8PiBtZXNzYWdlX2JvZHkKICAgIHw+IHNlbmRfbWVzc2FnZQogIGVuZAplbmQK --------------5D716F23368D05D3F2FC2FC5-- From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 26 11:26:25 2019 Received: (at 38104) by debbugs.gnu.org; 26 Nov 2019 16:26:25 +0000 Received: from localhost ([127.0.0.1]:52800 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZdfV-0004Fz-3w for submit@debbugs.gnu.org; Tue, 26 Nov 2019 11:26:25 -0500 Received: from mail-wm1-f43.google.com ([209.85.128.43]:52261) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZdfT-0004Fn-N8 for 38104@debbugs.gnu.org; Tue, 26 Nov 2019 11:26:24 -0500 Received: by mail-wm1-f43.google.com with SMTP id l1so3884124wme.2 for <38104@debbugs.gnu.org>; Tue, 26 Nov 2019 08:26:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:from:to:references:cc:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=KdewH+OF8y/XccWn1cQle3Afr8LbntfcAgKdk1XzGT8=; b=epPT5MJpyu0NLzk7sxCmXx/EVpBUkDMPpdx/0Om7+h0CvESeAj4WQTkNOz6BftsXAc WFAN/LAXt7PFjobupXDWz2+MvaUXYCUyyC3xIDLq1MCmFi7qoqt8q6vzVEzdandg1TOb d3zsBWttUDoPDWPmq8h9yDv7ams5Sy9aTPQbN7ie13V5ixFVKxNLZY/IGIbtV5lpMqNw Ni0OeHStDuXHh70lVzCa+UI0Bb5tQ33DEw7xb4bcu7dfJiRh6R8RnVHuVg9G4O15OJdF 4Dj99Y9Q4grucEDOzvr9WYePrBCuhpUFrs1uSIBa6Ejk9YWgzd9oaGcuJsgDFiOgfDB7 UjrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:from:to:references:cc:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=KdewH+OF8y/XccWn1cQle3Afr8LbntfcAgKdk1XzGT8=; b=aYmOCsy1pKhSDWYlojl0ELWaSRnw0bYoMn1M4ECT82zdNd7GFvCVEAWjV4Fd7mhKE8 wS/zIwTpE2wrXcKIi0HTqG3qrNdZ1vC9r3dB1w9hXwYkvgqNpjA+6q+vT44KBpfKtgca qGALsO9uh4GGXmq8J+Kf7+d2zmhffqRlZOJ7pzwEOaG361lDbs6REVPDcXQpsvuFmr+d aUDdHRvNJIrO2siDmX5LKWJ5OWsCnlQPcIMt8/4CfSlK3E6Ga1JHibDqXqWS5lDj6Xg4 jo5my8w57uUuTqLXdzJvhBw5DBsHyA8xETyzwWjwdoUUMOiqI3pgQT51c+JfbslLsT5O xlRg== X-Gm-Message-State: APjAAAXdpux+wPsx745UAcfPxtHNEbhaCIj6QcIHFFXpMLkJT21MRWUD UqJj8EzGOrBIlCqAP6li1b8= X-Google-Smtp-Source: APXvYqyiZGzDT1Kkxub52GL6LhHtxaXz202RFyKVadfKy8p8lqfkrR7TYx1dEos7G4J9cV6Kzm/4ww== X-Received: by 2002:a05:600c:228c:: with SMTP id 12mr5359148wmf.154.1574785577754; Tue, 26 Nov 2019 08:26:17 -0800 (PST) Received: from [192.168.0.149] ([109.110.245.170]) by smtp.googlemail.com with ESMTPSA id w4sm15429457wrs.1.2019.11.26.08.26.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Nov 2019 08:26:16 -0800 (PST) Subject: Re: bug#38104: 27.0.50; elixir-mode fontification is very slow From: Dmitry Gutov To: 38104@debbugs.gnu.org References: <3b0bfb66-437d-3606-dc06-05957f01b516@yandex.ru> Message-ID: <2ec58f9d-b979-7ad1-d53f-4cc454e50395@yandex.ru> Date: Tue, 26 Nov 2019 18:26:13 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <3b0bfb66-437d-3606-dc06-05957f01b516@yandex.ru> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 38104 Cc: =?UTF-8?Q?Mattias_Engdeg=c3=a5rd?= 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: -0.5 (/) I did a 'git bisect', and it came down to: commit 2ed71227c626c6cfdc684948644ccf3d9eaeb15b Author: Mattias Engdegård Date: Wed Sep 25 14:29:50 2019 -0700 New rx implementation Mattias, could you look into it? elixir-mode does use rx, heavily. Albeit with a thin wrapper. To be clear, elixir-mode is quite unusable now. On 07.11.2019 17:40, Dmitry Gutov wrote: > I haven't been able to track this to a particular component (e.g. a > regexp) for now, but font-lock-fontify-region is now considerably slower > than it was in Emacs 26 (at least at revision cb8fb597e5bf4f14). > > To reproduce: install elixir-mode (e.g. from MELPA Stable): > > (add-to-list 'package-archives >              '("melpa-stable" . "https://stable.melpa.org/packages/") t) > > M-x list-packages, install elixir-mode. > > Savet the attached tiny.__ex__ as tiny.ex. > > Visit tiny.ex. > > Eval: (benchmark 1 '(font-lock-fontify-region (point-min) (point-max))). > > "Elapsed time: 0.158824s" > > With larger files, the times are much longer. > > I had a break from Elixir, so I noticed this only now. > > In GNU Emacs 27.0.50 (build 11, x86_64-pc-linux-gnu, GTK+ Version 3.24.8) >  of 2019-11-05 built on potemkin > Repository revision: dd19cc3aa16ccc441a8a2bfcdeb3005a6eef2543 > Repository branch: master > Windowing system distributor 'The X.Org Foundation', version 11.0.12004000 > System Description: Ubuntu 19.04 From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 26 11:31:09 2019 Received: (at 38104) by debbugs.gnu.org; 26 Nov 2019 16:31:09 +0000 Received: from localhost ([127.0.0.1]:52808 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZdk5-0004OM-2H for submit@debbugs.gnu.org; Tue, 26 Nov 2019 11:31:09 -0500 Received: from mail-wr1-f42.google.com ([209.85.221.42]:34899) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZdk3-0004Nt-9D for 38104@debbugs.gnu.org; Tue, 26 Nov 2019 11:31:07 -0500 Received: by mail-wr1-f42.google.com with SMTP id s5so23209897wrw.2 for <38104@debbugs.gnu.org>; Tue, 26 Nov 2019 08:31:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=BnSvb6g2kqhcJ03ezweUwEQqschpW/jC/m9iVqLsLjE=; b=eALwM0YteeUPdrEM1zYOerwBbPPIF0x7yskkSxhbtWGyTMKwCjYLAsYs31tgqwX0QL H1Et9S915/9jopCxj489iO7epePIA5XU7Mz7BTzV7QTsYbhmzT6vUr2ylk8JEYuPav7n hdi3XSn3HHzkldRS9QOjJ1w2tUMYGbrQOlB2qGSh9S7WQqS2YhWnLudLiykkJT65wLw/ EMviUoNtZafP9gCOslv/8sI6naZmEVWisjRV8vJRx0KKbypw1S9tFwtWBRE38n4UxUuH zj4olXkh2dCz0Gx9DQ2d3kOR17X003h8fN2w/HEayvWT08ER5L5Std0KR2HFUv3t4jQw +mEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:from:to:cc:references:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=BnSvb6g2kqhcJ03ezweUwEQqschpW/jC/m9iVqLsLjE=; b=e5EwIeM1M9oHSRsPt7ASxryVGU3g+aTc+ooLBr2nZ26gRu6qdqSBWNnQX1nV5Tlt2m WXmKeYpzc/ai7geQO9t12jbWA6xUg3bjL60P++hHDfZGrqSOgNaGbBYaWJziw4Dbsr3G EE/0JUrH/UJqj+4oRp4f7oesqFTpTg1aYD67TFDMtbQWsX+k9+pdbYl2/6SoK5grMmsY wsfKlSyeFFEsG2ba9gR/Vz6JlB4b6wT6I9xvhQyzDRgqbmdPS4Z/r4l1iTM3whHQPMme xgljyEvIcgmN9wV2bRe0i477O5Yu8eZvLUsx0lfsrfHsZUtXoqPNZhU4YjPjf3c6qA28 3R/A== X-Gm-Message-State: APjAAAXPz7M1bt5WEGX3Dy7CXH+/iZROLIseICRSQkJ+2yvsTXYpG4+G C+n8U0L1p0KPs1JHC1Ysoj8= X-Google-Smtp-Source: APXvYqx3anncz3yCVrFE+T8NX9b1ROEQ5uT3vOqwgjPWb6tbHTvOM7IniYzeax4ac85xxdSYTT9Qrw== X-Received: by 2002:adf:f78c:: with SMTP id q12mr36675691wrp.71.1574785861453; Tue, 26 Nov 2019 08:31:01 -0800 (PST) Received: from [192.168.0.149] ([109.110.245.170]) by smtp.googlemail.com with ESMTPSA id a64sm4132987wmc.18.2019.11.26.08.30.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Nov 2019 08:31:00 -0800 (PST) Subject: Re: bug#38104: 27.0.50; elixir-mode fontification is very slow From: Dmitry Gutov To: 38104@debbugs.gnu.org References: <3b0bfb66-437d-3606-dc06-05957f01b516@yandex.ru> <2ec58f9d-b979-7ad1-d53f-4cc454e50395@yandex.ru> Message-ID: Date: Tue, 26 Nov 2019 18:30:58 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <2ec58f9d-b979-7ad1-d53f-4cc454e50395@yandex.ru> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 38104 Cc: =?UTF-8?Q?Mattias_Engdeg=c3=a5rd?= 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: -0.5 (/) On 26.11.2019 18:26, Dmitry Gutov wrote: > elixir-mode does use rx, heavily. Albeit with a thin wrapper. And one more thing: this wrapper makes use of rx-constituents. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 26 11:59:18 2019 Received: (at 38104) by debbugs.gnu.org; 26 Nov 2019 16:59:18 +0000 Received: from localhost ([127.0.0.1]:52839 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZeBJ-00052o-RT for submit@debbugs.gnu.org; Tue, 26 Nov 2019 11:59:18 -0500 Received: from mail1469c50.megamailservers.eu ([91.136.14.69]:50828 helo=mail102c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZeBI-00052b-37 for 38104@debbugs.gnu.org; Tue, 26 Nov 2019 11:59:17 -0500 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1574787549; bh=bCs8koE/B5AAlLHUjiVqO6kj+NrcHRVjcNvxx7bUKlo=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=mk1s1twIJIw9i/3sBMjRnHrHtG73R5W+4A5paqIDxBDHB66+g29Ycl9Tv3LldJyTw eIzFs7BKa6AXLCUOCxBdjtSrbdWI+mRUQEAVECcnTfBOEBEX/LVCRVANxA5y8LRcA7 mgR5qTcOyH4I5BfPK4e1BV21rXmeLe0Dzq7QyrV4= Feedback-ID: mattiase@acm.or Received: from stanniol.lan (c-3d4ce655.032-75-73746f71.bbcust.telenor.se [85.230.76.61]) (authenticated bits=0) by mail102c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id xAQGx6Qa022024; Tue, 26 Nov 2019 16:59:08 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: bug#38104: 27.0.50; elixir-mode fontification is very slow From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: <2ec58f9d-b979-7ad1-d53f-4cc454e50395@yandex.ru> Date: Tue, 26 Nov 2019 17:59:06 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: References: <3b0bfb66-437d-3606-dc06-05957f01b516@yandex.ru> <2ec58f9d-b979-7ad1-d53f-4cc454e50395@yandex.ru> To: Dmitry Gutov X-Mailer: Apple Mail (2.3445.104.11) X-CTCH-RefID: str=0001.0A0B0206.5DDD59DD.0009, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=Q8qsHL+a c=1 sm=1 tr=0 a=2CSmQ8xxRPzqj0RSDwU2Pw==:117 a=2CSmQ8xxRPzqj0RSDwU2Pw==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=vaJtXVxTAAAA:8 a=PfYB6nSrl-jCDpRBwAgA:9 a=CjuIK1q_8ugA:10 a=-RK0lIY_4Z8A:10 a=pHzHmUro8NiASowvMSCR:22 a=6VlIyEUom7LUIeUMNQJH:22 X-Spam-Score: 1.4 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.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 the administrator of that system for details. Content preview: 26 nov. 2019 kl. 17.26 skrev Dmitry Gutov : > Mattias, could you look into it? Thanks, will have a look. By the way, when byte-compiling I get complaints about 'looking-back' being called with too few arguments in elixir-smie.el; may want to do something about that. Content analysis details: (1.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: megamailservers.eu] 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: 38104 Cc: 38104@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: -0.0 (/) 26 nov. 2019 kl. 17.26 skrev Dmitry Gutov : > Mattias, could you look into it? Thanks, will have a look. By the way, when byte-compiling I get = complaints about 'looking-back' being called with too few arguments in = elixir-smie.el; may want to do something about that. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 26 12:04:38 2019 Received: (at 38104) by debbugs.gnu.org; 26 Nov 2019 17:04:38 +0000 Received: from localhost ([127.0.0.1]:52855 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZeGT-0005CJ-WE for submit@debbugs.gnu.org; Tue, 26 Nov 2019 12:04:38 -0500 Received: from mail-wm1-f43.google.com ([209.85.128.43]:38258) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZeGR-0005C5-Mc for 38104@debbugs.gnu.org; Tue, 26 Nov 2019 12:04:36 -0500 Received: by mail-wm1-f43.google.com with SMTP id z19so4204351wmk.3 for <38104@debbugs.gnu.org>; Tue, 26 Nov 2019 09:04:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=UPhduZRaeUR2vfl5Tln0X+cxweT4TVm8X2RTY/qOf74=; b=jAGpQF2vGp8ylJaxhmBgGz1eAzPZ76UsmqJbyhUgDtGW8jRhIJ9TSu0/vO+d0ew/w+ 2vu2+KOj2H49F3ckCo4YrqdB418xXn0TyWDvqwuTRK0PrdY3X4DYQwKnTO+B8dAVxNNG n4KO/E9IeN0oWXcBJ4aud9IEYVYjjVqOb4u9ROo9VYJVKZ3drydrJ/3wgXjS/kLeD6do gDj1PfwbsvAkkU0elmvwZfwSYv3ELVa9Ratwzo9slyitxNKUjC5539bws6JlBMDHgEKA x7Zofm/+vG4dKFHeFBIh/C2Tf/Fz/Aetkb8202CKE8BOT+zS0ivbzb3yFsCeBZ4R8E+i UK8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=UPhduZRaeUR2vfl5Tln0X+cxweT4TVm8X2RTY/qOf74=; b=F9aVbkaGWNruHDcPzLei23p4K3KEnAUOpwzqn4JZ0LBbaIKszhhL2tQ0vb1iO98TIZ nKgSJA8afUQvdCDdYSYlfO1bRMRbKCDS6DLdaBXAjheIvmz7gRL1IVLGdfWvbfsZss+w ZKa4nPx6lcAqIsy2yQFkSIybGnI5qgsH7XjQj8F2DGS2zaePZqFMqImuLIovo/cQe8mD wAZjqgJz5fUgdVhe6ML56XzzqRwbGWLBn59dbKy7HgYyHW356QIovCb8ojMfStk9LY1A 3urlWyb9IJzJc2I/S/qERrP3OevFYMI3he4NDkEClNiahqfwlbeDwOPGR3NJAWfLY/Cw iA/A== X-Gm-Message-State: APjAAAUb3VVDvq3Vkzv+OWzENnBw/24BRGgcZaao8RaZ9CpPrdCJNSQr rorb6mu46AssWvLxP96fplQqVJ7K X-Google-Smtp-Source: APXvYqysMw0g1ag1g7E5vdEVZPZxVznIICpCMoCbbFcZVql/Hmu1bd4SfODuLF94Meej0BzQsdlrGw== X-Received: by 2002:a05:600c:3cd:: with SMTP id z13mr606wmd.105.1574787869530; Tue, 26 Nov 2019 09:04:29 -0800 (PST) Received: from [192.168.0.149] ([109.110.245.170]) by smtp.googlemail.com with ESMTPSA id t134sm3856740wmt.24.2019.11.26.09.04.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Nov 2019 09:04:28 -0800 (PST) Subject: Re: bug#38104: 27.0.50; elixir-mode fontification is very slow To: =?UTF-8?Q?Mattias_Engdeg=c3=a5rd?= References: <3b0bfb66-437d-3606-dc06-05957f01b516@yandex.ru> <2ec58f9d-b979-7ad1-d53f-4cc454e50395@yandex.ru> From: Dmitry Gutov Message-ID: Date: Tue, 26 Nov 2019 19:03:16 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 38104 Cc: 38104@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: -0.5 (/) On 26.11.2019 18:59, Mattias Engdegård wrote: > By the way, when byte-compiling I get complaints about 'looking-back' being called with too few arguments in elixir-smie.el; may want to do something about that. Yes, I have a few other pending patches for that project as well. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 26 14:32:42 2019 Received: (at 38104) by debbugs.gnu.org; 26 Nov 2019 19:32:42 +0000 Received: from localhost ([127.0.0.1]:52964 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZgZm-0000Ld-0c for submit@debbugs.gnu.org; Tue, 26 Nov 2019 14:32:42 -0500 Received: from mail1439c50.megamailservers.eu ([91.136.14.39]:59874 helo=mail264c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZgZj-0000LP-EA for 38104@debbugs.gnu.org; Tue, 26 Nov 2019 14:32:40 -0500 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1574796753; bh=Se7w51RCXhcubQIOz58CrAmP0Xt97IpxFRZOuOXdiDE=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=VgPm77InMg/qov/PZpi3W8R2DuXFjWl5eaW59FTkQG9BXhavqecFX1DyFtb+sz6Zf RRb4vQJ3kWyhPTIyzxbxSS+iKoNYgP24RT+YOAb8ccviNnhyV4/gH4epxSd5zKrQz1 ZsOTlNBmt4mgzA+7FKw1TbjzW9ZpztoSwqYViw0o= Feedback-ID: mattiase@acm.or Received: from stanniol.lan (c-3d4ce655.032-75-73746f71.bbcust.telenor.se [85.230.76.61]) (authenticated bits=0) by mail264c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id xAQJWUo6011511; Tue, 26 Nov 2019 19:32:32 +0000 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: bug#38104: 27.0.50; elixir-mode fontification is very slow From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: <2ec58f9d-b979-7ad1-d53f-4cc454e50395@yandex.ru> Date: Tue, 26 Nov 2019 20:32:29 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <01F6BECA-B48A-4B8F-BFBC-1FBED482864F@acm.org> References: <3b0bfb66-437d-3606-dc06-05957f01b516@yandex.ru> <2ec58f9d-b979-7ad1-d53f-4cc454e50395@yandex.ru> To: Dmitry Gutov X-Mailer: Apple Mail (2.3445.104.11) X-CTCH-RefID: str=0001.0A0B020A.5DDD7DD0.003D, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Rules: X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=ar3M9hRV c=1 sm=1 tr=0 a=2CSmQ8xxRPzqj0RSDwU2Pw==:117 a=2CSmQ8xxRPzqj0RSDwU2Pw==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=M51BFTxLslgA:10 a=vaJtXVxTAAAA:8 a=fK-uz95lq1QNwa5CEh0A:9 a=CjuIK1q_8ugA:10 a=pHzHmUro8NiASowvMSCR:22 a=6VlIyEUom7LUIeUMNQJH:22 X-Spam-Score: 1.4 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.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 the administrator of that system for details. Content preview: 26 nov. 2019 kl. 17.26 skrev Dmitry Gutov : > elixir-mode does use rx, heavily. Albeit with a thin wrapper. As it turned out, rx is fine (now); elixir-mode, not quite. In elixir-mode.el, we have Content analysis details: (1.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: yandex.ru] 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: 38104 Cc: 38104@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: -0.0 (/) 26 nov. 2019 kl. 17.26 skrev Dmitry Gutov : > elixir-mode does use rx, heavily. Albeit with a thin wrapper. As it turned out, rx is fine (now); elixir-mode, not quite. In = elixir-mode.el, we have (identifiers . ,(rx (one-or-more (any "A-Z" "a-z" "_")) (zero-or-more (any "A-Z" "a-z" "0-9" "_")) (optional (or "?" "!")))) First, this regex is suboptimal: the first character of an identifier = should occur exactly once, or you get bad backtracking behaviour. Just = remove the one-or-more construct: (identifiers . ,(rx (any "A-Z" "a-z" "_") (zero-or-more (any "A-Z" "a-z" "0-9" "_")) (optional (or "?" "!")))) This definition is then used in several places, but two in particular = are of interest to us: ;; Module attributes (,(elixir-rx (and "@" (1+ identifiers))) The construct (1+ identifiers) was perhaps meant to match multiple = identifiers, but it doesn't (no separator); it just matches an = identifier in several ways, which again leads to bad backtracking = behaviour. The same problem here: ;; Map keys (,(elixir-rx (group (and (one-or-more identifiers) ":")) space) Remove the 1+ and one-or-more and it's fast again. Why did this "work" with the old rx implementation? Because that code = had a nasty bug: it does not bracket definitions in rx-constituents = properly. Example: (let ((rx-constituents (cons '(hello . "HELLO") rx-constituents))) (rx-to-string '(1+ hello) t)) =3D> "HELLO+" The new rx implementation does not suffer from this bug. The result in your case is that the old rx, when translating (1+ = identifiers), only tacked the "+" onto whatever regexp 'identifiers' = produced, resulting in "[A-Z_a-z]+[0-9A-Z_a-z]*[!?]?+" which is a lot faster, since only the final [!?] is repeated twice (and = it probably doesn't match very often). From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 27 16:58:57 2019 Received: (at 38104-done) by debbugs.gnu.org; 27 Nov 2019 21:58:57 +0000 Received: from localhost ([127.0.0.1]:56322 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ia5Kr-0008Dc-7q for submit@debbugs.gnu.org; Wed, 27 Nov 2019 16:58:57 -0500 Received: from mail-wr1-f41.google.com ([209.85.221.41]:33788) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ia5Kp-0008DM-2l for 38104-done@debbugs.gnu.org; Wed, 27 Nov 2019 16:58:56 -0500 Received: by mail-wr1-f41.google.com with SMTP id w9so28634784wrr.0 for <38104-done@debbugs.gnu.org>; Wed, 27 Nov 2019 13:58:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=/KK/IAiJ3ebl0p7skrWNsO9gEdMOyhTHcMT6wKHPjWs=; b=D8KMfvfbpOwsabFHYxUhDOl66ObuOtKU+hLt7EQHFPLvTmrQp4fUuO4pgyGTTAKkTg L08aE9krhsWsvOH3MQa9kJoYui987wB09oIeiBL6Ob1Mao+LZ5HqrIK5jO75D6zbU/A/ x+HWJKcuKmEPn4hDRYN75Bh5wvoY10K7SZMQDsHLB4glYSW1OiDRy6i8IL3StQGf6wjg VE/GLR2/ft+A/fFHb1I+RYM7oBkrnMEZBkp6oClRl0fKmysFIGckYzzna8kallJFlV2g yHgROBlfCbvrDTEWhStHFD0spbZPhA6Lv39SVWQdd4NzJ6O7NUJQ6RWCi0CG2U8hv/Ux lfMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=/KK/IAiJ3ebl0p7skrWNsO9gEdMOyhTHcMT6wKHPjWs=; b=oiDDthWFeq27d21MMBHhyv9fRd/Qm67OhJU0e2O5f9ElJbR/Ywt2HkOVVs5l9rEzVd Aqw9ijlYxJuq09oAZ0emVsaiYwRutc+puaN73RkXbgLVqKKGdHGfvS4qAg/4F39wX5X5 sWa9l+RZAtv8MInq6UBvsE8OHJiN2xdwnIRgl/N7ri5X9BKBfoRvpPohp08QQtI7XtfP W/e46j97Kr30Lojnq8+dasOmGR7rnOpvuKTcBLt5HTRjvNTMAWNLeKE0s6qRNQ6lQu62 LLM7e/2NKRLOONKgwwLBAE1T+poQlkfeEtWS/BiXrYMuGFw3D/NeIxPydDyuRscwvo0W CaxQ== X-Gm-Message-State: APjAAAUOGDriL/gfwtTr0vfCBw/Fnljr4/YN8jMsT5uVNrZHkEO9M6Bf PRttjWeil4LpulHnCgQQXt+SBurs X-Google-Smtp-Source: APXvYqzsc49tzaz5nWnkgqUYmMY4uogYsTBhxJmsZCjzZCIDWj10lSn1ZOHryQ+MUmWoKSkUpNyPvg== X-Received: by 2002:a5d:6144:: with SMTP id y4mr30197820wrt.367.1574891928859; Wed, 27 Nov 2019 13:58:48 -0800 (PST) Received: from [192.168.0.5] ([212.50.117.215]) by smtp.googlemail.com with ESMTPSA id c9sm8028121wmb.42.2019.11.27.13.58.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Nov 2019 13:58:48 -0800 (PST) Subject: Re: bug#38104: 27.0.50; elixir-mode fontification is very slow To: =?UTF-8?Q?Mattias_Engdeg=c3=a5rd?= References: <3b0bfb66-437d-3606-dc06-05957f01b516@yandex.ru> <2ec58f9d-b979-7ad1-d53f-4cc454e50395@yandex.ru> <01F6BECA-B48A-4B8F-BFBC-1FBED482864F@acm.org> From: Dmitry Gutov Message-ID: <6deedf54-c3d6-bc41-efb9-e3f85e2a1f05@yandex.ru> Date: Wed, 27 Nov 2019 23:58:46 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <01F6BECA-B48A-4B8F-BFBC-1FBED482864F@acm.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 38104-done Cc: 38104-done@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: -0.5 (/) Hi Mattias, On 26.11.2019 21:32, Mattias Engdegård wrote: > As it turned out, rx is fine (now); elixir-mode, not quite. In elixir-mode.el, we have > > (identifiers . ,(rx (one-or-more (any "A-Z" "a-z" "_")) > (zero-or-more (any "A-Z" "a-z" "0-9" "_")) > (optional (or "?" "!")))) > > First, this regex is suboptimal: the first character of an identifier should occur exactly once, or you get bad backtracking behaviour. Just remove the one-or-more construct: > > (identifiers . ,(rx (any "A-Z" "a-z" "_") > (zero-or-more (any "A-Z" "a-z" "0-9" "_")) > (optional (or "?" "!")))) > > This definition is then used in several places, but two in particular are of interest to us: > > ;; Module attributes > (,(elixir-rx (and "@" (1+ identifiers))) > > The construct (1+ identifiers) was perhaps meant to match multiple identifiers, but it doesn't (no separator); it just matches an identifier in several ways, which again leads to bad backtracking behaviour. > The same problem here: > > ;; Map keys > (,(elixir-rx (group (and (one-or-more identifiers) ":")) space) > > Remove the 1+ and one-or-more and it's fast again. That makes a lot of sense. I removed these one-or-more's and 1+ (and a few others), and it became fast again. I'll send a patch upstream. Thanks for your help! (Looking at the tracker, they have a minor version of this change submitted already). > Why did this "work" with the old rx implementation? Because that code had a nasty bug: it does not bracket definitions in rx-constituents properly. Example: > > (let ((rx-constituents (cons '(hello . "HELLO") rx-constituents))) > (rx-to-string '(1+ hello) t)) > => "HELLO+" > > The new rx implementation does not suffer from this bug. > > The result in your case is that the old rx, when translating (1+ identifiers), only tacked the "+" onto whatever regexp 'identifiers' produced, resulting in > > "[A-Z_a-z]+[0-9A-Z_a-z]*[!?]?+" > > which is a lot faster, since only the final [!?] is repeated twice (and it probably doesn't match very often). It's funny to think how someone probably beaten the current code into submission by trial and error. From unknown Fri Aug 15 19:33:18 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 26 Dec 2019 12:24:04 +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