unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Michael Heerdegen <michael_heerdegen@web.de>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: Eli Zaretskii <eliz@gnu.org>,
	57079@debbugs.gnu.org, stefan@marxist.se,
	Juri Linkov <juri@linkov.net>
Subject: bug#57079: 29.0.50; Performance of seq-uniq is not very good
Date: Tue, 16 Aug 2022 01:37:50 +0200	[thread overview]
Message-ID: <87pmh1axip.fsf@web.de> (raw)
In-Reply-To: <87tu6ec8nc.fsf@gnus.org> (Lars Ingebrigtsen's message of "Mon, 15 Aug 2022 08:39:51 +0200")

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Myself, I'd prefer that virtually all the functions in seq.el take a
> KEY, too, but that's not what that library is.  Adding KEY to just
> `seq-uniq' doesn't make sense from a library design standpoint.

But it makes sense from the viewpoint of practical requirements.  Half
of all use cases will run much slower if we don't support this case.
Practical requirements and efficiency are more important than a slippery
as an eel design.

I come from mathematics, I looked at the code usages and saw equivalence
classes and projection functions hiding behind.  I regret that I ever
used the work "key function".

It would be a bad design choice not to address all the situations where
abstraction wrt equivalence classes makes sense and improves a library
just because CL also does that.

Or do you have an idea for a different design that addresses such cases?
Simply ignoring them makes no sense.

And I see a bigger (design) problem here: as you said, there is a large
overlap between seq.el and cl-lib.el.  Once we said we don't want to
extend CL too much because it should be compatible with Common Lisp.
That was one reason why seq.el had been started.  When we now say that
we can't implement something in seq.el, something that is a practical
need, because it already exists in cl-lib, we have a problem: we will end
with two incomplete and half baked solutions for sequence handling.

People will then have to use both libraries to get efficient code and
support for their use cases, merging functions from libraries in their
code.  This should not be our long-term objective.  It would also be a
very bad design, in the end, for Emacs.

Michael.





  reply	other threads:[~2022-08-15 23:37 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-09 16:11 bug#57079: 29.0.50; Performance of seq-uniq is not very good Stefan Kangas
2022-08-09 16:47 ` Eli Zaretskii
2022-08-09 16:57   ` Lars Ingebrigtsen
2022-08-09 17:07     ` Eli Zaretskii
2022-08-09 17:21       ` Lars Ingebrigtsen
2022-08-09 17:45         ` Stefan Kangas
2022-08-09 17:18     ` Eli Zaretskii
2022-08-09 17:23       ` Lars Ingebrigtsen
2022-08-09 17:36         ` Eli Zaretskii
2022-08-09 17:50           ` Eli Zaretskii
2022-08-09 17:52           ` Lars Ingebrigtsen
2022-08-09 17:59             ` Eli Zaretskii
2022-08-09 18:03               ` Lars Ingebrigtsen
2022-08-09 18:16                 ` Eli Zaretskii
2022-08-09 19:35                   ` Juri Linkov
2022-08-12 13:16                     ` Lars Ingebrigtsen
2022-08-12 23:59                       ` Michael Heerdegen
2022-08-13 11:50                         ` Lars Ingebrigtsen
2022-08-13 20:24                           ` Michael Heerdegen
2022-08-15  6:39                             ` Lars Ingebrigtsen
2022-08-15 23:37                               ` Michael Heerdegen [this message]
2022-08-17 11:01                                 ` Lars Ingebrigtsen
2022-08-20  3:17                                   ` Michael Heerdegen
2022-08-20  9:19                                     ` Lars Ingebrigtsen
2022-08-20 15:13                                       ` Drew Adams

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=87pmh1axip.fsf@web.de \
    --to=michael_heerdegen@web.de \
    --cc=57079@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=juri@linkov.net \
    --cc=larsi@gnus.org \
    --cc=stefan@marxist.se \
    /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).