Gnus development mailing list
 help / color / mirror / Atom feed
From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: ding@gnus.org
Subject: Re: Experimental new Maildir backend
Date: Sun, 17 Jan 2021 13:33:25 -0800	[thread overview]
Message-ID: <87ft2z8d0a.fsf@ericabrahamsen.net> (raw)
In-Reply-To: <868s8sdjii.fsf@csic.es>

Juan José García-Ripoll <juanjose.garciaripoll@gmail.com> writes:

> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>> Very cool! It's great to see work on more backends. I'm also in the
>> process of putting together fixes for nnmaildir, so there might be a
>> little bit of redundancy in our work, but it looks like your approach is
>> a more drastic rethinking -- my changes are mostly incremental tweaks.
>
> Hi Eric, nice to see you also are interested in this format. I also
> started tweaking nnmaildir. I got to a point where I fixed the
> separator, introducing a configuration parameter that starts with ":"
> but can be configured to other values. Unfortunately the result was
> extremely slow.

You mean making that character configurable actually introduced a
slowdown? It seems odd that it would be that much of a factor.

> I gather Maildir creates one NOV file for every message, it also creates
> a folder for each flag and creates links (which I am not even sure
> whether it does correctly on Windows, where links are not always
> possible), for every article that has a mark. That made a folder with
> ~900 emails take minutes to load at all. I know that this is a Windows
> limitations but I think it points out how wasteful it is. In contrast,
> the archives I have based on nnml are very snappy.

Yeah, the whole setup is a little baroque. But I think this is the
dividing line between what I'm likely to do with nnmaildir, and where it
makes sense to write a new backend. I don't think I would change
nnmaildir's architecture, just try to fix some basic inefficiencies. If
users want a more drastic change, it makes more sense to just have a new
backend.

>> I saw on the github page that this is based off nnml code, and there are
>> several functions (moving messages, creating groups) that haven't been
>> implemented yet. I'm curious if you were able to use any of Gnus'
>> backend inheritance features -- are you having to write everything from
>> scratch? I haven't read the code yet...
>
> I started using inheritance, but it did not work. The parent backend did
> not get its variables properly assigned

To me this is usually a sign that there are code paths that don't hit
`nnoo-change-server'. I see you've got that in `nnmaild-open-server',
which gets called in `nnmaild-possibly-change-directory', but I would
take a look at the various code entry points and see if any of them
sneak past that. Also, you're calling `nnmaild-server-opened', but that
function doesn't seem to be defined?

> and there were lots of confusing group names: i.e. Archives.2011 would
> have to be renamed Archives.2011.cur so that nnml tries to first find
> that directory and then attempts Archives.2011/cur. However, at some
> point I also was not satisfied with nnml's approach, which only stores
> the NOV files and enforces that all file names must be a number (the
> article number) and I gave up. The result is not that bad, ~500 lines.
> The biggest hurdle was figuring out which backend functions need to be
> created for the backend to tell Gnus the attributes of a message. That
> is not at all clear in the manual and nnmaildir, nnimap and others
> seem to follow different not well documented paths.

This is too bad, and something else that I would (theoretically,
eventually) like to work on. If a new backend looks highly similar to an
existing backend, it should be able to share a lot of the code. What do
you mean exactly, "tell Gnus the attributes of a message"? If you have
concrete suggestions as to how Gnus could do a better job of allowing
inheritance, I'd love to hear it.

Eric



  reply	other threads:[~2021-01-17 21:34 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-16 18:47 Juan José García-Ripoll
2021-01-17  4:49 ` Eric Abrahamsen
2021-01-17  9:01   ` Juan José García-Ripoll
2021-01-17 21:33     ` Eric Abrahamsen [this message]
2021-01-18  9:39       ` Juan José García-Ripoll
2021-01-17 19:17   ` Eric S Fraga
2021-01-17 22:23     ` Eric Abrahamsen
2021-01-18 11:14       ` Eric S Fraga

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

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

  git send-email \
    --in-reply-to=87ft2z8d0a.fsf@ericabrahamsen.net \
    --to=eric@ericabrahamsen.net \
    --cc=ding@gnus.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.
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 NNTP newsgroup(s).