From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 389 invoked from network); 17 Jan 2021 04:50:30 -0000 Received: from mx1.math.uh.edu (129.7.128.32) by inbox.vuxu.org with ESMTPUTF8; 17 Jan 2021 04:50:30 -0000 Received: from lists1.math.uh.edu ([129.7.128.208]) by mx1.math.uh.edu with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1l101A-00FvYa-Uc for ml@inbox.vuxu.org; Sat, 16 Jan 2021 22:50:24 -0600 Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu) by lists1.math.uh.edu with smtp (Exim 4.94) (envelope-from ) id 1l101A-006bAF-7A for ml@inbox.vuxu.org; Sat, 16 Jan 2021 22:50:24 -0600 Received: from mx1.math.uh.edu ([129.7.128.32]) by lists1.math.uh.edu with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1l1018-006bA7-2d for ding@lists.math.uh.edu; Sat, 16 Jan 2021 22:50:22 -0600 Received: from quimby.gnus.org ([95.216.78.240]) by mx1.math.uh.edu with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1l1015-00FvYJ-LJ for ding@lists.math.uh.edu; Sat, 16 Jan 2021 22:50:21 -0600 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Transfer-Encoding:Content-Type:Mime-Version:References :Message-ID:Date:Subject:From:To:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=OYfNYWAhXw5IOEHu70XYZdiwNTpyXsFM/mb0UZFC7Zk=; b=CW/gEuoKTZ6hFLwwCpmrxcVH+l PGLBJMRFcb1HkXYLyR4L+VllyF09GsQ2qG47vhj6JbqQnDW4TeCYm83liLMXbcmSUVuo6El6UmU4X K297f8NaPxLQBNO8Lb3tS2/E3PctDk3s2ybSQhxdFlwzxBOlYSUSZnzkn3AtHZb6jaNE=; Received: from ciao.gmane.io ([116.202.254.214]) by quimby.gnus.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l100r-0007dK-0t for ding@gnus.org; Sun, 17 Jan 2021 05:50:15 +0100 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1l100q-0004kx-93 for ding@gnus.org; Sun, 17 Jan 2021 05:50:04 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: ding@gnus.org From: Eric Abrahamsen Subject: Re: Experimental new Maildir backend Date: Sat, 16 Jan 2021 20:49:25 -0800 Message-ID: <875z3w9nhm.fsf@ericabrahamsen.net> References: <86h7ngen1y.fsf@csic.es> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cancel-Lock: sha1:qq2HpfllVkL5mdFm9HoAH1VjhyI= List-ID: Precedence: bulk Juan José García-Ripoll writes: > Hi, > > apologies if this topic is redundant with some other proposal or effort, > but I wanted to draw your attention to this small project of mine, and > also request help to polish and possibly contribute it to Emacs. > > The project is called gnus-nnmaild and it is a new backend for Maildir > spool directories. It can be found here > > https://github.com/juanjosegarciaripoll/gnus-nnmaild 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. > I have developed it because the nnmaildir backend does not work on > Windows, where "!" or ";" are used as flag separator in the file names > because ":" is not an allowed character. It also solves additional > problems with nnmaildir, namely that it creates one additional file for > each message to store nov files, plus additional directories and links > for other flags. I didn't realize that nnmaildir doesn't work on Windows at all! > Instead, I have adopted a brute-force philosophy, where all information > is cached in a single Elisp file, which is updated when new files are > found. That may seem a bit wasteful, but given SSD's it seems to be a > very good compromise between space and speed. > > Feedback is really welcome. Also pull requests. 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've been toying with the idea of using sqlite as a store for Gnus' caches and data: it seems like that would get us the biggest speedup possible. I don't think it's feasible for Gnus' built-in backends, since vanilla Emacs doesn't come with anything for talking to sqlite, but if you made this an installable package, it could require the "sqlite" package and do it that way... Just a thought! Eric