unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "João Távora" <joaotavora@gmail.com>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: tomas@tuxteam.de, emacs-devel <emacs-devel@gnu.org>
Subject: Re: A read-based grep-like for symbols (el-search?) (was Do shorthands break basic tooling (tags, grep, etc)? (was Re: Shorthands have landed on master))
Date: Fri, 1 Oct 2021 17:05:49 +0100	[thread overview]
Message-ID: <CALDnm50sBQ16yGFah88C32ox0sEz5tm4Vx8VKuyok8-nMFT94w@mail.gmail.com> (raw)
In-Reply-To: <a577c874-3b7d-4120-5399-5ead89d37f82@yandex.ru>

On Fri, Oct 1, 2021 at 4:48 PM Dmitry Gutov <dgutov@yandex.ru> wrote:
>
> On 01.10.2021 17:40, João Távora wrote:
>
> >> Certain language designers intentionally limit the language's power due
> >> to usability considerations, keeping in mind their audience.
> >
> > What languages, what evidence for this?  Anyway, many more limit the power
> > due to performance considerations.  Counts as "usability"? I guess. IME
> > language  audiences that are interested in performance usually don't
> > care so much
> > about ergonomics and vice versa.
>
> Go would be one example. The reasoning lies largely in the field of
> usability. Their understanding of it, at least.

Yes Go, I see what you mean.  But it's been growing with new features,
like generic functions.  And has namespaces.  They didn't design it
around grep, that's for sure.  That's what I meant.

> Taking the example from the manual, the clients would be able to write
> ;; elisp-shorthands: (("snu" . "some-nice-string-utils"))
> but not
> ;; elisp-shorthands: (("sn" . "some-nice"))
> and that doesn't sound like a terrible limitation.

I agree.  We could make it a recommendation, i.e. issue a (stern)
warning when we
detect this.  Or not allow shorthands of other forms in Emacs code, ELPA, etc.

> > But
> > possible, yes.  Would you like to work on that `thing-at-pt.el` front?
>
> thing-at-pt? I'm not sure which particular task you are referring to.

thingatpt.el, sorry.  The library used by other Elisp programs when they
want to pick some text from the buffer, at point, that represents a symbol,
a string, a list.  We could have some kind of "symbol-prefix" "symbol-suffix"
or "symbol-part" for eventually telling grep to go search only for that part.

> > That's not the approach I was thinking of, but I hope to present a working
> > prototype soon, which is a better way to present ideas.
> Looking forward to it.

Just realized the default xref-backend-references uses semantic and ede...

Also realized that you do some kind of (intern (format ""...)) there.
Grep heresy!

> Simply doing
>
> (benchmark 1 '(dolist (dir load-path)
>                  (when (file-exists-p dir)
>                    (let ((files (directory-files dir t "\\.el\\'")))
>                      (dolist (file files)
>                        (unless (file-directory-p file)
>                          (with-temp-buffer
>                            (insert-file file)
>                            (read-from-string (buffer-string)))))))))
>
> Reports 2.5 seconds here.

OK, thanks, gonna start with that snippet. Love a good snippet.
Are these Emacs's files? You can read from the buffer directly.  And
you could reuse buffers.
Dunno if it makes a difference.

But even before I do, a good way to solve this is the good old speed-for-space.
aka cache.  No point in reading a file that we've read and hasn't
changed since last
time right?  mtime caches look plausible, and we could even make it so
that visited
files' buffers are also read.

My first challenge will be to check if the reader does source
tracking, or is somehow
pluggable to call a function when it reads a symbol.

João



  reply	other threads:[~2021-10-01 16:05 UTC|newest]

Thread overview: 332+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-28  0:38 Do shorthands break basic tooling (tags, grep, etc)? (was Re: Shorthands have landed on master) Phil Sainty
2021-09-28  5:43 ` Lars Ingebrigtsen
2021-09-28  7:26   ` João Távora
2021-09-30  6:03   ` Richard Stallman
2021-09-30  8:20     ` Gregory Heytings
2021-09-30 10:31       ` André A. Gomes
2021-09-30 10:54         ` Alan Mackenzie
2021-09-30 11:18           ` João Távora
2021-09-30 11:40             ` André A. Gomes
2021-09-30 16:58             ` Alan Mackenzie
2021-09-30 20:25               ` João Távora
2021-10-01  3:01                 ` Stefan Monnier
2021-09-30 11:30           ` André A. Gomes
2021-09-30 17:37             ` Alan Mackenzie
2021-09-30 11:46         ` Gregory Heytings
2021-09-30 12:41           ` João Távora
2021-09-30 13:00             ` Tomas Hlavaty
2021-09-30 13:26               ` João Távora
2021-09-30 14:26                 ` Tomas Hlavaty
2021-09-30 14:57                   ` João Távora
2021-09-30 15:50                     ` Tomas Hlavaty
2021-09-30 16:02                       ` João Távora
2021-09-30 17:58                         ` Tomas Hlavaty
2021-09-30 23:30                           ` João Távora
2021-10-04 15:29                   ` André A. Gomes
2021-09-30 13:18             ` Gregory Heytings
2021-09-30 13:31               ` João Távora
2021-09-30 13:41                 ` Gregory Heytings
2021-09-30 16:23             ` [External] : " Drew Adams
2021-09-30 17:19               ` João Távora
2021-10-01  1:20                 ` Michael Heerdegen
2021-09-30 22:10               ` Michael Heerdegen
2021-09-30 22:22                 ` A read-based grep-like for symbols (el-search?) (was Do shorthands break basic tooling (tags, grep, etc)? (was Re: Shorthands have landed on master)) João Távora
2021-09-30 23:23                   ` Michael Heerdegen
2021-09-30 23:38                     ` João Távora
2021-10-01  1:17                       ` Michael Heerdegen
2021-10-01  7:02                       ` tomas
2021-10-01 13:15                         ` João Távora
2021-10-01 13:53                           ` tomas
2021-10-01 14:30                           ` Dmitry Gutov
2021-10-01 14:40                             ` João Távora
2021-10-01 15:48                               ` Dmitry Gutov
2021-10-01 16:05                                 ` João Távora [this message]
2021-10-01 16:11                                   ` João Távora
2021-10-01 16:41                                     ` João Távora
2021-10-01 23:17                                       ` Michael Heerdegen
2021-10-02  1:14                                       ` Dmitry Gutov
2021-10-02  1:46                                         ` João Távora
2021-10-02  2:13                                           ` Dmitry Gutov
2021-10-04 15:57                                           ` André A. Gomes
2021-10-02  1:05                                   ` Dmitry Gutov
2021-10-02  1:30                                     ` João Távora
2021-10-02  1:43                                       ` Dmitry Gutov
2021-10-02  2:05                                         ` João Távora
2021-10-02  2:24                                           ` Dmitry Gutov
2021-10-02  8:39                                           ` Adam Porter
2021-10-02  8:36                                 ` Adam Porter
2021-10-02 12:16                                   ` Dmitry Gutov
2021-10-02 23:18                                 ` Richard Stallman
2021-10-03 21:17                                   ` Gregory Heytings
2021-10-07 22:21                                     ` Richard Stallman
2021-10-18 21:13                                       ` Gregory Heytings
2021-10-18 21:22                                       ` Gregory Heytings
2021-10-20  6:45                                         ` Richard Stallman
2021-10-20  8:00                                           ` Gregory Heytings
2021-10-23 23:26                                             ` Richard Stallman
2021-10-01 22:58                               ` Gregory Heytings
2021-10-01 23:03                                 ` João Távora
2021-10-02  8:50                                   ` Gregory Heytings
2021-10-02 10:29                                     ` João Távora
2021-10-02 11:57                                       ` Gregory Heytings
2021-10-02 12:44                                         ` João Távora
2021-10-02 14:50                                           ` João Távora
2021-10-02 15:01                                           ` Gregory Heytings
2021-10-02 15:22                                             ` Stefan Kangas
2021-10-02 15:33                                               ` But then what are namespaces ? (was: A read-based grep-like for symbols (el-search?) (was Do shorthands break basic tooling (tags, grep, etc)? (was Re: Shorthands have landed on master))) João Távora
2021-10-02 19:42                                                 ` Gregory Heytings
2021-10-02 19:59                                                   ` But then what are namespaces ? Stefan Monnier
2021-10-02 20:41                                                     ` Gregory Heytings
2021-10-02 21:05                                                       ` Stefan Monnier
2021-10-02 21:09                                                         ` João Távora
2021-10-02 21:14                                                           ` Stefan Monnier
2021-10-02 22:41                                                             ` João Távora
2021-10-02 22:49                                                               ` João Távora
2021-10-02 23:31                                                               ` Stefan Monnier
2021-10-03 21:47                                                         ` Gregory Heytings
2021-10-02 20:00                                                   ` But then what are namespaces ? (was: A read-based grep-like for symbols (el-search?) (was Do shorthands break basic tooling (tags, grep, etc)? (was Re: Shorthands have landed on master))) João Távora
2021-10-02 20:41                                                     ` Gregory Heytings
2021-10-02 20:46                                                       ` João Távora
2021-10-03  1:15                                                   ` [External] : " Drew Adams
2021-10-02 15:25                                             ` A read-based grep-like for symbols (el-search?) (was Do shorthands break basic tooling (tags, grep, etc)? (was Re: Shorthands have landed on master)) João Távora
2021-10-02 16:08                                               ` Gregory Heytings
2021-10-01 22:58                           ` Gregory Heytings
2021-10-01 23:10                             ` João Távora
2021-10-02  9:03                               ` Gregory Heytings
2021-10-02 10:25                                 ` João Távora
2021-10-01 23:04                         ` Michael Heerdegen
2021-09-30 12:34         ` Do shorthands break basic tooling (tags, grep, etc)? (was Re: Shorthands have landed on master) Tomas Hlavaty
2021-09-28  6:25 ` Eli Zaretskii
2021-09-28  7:41   ` João Távora
2021-09-28  8:04     ` Eli Zaretskii
2021-09-28  8:07     ` Helmut Eller
2021-10-02  1:06       ` João Távora
2021-09-28 12:40   ` Stefan Monnier
2021-09-28 15:28     ` João Távora
2021-09-28 19:21       ` Stefan Monnier
2021-09-28 17:25   ` Alan Mackenzie
2021-09-28 18:25     ` Eli Zaretskii
2021-09-28 19:05       ` Alan Mackenzie
2021-09-28 19:29         ` Eli Zaretskii
2021-09-30 12:23           ` Phil Sainty
2021-09-30 12:28             ` Gregory Heytings
2021-09-30 12:29               ` Gregory Heytings
2021-09-30 12:44             ` Joost Kremers
2021-09-30 13:18               ` Adam Porter
2021-10-01  0:11                 ` Stefan Kangas
2021-09-30 12:52             ` Tomas Hlavaty
2021-09-30 12:55               ` João Távora
2021-09-30 13:49                 ` Tomas Hlavaty
2021-09-30 13:17             ` Lars Ingebrigtsen
2021-10-01  0:21               ` João Távora
2021-09-30 14:12             ` Eli Zaretskii
2021-09-30 14:27               ` João Távora
2021-09-30 22:50               ` Phil Sainty
2021-10-01  0:44                 ` Stefan Kangas
2021-10-01  7:06                   ` Lars Ingebrigtsen
2021-10-01  7:24                     ` João Távora
2021-10-01 10:10                       ` Eli Zaretskii
2021-10-01  6:09                 ` Eli Zaretskii
2021-10-01 12:24                   ` Phil Sainty
2021-10-01 13:00                     ` Eli Zaretskii
2021-10-02  0:28                       ` Phil Sainty
2021-10-02  6:45                         ` Eli Zaretskii
2021-10-02  7:44                           ` Phil Sainty
2021-10-02  8:53                             ` Eli Zaretskii
2021-10-02 10:52                             ` João Távora
2021-10-04  0:12                               ` Richard Stallman
2021-10-04  0:16                               ` Richard Stallman
2021-10-04 13:09                                 ` Gregory Heytings
2021-10-04 15:44                                 ` João Távora
2021-10-04 16:51                                   ` Eli Zaretskii
2021-10-04 17:43                                     ` João Távora
2021-10-04 17:51                                       ` Eli Zaretskii
2021-10-04 18:34                                   ` Gregory Heytings
2021-10-04 19:15                                     ` João Távora
2021-10-04 19:30                                       ` Gregory Heytings
2021-10-05 21:20                                         ` Richard Stallman
2021-10-06 13:12                                         ` João Távora
2021-10-05 21:20                                   ` Richard Stallman
2021-10-05 21:20                                   ` Richard Stallman
2021-10-05 22:07                                     ` João Távora
2021-10-05 22:15                                       ` Stefan Monnier
2021-10-06 11:28                                         ` João Távora
2021-10-06 12:21                                           ` Stefan Monnier
2021-10-06 12:30                                             ` João Távora
2021-10-06 12:46                                               ` Stefan Monnier
2021-10-06 13:16                                                 ` João Távora
2021-10-06 16:23                                                   ` João Távora
2021-10-06 20:00                                                     ` Stefan Monnier
2021-10-06 21:10                                                       ` João Távora
2021-10-06 21:39                                                         ` Stefan Monnier
2021-10-10 21:09                                         ` Dmitry Gutov
2021-10-07 22:21                                       ` Richard Stallman
2021-10-07 22:24                                         ` João Távora
2021-10-08  6:08                                           ` Eli Zaretskii
2021-10-08 12:58                                             ` Stefan Monnier
2021-10-08 13:22                                               ` Eli Zaretskii
2021-10-10 21:06                                                 ` Dmitry Gutov
2021-10-10 21:18                                                   ` João Távora
2021-10-08 14:16                                               ` João Távora
2021-10-08 15:55                                                 ` Stefan Monnier
2021-10-08 17:34                                                   ` Eli Zaretskii
2021-10-08 18:16                                                     ` Stefan Monnier
2021-10-08 18:51                                                       ` Eli Zaretskii
2021-10-08 23:43                                                   ` João Távora
2021-10-01 22:38             ` Richard Stallman
2021-10-01 22:41               ` João Távora
2021-10-01 22:52               ` João Távora
2021-10-01 23:52               ` Phil Sainty
2021-10-02  1:38               ` T.V Raman
2021-09-28 19:30         ` Dmitry Gutov
2021-09-28 18:38     ` Stefan Monnier
2021-09-28 19:14       ` Alan Mackenzie
2021-09-28 19:22         ` Eli Zaretskii
2021-09-28 19:31           ` Alan Mackenzie
2021-09-28 19:41             ` Eli Zaretskii
2021-09-30 22:10         ` Richard Stallman
2021-09-30 23:59           ` Tomas Hlavaty
2021-09-28  7:21 ` João Távora
2021-09-28 12:49   ` Phil Sainty
2021-09-28 13:08     ` Dmitry Gutov
2021-09-28 14:04       ` Gregory Heytings
2021-09-28 15:01         ` Adam Porter
2021-09-28 15:20       ` João Távora
2021-09-28 19:23         ` Gregory Heytings
2021-09-28 15:15     ` João Távora
2021-09-30  6:06     ` Richard Stallman
2021-10-05  5:57       ` Elisp LSP Server Ag Ibragimov
2021-10-05  6:38         ` Po Lu
2021-10-05  9:50           ` Philip Kaludercic
2021-10-05 11:27             ` Po Lu
2021-10-05 11:46               ` Philip Kaludercic
2021-10-06 20:57                 ` Richard Stallman
2021-10-06 21:22                   ` Philip Kaludercic
2021-10-06 21:44                     ` Stefan Monnier
2021-10-07 22:27                     ` Richard Stallman
2021-10-07  0:49                   ` Po Lu
2021-10-10 12:48                     ` Ag Ibragimov
2021-10-10 14:19                       ` Daniel Martín
2021-10-10 16:49                         ` Philip Kaludercic
2021-10-10 19:25                           ` Daniel Martín
2021-10-11  7:44                         ` Po Lu
2021-10-11 21:15                           ` Richard Stallman
2021-10-12  5:29                           ` Ag Ibragimov
2021-10-12  5:48                             ` Po Lu
2021-10-12 17:14                               ` Ag Ibragimov
2021-10-12 17:46                                 ` Stefan Kangas
2021-10-12 20:53                                   ` dick
2021-10-13  2:29                                     ` Eli Zaretskii
2021-10-13 11:56                                       ` dick
2021-10-13 13:19                                         ` Eli Zaretskii
2021-10-13  4:47                                   ` Ag Ibragimov
2021-10-13  0:02                                 ` Po Lu
2021-10-27 14:36                                 ` Richard Stallman
2021-10-27 18:04                                   ` dick
2021-10-27 18:27                                     ` tomas
2021-10-27 18:33                                     ` Eli Zaretskii
2021-10-27 18:55                                     ` Karl Fogel
2021-10-27 19:15                                       ` dick
2021-10-12  7:14                             ` tomas
2021-10-12  8:04                               ` Ag Ibragimov
2021-10-12 22:43                             ` Richard Stallman
2021-10-13  5:36                               ` Ag Ibragimov
2021-10-13 22:40                                 ` Richard Stallman
2021-10-12 22:43                             ` Richard Stallman
2021-10-13  3:42                               ` Ag Ibragimov
2021-10-13  5:20                                 ` Po Lu
2021-10-13 12:39                                   ` Eli Zaretskii
2021-10-13 12:49                                     ` Po Lu
2021-10-13 13:25                                       ` Eli Zaretskii
2021-10-13 13:37                                         ` Po Lu
2021-10-13 13:53                                           ` Eli Zaretskii
2021-10-13 23:42                                             ` Po Lu
2021-10-13 13:38                                         ` Philip Kaludercic
2021-10-14 22:22                                         ` Richard Stallman
2021-10-14 22:26                                     ` Richard Stallman
2021-10-15  6:35                                       ` Eli Zaretskii
2021-10-15  9:54                                         ` Tim Cross
2021-10-10 23:45                       ` Dmitry Gutov
2021-10-11  7:34                       ` Po Lu
2021-10-11  9:10                         ` Alexandre Garreau
2021-10-11 10:46                           ` Po Lu
2021-10-11 10:48                             ` Alexandre Garreau
2021-10-11 21:16                             ` Richard Stallman
2021-10-12  7:17                               ` tomas
2021-10-14 12:48                               ` Alexandre Garreau
2021-10-15 22:47                                 ` Richard Stallman
2021-10-11 21:10                       ` Richard Stallman
2021-10-22 16:23                       ` Mathias Dahl
2021-10-22 16:40                         ` Dmitry Gutov
2021-10-22 16:45                           ` Alexandre Garreau
2021-10-22 19:59                             ` Tim Cross
2021-10-22 22:27                               ` Dmitry Gutov
2021-10-22 22:48                                 ` Tim Cross
2021-10-22 23:11                                   ` Dmitry Gutov
2021-10-23 23:27                                 ` Richard Stallman
2021-10-25  7:47                               ` Alexandre Garreau
2021-10-23  2:00                             ` Po Lu
2021-10-25  2:17                             ` Richard Stallman
2021-10-25  7:00                               ` Alexandre Garreau
2021-10-22 16:55                           ` Mathias Dahl
2021-10-22 20:55                             ` Dmitry Gutov
2021-10-25  2:17                             ` Richard Stallman
2021-10-25  7:22                               ` Alexandre Garreau
2021-10-25  7:45                                 ` Theodor Thornhill
2021-10-25  7:51                                   ` Alexandre Garreau
2021-10-25  8:23                                     ` Theodor Thornhill
2021-10-30  6:51                                 ` Richard Stallman
2021-11-01 11:48                                   ` Alexandre Garreau
2021-11-01 17:47                                     ` Tim Cross
2021-11-03  3:18                                     ` Richard Stallman
2021-11-03 20:06                                       ` Jostein Kjønigsen
2021-11-05  3:53                                         ` Richard Stallman
2021-11-05  5:55                                           ` Daniel Brooks
2021-11-05  6:25                                             ` Jostein Kjønigsen
2021-11-05  9:56                                       ` Alexandre Garreau
2021-10-25  5:46               ` Jostein Kjønigsen
2021-10-06 20:57             ` Richard Stallman
2021-10-06 21:35               ` Philip Kaludercic
2021-10-05 10:15         ` Joost Kremers
2021-10-06 20:57           ` Richard Stallman
2021-10-12  2:52             ` Ag Ibragimov
2021-10-12  3:37               ` dick
2021-10-12  3:43               ` Stefan Kangas
2021-10-12 22:41                 ` Richard Stallman
2021-10-12  4:08               ` Stefan Monnier
2021-10-12  5:55               ` Po Lu
2021-10-12  7:22                 ` Ag Ibragimov
2021-10-12 10:21                   ` Philip Kaludercic
2021-10-12 12:14                     ` tomas
2021-10-12 12:51                       ` Philip Kaludercic
2021-10-12 13:08                         ` tomas
2021-10-12 12:22                   ` Stefan Monnier
2021-10-12 22:41                 ` Richard Stallman
2021-10-13  0:00                   ` Po Lu
2021-10-13  0:22                     ` Dmitry Gutov
2021-10-13  0:31                   ` Tim Cross
2021-10-13 17:15                     ` Joost Kremers
2021-10-13 17:34                       ` Dmitry Gutov
2021-10-13 20:00                         ` Tim Cross
2021-10-13 21:47                           ` Stefan Monnier
2021-10-13 23:14                           ` Dmitry Gutov
2021-10-14  6:39                           ` Eli Zaretskii
2021-10-14  6:58                             ` Po Lu
2021-10-14  6:52                           ` Po Lu
2021-10-14 11:08                             ` dick
2021-10-14 13:34                           ` Augusto Stoffel
2021-10-14  8:20                         ` João Távora
2021-10-15 22:51                           ` Richard Stallman
2021-10-16 19:02                             ` João Távora
2021-10-17 23:49                               ` Richard Stallman
2021-10-17 23:58                                 ` Dmitry Gutov
2021-10-20 22:33                                   ` Richard Stallman
2021-10-18  0:32                                 ` Tim Cross
2021-10-18  1:18                                   ` Stefan Monnier
2021-10-18  2:23                                 ` Eli Zaretskii
2021-10-18 12:43                                   ` Stefan Monnier
2021-10-18 13:13                                     ` Eli Zaretskii
2021-10-14  7:01                       ` Po Lu
2021-10-14  8:43                         ` [OT] Elisp as a general purpose programming language (was: Elisp LSP Server) Joost Kremers
2021-10-14 10:37                           ` Jean-Christophe Helary
2021-10-14  7:03                     ` Elisp LSP Server Po Lu

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=CALDnm50sBQ16yGFah88C32ox0sEz5tm4Vx8VKuyok8-nMFT94w@mail.gmail.com \
    --to=joaotavora@gmail.com \
    --cc=dgutov@yandex.ru \
    --cc=emacs-devel@gnu.org \
    --cc=tomas@tuxteam.de \
    /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).