unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Alan Mackenzie <acm@muc.de>
Cc: emacs-devel@gnu.org
Subject: Re: [Emacs-diffs] comment-cache 223d16f 2/3: Apply `comment-depth' text properties when calling `back_comment'.
Date: Mon, 14 Mar 2016 03:13:43 +0200	[thread overview]
Message-ID: <0ce1b5a5-6892-47ad-03d4-d4c2ba2bea54@yandex.ru> (raw)
In-Reply-To: <20160313175922.GE1871@acm.fritz.box>

On 03/13/2016 07:59 PM, Alan Mackenzie wrote:

>> That severely depends on your usage. Have you tried it?
>
> Have now, yes.

Any performance numbers on using this approach in C/l mode?

>> Second, I'm sure you can decrease syntax-ppss-max-span, if your language
>> is expensive to parse.
>
> I would think the speed of parse-partial-sexp is pretty much constant,
> independent of the language.

Well, it seems like that you would be calling it much more frequently 
than other packages. So you could adjust for that.

> It will be much faster.  The only looping involved is over the levels of
> an optimised binary tree (the text property intervals), not linearly
> over 10k characters.  By the time syntax-ppss has finished consing down
> its cache list, the text property stuff would be done.

Yes, it would be fast. But like we've noticed, calling syntax-ppss is 
also quick, and it basically has a constant upper bound, on average. 
It's hard to be *significantly* faster than that.

So I have to wonder why the "get out of a comment" feature is used in 
C/l mode so much that it becomes a bottleneck, and you get significant 
improvement in performance by dropping the caching logic to C. That is, 
of course, not a nice thing to ask considering the overall complexity of 
CC Mode, but still.

I don't see anything comparable to 10 second waiting described in 
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22884, when doing a 
comparable operation in a 5000-line Ruby file.

>> But it comes with a set of drawbacks that has already been brought up
>> in the discussions.
>
> That set has one member: the partial overlap in functionality with
> syntax-ppss.  No intrinsic drawbacks have yet been pointed out.  But you
> do so below (thanks!).

Aside from everything that's been mentioned already, it's written in C, 
reducing the pool of developers willing to work on it. And no, it 
doesn't make it "simple and maintainable", at least from my perspective.



  parent reply	other threads:[~2016-03-14  1:13 UTC|newest]

Thread overview: 130+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20160308132530.861.91488@vcs.savannah.gnu.org>
     [not found] ` <E1adHdj-0000FI-0W@vcs.savannah.gnu.org>
2016-03-08 14:19   ` [Emacs-diffs] comment-cache 223d16f 2/3: Apply `comment-depth' text properties when calling `back_comment' Stefan Monnier
2016-03-08 18:30     ` Alan Mackenzie
2016-03-08 18:42       ` Stefan Monnier
2016-03-08 20:07         ` Alan Mackenzie
2016-03-08 21:22           ` Dmitry Gutov
2016-03-08 21:43             ` Alan Mackenzie
2016-03-09  0:17           ` Stefan Monnier
2016-03-09  1:54             ` Stefan Monnier
2016-03-09 10:49             ` Problems with syntax-ppss: Was [... Apply `comment-depth' text properties when calling `back_comment'.] Alan Mackenzie
2016-03-09 13:11               ` Stefan Monnier
2016-03-09 14:19                 ` Alan Mackenzie
2016-03-09 19:16                   ` Stefan Monnier
2016-03-09 19:22                     ` Clément Pit--Claudel
2016-03-09 19:37                     ` Alan Mackenzie
2016-03-09 21:40                       ` Stefan Monnier
2016-03-10 13:01                         ` Alan Mackenzie
2016-03-10 14:52                           ` Stefan Monnier
2016-03-10 15:29                             ` Alan Mackenzie
2016-03-10 16:45                               ` Stefan Monnier
2016-03-10 17:25                                 ` Alan Mackenzie
2016-03-10 17:34                                   ` Stefan Monnier
2016-03-10 19:08                                     ` Alan Mackenzie
2016-03-10 23:10                                       ` Stefan Monnier
2016-03-11 12:50                                         ` Stefan Monnier
2016-03-11 20:48                                         ` Alan Mackenzie
2016-03-11 22:35                                           ` Stefan Monnier
2016-03-11 23:08                                             ` Alan Mackenzie
2016-03-11 23:09                                               ` Clément Pit--Claudel
2016-03-11 23:31                                               ` Stefan Monnier
2016-03-10 23:31                                     ` John Wiegley
2016-03-11  2:08                                       ` Clément Pit--Claudel
2016-03-11  3:08                                       ` Stefan Monnier
2016-03-11  7:27                           ` Andreas Röhler
2016-03-11 12:08                             ` Alan Mackenzie
2016-03-11 12:30                               ` Dmitry Gutov
2016-03-11 13:04                                 ` Alan Mackenzie
2016-03-11 20:21                                   ` Dmitry Gutov
2016-03-12 20:19                               ` Andreas Röhler
2016-03-12 20:38                                 ` Dmitry Gutov
2016-03-12 20:45                                 ` Alan Mackenzie
2016-03-13 14:56                                   ` Andreas Röhler
2016-03-10 13:41                   ` Stefan Monnier
2016-03-09 17:06               ` How do you check if the current point is in a comment or a string? (Was Re: Problems with syntax-ppss: Was [... Apply `comment-depth' text properties when calling `back_comment'.]) Clément Pit--Claudel
2016-03-09 17:24                 ` Kaushal Modi
2016-03-09 17:56                   ` Clément Pit--Claudel
2016-03-09 19:19                     ` Kaushal Modi
2016-03-09 19:34                       ` Clément Pit--Claudel
2016-03-10 14:28                     ` Stefan Monnier
2016-03-10 15:03                       ` Clément Pit--Claudel
2016-03-10 15:20                         ` Stefan Monnier
2016-03-10 17:21                           ` Clément Pit--Claudel
2016-03-12 20:45                       ` Andreas Röhler
2016-03-12 20:53                         ` Clément Pit--Claudel
2016-03-09 16:37       ` [Emacs-diffs] comment-cache 223d16f 2/3: Apply `comment-depth' text properties when calling `back_comment' Richard Stallman
2016-03-09 17:06         ` Dmitry Gutov
2016-03-10 21:20           ` Richard Stallman
2016-03-11  0:26             ` Dmitry Gutov
2016-03-11 12:22               ` Alan Mackenzie
2016-03-11 12:52                 ` Stefan Monnier
2016-03-11 16:20                   ` Drew Adams
2016-03-09 17:48         ` Alan Mackenzie
2016-03-09 19:58           ` martin rudalics
2016-03-09 20:36             ` Eli Zaretskii
2016-03-09 20:53               ` John Wiegley
2016-03-13  9:30                 ` Daniel Colascione
2016-03-13 15:28                   ` Stefan Monnier
2016-03-13 16:24                   ` Eli Zaretskii
2016-03-13 16:27                     ` Daniel Colascione
2016-03-13 17:19                       ` Eli Zaretskii
2016-03-14  1:13                         ` Stefan Monnier
2016-03-14 16:10                           ` Eli Zaretskii
2016-03-11 18:27             ` Alan Mackenzie
2016-03-12 17:08             ` Alan Mackenzie
2016-03-12 18:10               ` martin rudalics
2016-03-12 18:22                 ` Paul Eggert
2016-03-12 18:46                   ` martin rudalics
2016-03-12 19:36                     ` Alan Mackenzie
2016-03-13  9:26                       ` martin rudalics
2016-03-13 11:52                         ` Alan Mackenzie
2016-03-13 12:08                           ` martin rudalics
2016-03-13 12:49                             ` Alan Mackenzie
2016-03-13 13:32                               ` martin rudalics
2016-03-13 17:59                                 ` Eli Zaretskii
2016-03-13 20:09                                   ` martin rudalics
2016-03-14  1:15                                   ` Paul Eggert
2016-03-14  7:42                                     ` martin rudalics
2016-03-14 11:22                                       ` Alan Mackenzie
2016-03-14 19:41                                         ` martin rudalics
2016-03-14 20:58                                           ` Alan Mackenzie
2016-03-14 16:15                                       ` Eli Zaretskii
2016-03-14 19:41                                         ` martin rudalics
2016-03-14 17:00                                       ` Paul Eggert
2016-03-14 19:41                                         ` martin rudalics
2016-03-14 16:09                                     ` Eli Zaretskii
2016-03-13 18:00                               ` Eli Zaretskii
2016-03-13 18:41                                 ` Alan Mackenzie
2016-03-12 20:56               ` Dmitry Gutov
2016-03-12 21:29                 ` Clément Pit--Claudel
2016-03-12 21:59                   ` Dmitry Gutov
2016-03-12 21:58                 ` Alan Mackenzie
2016-03-12 22:16                   ` Dmitry Gutov
2016-03-13 17:59                     ` Alan Mackenzie
2016-03-13 22:49                       ` Stefan Monnier
2016-03-14 12:51                         ` Alan Mackenzie
2016-03-15  3:14                           ` Stefan Monnier
2016-03-14  1:13                       ` Dmitry Gutov [this message]
2016-03-14  1:30                         ` Stefan Monnier
2016-03-14  1:45                           ` Dmitry Gutov
2016-03-14  2:18                             ` Stefan Monnier
2016-03-14 12:23                         ` Alan Mackenzie
2016-03-14 16:15                           ` Dmitry Gutov
2016-03-14 17:29                             ` Alan Mackenzie
2016-03-14 17:52                               ` Dmitry Gutov
2016-03-14 18:46                                 ` Alan Mackenzie
2016-03-14 19:33                                   ` Dmitry Gutov
2016-03-14 21:20                                     ` Alan Mackenzie
2016-03-15  3:10                                       ` Stefan Monnier
2016-03-17  0:47                                       ` Dmitry Gutov
2016-03-17 18:47                                         ` Alan Mackenzie
2016-03-18  1:24                                           ` Dmitry Gutov
2016-03-10 21:20           ` Richard Stallman
2016-03-10 22:24             ` Alan Mackenzie
2016-03-12  1:53               ` Richard Stallman
2016-03-12  3:28                 ` Stefan Monnier
2016-03-12 19:28                   ` Richard Stallman
2016-03-09 17:51         ` Clément Pit--Claudel
2016-03-10 21:20           ` Richard Stallman
2016-03-10 21:38             ` Clément Pit--Claudel
2016-03-12  1:53               ` Richard Stallman
2016-03-10  7:14       ` Andreas Röhler

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=0ce1b5a5-6892-47ad-03d4-d4c2ba2bea54@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=acm@muc.de \
    --cc=emacs-devel@gnu.org \
    /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).