From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.bugs Subject: bug#38136: https://github.com/dickmao/gnus Date: Mon, 25 Nov 2019 11:02:28 -0800 Message-ID: <87lfs3zsmz.fsf@ericabrahamsen.net> References: <87imnu1knq.fsf@dick> <87imnu1knq.fsf@dick> <87zhgjhmlt.fsf_-_@dick> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="19125"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: Robert Pluim , 38136@debbugs.gnu.org To: dick.r.chiang@gmail.com Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Nov 25 20:03:14 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iZJdi-0004jQ-0D for geb-bug-gnu-emacs@m.gmane.org; Mon, 25 Nov 2019 20:03:14 +0100 Original-Received: from localhost ([::1]:47508 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iZJdg-0001mc-RA for geb-bug-gnu-emacs@m.gmane.org; Mon, 25 Nov 2019 14:03:12 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:41760) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iZJdX-0001jr-SR for bug-gnu-emacs@gnu.org; Mon, 25 Nov 2019 14:03:04 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iZJdW-0005ka-PO for bug-gnu-emacs@gnu.org; Mon, 25 Nov 2019 14:03:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:43714) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iZJdW-0005kS-Ly for bug-gnu-emacs@gnu.org; Mon, 25 Nov 2019 14:03:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iZJdW-00074X-GJ; Mon, 25 Nov 2019 14:03:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eric Abrahamsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org, bugs@gnus.org Resent-Date: Mon, 25 Nov 2019 19:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 38136 X-GNU-PR-Package: emacs,gnus X-GNU-PR-Keywords: patch Original-Received: via spool by 38136-submit@debbugs.gnu.org id=B38136.157470855827150 (code B ref 38136); Mon, 25 Nov 2019 19:03:02 +0000 Original-Received: (at 38136) by debbugs.gnu.org; 25 Nov 2019 19:02:38 +0000 Original-Received: from localhost ([127.0.0.1]:49686 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZJd8-00073p-Bo for submit@debbugs.gnu.org; Mon, 25 Nov 2019 14:02:38 -0500 Original-Received: from ericabrahamsen.net ([52.70.2.18]:51502 helo=mail.ericabrahamsen.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iZJd5-00073b-Md for 38136@debbugs.gnu.org; Mon, 25 Nov 2019 14:02:36 -0500 Original-Received: from localhost (c-73-254-86-141.hsd1.wa.comcast.net [73.254.86.141]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id A3C24FA086; Mon, 25 Nov 2019 19:02:29 +0000 (UTC) In-Reply-To: <87zhgjhmlt.fsf_-_@dick> (dick r. chiang's message of "Mon, 25 Nov 2019 12:50:06 -0500") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:172374 Archived-At: dick.r.chiang@gmail.com writes: > RP> That, plus the patch has spurious whitspace changes, and things like the > RP> below, which makes it all harder to read. > > I've a mind, of course, to bring non-blocking goodness to the main branch, but > the volume of changes (more than 200 commits and counting at > github.com/dickmao/gnus) requires a social effort that may never reach critical mass. Don't give up hope! But I definitely recommend starting the social effort part of things before you invest enormous amounts of time in code (too late, I know). This is a collaborative effort, and people have *very* strong opinions about how their Gnus behaves, and you're better off floating ideas sooner rather than later -- for example, any one of us could have told you that requiring users to set `gnus-select-methods' via customization (and not `setq') was probably a non-starter. Which could have saved you some time! > The original patch wishfully believed dynamic-letting globals like > `gnus-summary-buffer` would do an end-run around thread-safety. But "leakage" > occurs far too often as manifested by "Selected deleted buffer" errors. Every time I've embarked on grand refactorings of Gnus I've run up against problems like this -- every part of Gnus is tied so tightly to every other part, it's very hard to unpick. So I've started working backwards from the big goals. Do we want threaded server updates? `nntp-server-buffer' is the problem. So each server should probably have its own "work buffer". The easiest way to make that happen is if servers are structs. And on down from there, trying to work down to a root problem that, when solved, will reduce complexity instead of increasing it, and boost modularity rather than causing tighter code integration. Then I still screw it up in the end, but hey, I think it's the right approach. I think a lot of our problems will be made more tractable by getting rid of code that assumes a "current" thing. The "current" server. The "current" group. The "current" summary buffer. Pass arguments, don't check dynamic variables. Maybe that would be a better place to start. That patch that could end up enabling the big refactors later might not look like much at first glance.