From: Alan Mackenzie <acm@muc.de>
To: Stefan Monnier <monnier@IRO.UMontreal.CA>
Cc: daniel.lopez999@gmail.com, 34525@debbugs.gnu.org
Subject: bug#34525: replace-regexp missing some matches
Date: Wed, 27 Feb 2019 17:10:36 +0000 [thread overview]
Message-ID: <20190227171036.GF4772@ACM> (raw)
In-Reply-To: <jwv5zt5dz71.fsf-monnier+emacsbugs@gnu.org>
Hello, Stefan.
On Wed, Feb 27, 2019 at 10:40:19 -0500, Stefan Monnier wrote:
> >> Here, in seeking the next interval, we go down a chain of `left's. We
> >> do not set the ->position field of these intervals, except for the last
> >> one, which we return.
> >> So the returned interval doesn't satisfy the condition that all its
> >> parents have their ->position's set correctly.
> [...]
> > I've done this, and it appears to have fixed the bug. :-)
> AFAICT the only place where we need the parents to have
> a valid ->position is in update_interval. So maybe another fix is to
> change update_interval so it computes the parent's ->position rather
> than rely on it having the right value.
I'll think about this.
> I personally don't have a preference and I'm not sure which option would
> be better performancewise.
I've done some speed testing with my function M-: (time-scroll), which
scrolls through a buffer a screenful at a time, redisplaying each place
it stops.
On xdisp.c, there was no detectable difference between versions with the
bug fix and without.
On a largish C++ file with lots of template delimiters, the corrected
version was about 4% slower on unoptimised builds. Between comparable
optimised builds, the differences were not detectable.
> If we opt (like your patch does) to have the invariant that
> the ->position of parents is kept up-to-date, then maybe we should
> change find_interval to guarantee this (which would basically be
> a matter of moving the corresponding code from update_syntax_table where
> we update the parents's ->position after calling find_interval) ?
This would be an excellent idea, something I was going to suggest
myself. :-)
> Stefan
--
Alan Mackenzie (Nuremberg, Germany).
next prev parent reply other threads:[~2019-02-27 17:10 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-18 8:28 bug#34525: replace-regexp missing some matches Daniel Lopez
[not found] ` <handler.34525.B.15504786524313.ack@debbugs.gnu.org>
2019-02-18 8:37 ` bug#34525: Acknowledgement (replace-regexp missing some matches) Daniel Lopez
2019-02-18 15:50 ` bug#34525: replace-regexp missing some matches Eli Zaretskii
2019-02-18 16:46 ` Alan Mackenzie
2019-02-18 21:10 ` Alan Mackenzie
2019-02-20 17:07 ` Alan Mackenzie
[not found] ` <20190220170722.GA9655@ACM>
2019-02-20 18:02 ` Eli Zaretskii
2019-02-20 18:58 ` Alan Mackenzie
2019-02-20 19:27 ` Eli Zaretskii
2019-02-20 21:30 ` Alan Mackenzie
[not found] ` <20190220213003.GC9655@ACM>
2019-02-21 3:40 ` Eli Zaretskii
2019-02-24 17:37 ` Alan Mackenzie
2019-02-24 17:56 ` Eli Zaretskii
2019-02-24 21:00 ` Alan Mackenzie
2019-02-25 20:11 ` Eli Zaretskii
2019-02-25 20:48 ` Alan Mackenzie
2019-02-26 13:50 ` Alan Mackenzie
[not found] ` <20190226135048.GA19653@ACM>
2019-02-26 15:00 ` Alan Mackenzie
2019-02-26 15:39 ` Eli Zaretskii
2019-02-26 16:11 ` Alan Mackenzie
2019-02-26 16:42 ` Eli Zaretskii
2019-02-26 16:55 ` Alan Mackenzie
[not found] ` <20190226165505.GD19653@ACM>
2019-02-26 17:20 ` Eli Zaretskii
2019-02-26 17:23 ` Alan Mackenzie
2019-02-26 15:36 ` Eli Zaretskii
2019-02-26 20:09 ` Stefan Monnier
[not found] ` <jwv8sy2z5yc.fsf-monnier+emacsbugs@gnu.org>
2019-02-26 21:45 ` Alan Mackenzie
2019-02-26 22:09 ` Stefan Monnier
2019-02-27 14:22 ` Alan Mackenzie
[not found] ` <20190227142251.GB4772@ACM>
2019-02-27 15:08 ` Alan Mackenzie
[not found] ` <20190227150849.GC4772@ACM>
2019-02-27 15:40 ` Stefan Monnier
2019-02-27 17:10 ` Alan Mackenzie [this message]
2019-02-27 16:39 ` Eli Zaretskii
2019-02-27 17:31 ` Alan Mackenzie
2019-02-27 17:41 ` Stefan Monnier
[not found] ` <20190227173132.GG4772@ACM>
2019-02-27 18:07 ` Eli Zaretskii
2019-02-28 10:50 ` Alan Mackenzie
2019-02-28 17:41 ` Eli Zaretskii
2019-02-28 21:54 ` Alan Mackenzie
[not found] ` <jwvpnrdb0xj.fsf-monnier+emacsbugs@gnu.org>
2019-02-27 18:48 ` Eli Zaretskii
2019-02-27 20:43 ` Alan Mackenzie
2019-02-26 23:00 ` Stefan Monnier
2019-02-20 21:25 ` Daniel Lopez
2019-02-22 16:26 ` Alan Mackenzie
2019-03-01 14:34 ` Alan Mackenzie
[not found] ` <20190301143414.GD5674@ACM>
2019-03-01 17:58 ` Daniel Lopez
2019-03-01 17:42 ` Alan Mackenzie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190227171036.GF4772@ACM \
--to=acm@muc.de \
--cc=34525@debbugs.gnu.org \
--cc=daniel.lopez999@gmail.com \
--cc=monnier@IRO.UMontreal.CA \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).