unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: Jani Nikula <jani@nikula.org>
To: Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
Cc: notmuch@notmuchmail.org
Subject: Re: [PATCH v2] emacs: Pass a copy to notmuch-saved-search-sort-function
Date: Tue, 6 Mar 2012 10:20:23 +0200	[thread overview]
Message-ID: <CAB+hUn-jcxyS8wR7UfC1skRsUtF+r04hCc-oVrBwUsvZefNPzw@mail.gmail.com> (raw)
In-Reply-To: <87zkbukb59.fsf@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4066 bytes --]

On Mar 5, 2012 11:11 PM, "Dmitry Kurochkin" <dmitry.kurochkin@gmail.com>
wrote:
>
> On Mon, 5 Mar 2012 22:55:54 +0200, Jani Nikula <jani@nikula.org> wrote:
> > On Mar 5, 2012 5:43 PM, "Dmitry Kurochkin" <dmitry.kurochkin@gmail.com>
> > wrote:
> > >
> > > On Mon, 05 Mar 2012 12:17:43 +0100, Daniel Schoepe <daniel@schoepe.org
>
> > wrote:
> > > > On Mon, 05 Mar 2012 06:21:52 +0400, Dmitry Kurochkin <
> > dmitry.kurochkin@gmail.com> wrote:
> > > > > On Thu,  1 Mar 2012 21:24:38 +0100, Daniel Schoepe <
daniel@schoepe.org>
> > wrote:
> > > > > > notmuch-saved-search-sort-function might destructively modify
its
> > > > > > input (`sort' does that, for instance), so it should not be
given
> > > > > > notmuch-saved-searches directly.
> > > > > > ---
> > > > >
> > > > > -1
> > > > >
> > > > > I think we should require `notmuch-saved-search-sort-function'
not to
> > > > > have side effects.  Current documentation should be more clear
about
> > > > > this.  We need to fix `notmuch-sort-saved-searches' to copy the
list
> > > > > before calling `sort'.  But we should not do it in
> > > > > `notmuch-hello-insert-saved-searches' for any sorting function
(which
> > > > > may not need this copying).
> > > >
> > > > My reasoning was that since sort is such a common function, many
users
> > > > will probably use sort for their own sorting functions, not
realizing
> > > > that it has side effects. This will lead to confusing behavior
that's
> > > > not so easy to track down.
> > > >
> > > > Copying the list of saved searches when running notmuch-hello does
not
> > > > seem be relevant to performance to me, since it's a) not called that
> > > > often and b) the list of saved searches will rarely exceed 30
elements.
> > > >
> > > > Hence, this way we can avoid some headaches for users who define
their
> > > > own sorting functions at a negligible (performance) cost.
Incidentally,
> > > > this is also how notmuch-hello did it before the user-defined
sections
> > > > patches.
> > > >
> > >
> > > I do not buy the argument that we should help users who implement
their
> > > own sorting functions but do not read documentation for functions they
> > > use.  Apparently, those who implemented the `sort' function had
similar
> > > ideas.  And I do not think it is our job to add workarounds for it.
> > >
> > > An alternative (and IMO better) solution would be to allow
customization
> > > of compare function used for sorting instead of the sorting function
> > > itself.
> >
> > Providing the customization of the sort function is more powerful than
the
> > compare function. In the case of saved searches I can imagine people
might
> > want to partially use the original order while sort the rest (e.g.
> > important ones first in predefined order, others sorted).
>
> Valid point.
>
> > In fact this also
> > allows dropping out some elements. And renaming. And changing the
queries...
> >
> > (I had something like that in mind originally but then settled with just
> > capitalizing the important ones to show them first.)
> >
>
> All of these are invalid usages of `notmuch-saved-search-sort-function'.
> The function is meant for sorting only (hence the name).  So the code
> might assume that the function does only sorting.
>
> I do not understand why we need such functionality (renaming,
> capitalizing, etc.).  You can just rename the query itself if you want
> to.  Should be easier IMO.

Just for the record, I have a few important searches capitalized in the
saved searches and just use the regular sort. Capitalized entries sort
before the lowercase ones.

> But if we need such functionality, we should
> not misuse sorting function for it.  We can add `notmuch-saved-searches'
> function which would return saved searches list (sorted, renamed and
> mangled in any other way).  By default it would return
> `notmuch-saved-searches' variable as is.

Agreed.

As to the problem at hand, we should just fix the sort function not to
modify its input. I wouldn't hold my breath waiting for someone to provide
patches for the rest...

BR,
Jani.

[-- Attachment #2: Type: text/html, Size: 5536 bytes --]

  reply	other threads:[~2012-03-06  8:20 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-01 14:44 [PATCH 0/1] emacs: Pass a copy to notmuch-saved-search-sort-function Daniel Schoepe
2012-03-01 14:44 ` [PATCH] " Daniel Schoepe
2012-03-05 20:55   ` [PATCH v2] " Jani Nikula
2012-03-05 21:08     ` Daniel Schoepe
2012-03-05 21:09     ` Dmitry Kurochkin
2012-03-06  8:20       ` Jani Nikula [this message]
2012-03-01 20:24 ` [PATCH v2 0/1] " Daniel Schoepe
2012-03-01 20:24   ` [PATCH v2] " Daniel Schoepe
2012-03-03 21:36     ` Jani Nikula
2012-03-05  2:21     ` Dmitry Kurochkin
2012-03-05 11:17       ` Daniel Schoepe
2012-03-05 15:23         ` Tomi Ollila
2012-03-05 15:42         ` Dmitry Kurochkin

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://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAB+hUn-jcxyS8wR7UfC1skRsUtF+r04hCc-oVrBwUsvZefNPzw@mail.gmail.com \
    --to=jani@nikula.org \
    --cc=dmitry.kurochkin@gmail.com \
    --cc=notmuch@notmuchmail.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://yhetil.org/notmuch.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).