Gnus development mailing list
 help / color / mirror / Atom feed
From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: ding@gnus.org
Subject: Re: Gnus work
Date: Thu, 05 Oct 2017 11:12:35 -0700	[thread overview]
Message-ID: <87lgkpjwfg.fsf@ericabrahamsen.net> (raw)
In-Reply-To: <87h8vdu3ew.fsf@mouse.gnus.org>

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>
>> 1. Replace Gnus' homemade mechanisms with equivalent mechanisms that
>>    have since appeared in core (in many cases Gnus had them first).
>
> Sounds good.  The backend interface is particularly grungy and could to
> with a complete rewrite.  Since there are probably extremely few
> out-of-tree backends these days, I think you can massacre the interface
> with impunity without thinking about compatibility.

Great! This is definitely the most ambitious thing I've got in mind, it
will take a lot of work, but I think it would be a big gain.

[...]

> Replacing a long litany of stuff like
>
> (setq truncate-lines t
>       mode-line-format foo)
>
> with
>
> (gnus-set-truncate-lines-to-t)
> (gnus-set-mode-line-format foo)
>
> isn't that much clearer.  :-)
>
> (I'm just kidding, but that's kinda the Unclean Bob style of
> refactoring).

That's not what I was planning :) Mainly I'd like to try to separate out
concerns a bit: eg, instead of two functions that both do a little bit
of mark manipulation and a little bit of buffer setup, have one function
that only handles marks/headers/etc, and one function that only handles
the buffer creation. Probably no less code, but clearer and more easily
testable.

> The other consideration is that Emacs Lisp is really slow.  Splitting
> central functions into many component functions will make Gnus even
> slower than it already is.  And Gnus is slow.

I'll try not to make it worse. Speaking of which, do you have a general
sense of where the bottlenecks might be? I wasn't planning on attacking
the performance issue, but it would be good to have in mind.

>> 5. Reduce number of dynamic variables, to cut back on "spooky action at
>>    a distance". To be honest I don't even know where to start here.
>
> Good luck, but Gnus has a gazillion settings that modify its workings in
> many, many ways, and they're all done by variables.  Trimming down that
> overload of settings would be nice, but every time I've tried, there's
> always somebody that relied on just that single thing you'd think that
> nobody would be weird enough to actually use.

Yeah, I'm not too optimistic about this. We'll see.

I do hope you could take a moment and scan the roadmap. It would be
valuable even just to get a quick reaction from you -- you know way more
about what's feasible than I do.

Eric




      reply	other threads:[~2017-10-05 18:12 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-04 18:32 Eric Abrahamsen
2017-10-04 18:43 ` Emanuel Berg
2017-10-04 18:53   ` Eric Abrahamsen
2017-10-04 21:07     ` Emanuel Berg
2017-10-04 21:09 ` Tim Landscheidt
2017-10-04 21:56   ` Eric Abrahamsen
2017-10-05  5:19     ` Adam Sjøgren
2017-10-05 17:35       ` Eric Abrahamsen
2017-10-05 17:51         ` Adam Sjøgren
2017-10-05 20:10           ` Eric Abrahamsen
2017-10-05 16:37     ` Sivaram Neelakantan
2017-10-05  6:53 ` Julien Danjou
2017-10-05 13:31 ` Lars Ingebrigtsen
2017-10-05 18:12   ` Eric Abrahamsen [this message]

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=87lgkpjwfg.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).