From: Ted Zlatanov <tzz@lifelogs.com>
To: emacs-devel@gnu.org
Subject: Re: Pushing the `gnus-range-*' functions down into the C layer
Date: Thu, 09 Sep 2010 14:01:00 -0500 [thread overview]
Message-ID: <8739ti68sz.fsf@lifelogs.com> (raw)
In-Reply-To: m31v939cbb.fsf@quimbies.gnus.org
On Thu, 09 Sep 2010 17:16:56 +0200 Lars Magne Ingebrigtsen <larsi@gnus.org> wrote:
LMI> Would anyone mind if I implemented the `gnus-range-*' functions in C for
LMI> Emacs 24? Gnus spends significant time on group entry/exit doing range
LMI> handling/compressing/etc, and I think the functions are (slightly)
LMI> generally useful.
LMI> Gnus addresses articles by their number, so you have things like the
LMI> "marked" list of articles that looks like
LMI> (3 4 5 6 7 11 14 15 16 17 18)
LMI> (or something). To save loading/saving time, these are stored in the
LMI> .newsrc.eld file as range structures, which look like this:
LMI> ((3 . 7) 11 (14 . 18))
LMI> To handle this, Gnus has a set of functions for computing
LMI> intersections/differences/etc on the range structures. However, Emacs
LMI> Lisp isn't really fast at doing this, so if you exit from a group that
LMI> needs lots (I mean *lots*) of range handling, you get an annoying wait
LMI> while it sits there computing.
LMI> So I'm proposing implementing a set of useful functions in C, like
LMI> `range-memq', `range-add', `range-intersection' and stuff.
I think it's a good idea. We've seen IMAP article numbers overflow
native Emacs ints at least once and it's been discussed a few times, e.g.:
http://article.gmane.org/gmane.emacs.gnus.general/65390/match=overflow
so maybe this API needs to support true 32-bit ints (perhaps through
doubles) as per RFC 3501.
Ted
next prev parent reply other threads:[~2010-09-09 19:01 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-09 15:16 Pushing the `gnus-range-*' functions down into the C layer Lars Magne Ingebrigtsen
2010-09-09 19:01 ` Ted Zlatanov [this message]
2010-09-09 21:58 ` Lars Magne Ingebrigtsen
2010-09-09 22:25 ` Ted Zlatanov
2010-09-10 3:24 ` Stephen J. Turnbull
2010-09-10 13:53 ` Ted Zlatanov
2010-09-10 14:01 ` Lars Magne Ingebrigtsen
2010-09-10 14:08 ` Leo
2010-09-10 14:15 ` Lars Magne Ingebrigtsen
2010-09-10 14:19 ` Wojciech Meyer
2010-09-11 9:44 ` Stefan Monnier
2010-09-10 14:18 ` Ted Zlatanov
2010-09-10 14:28 ` Lars Magne Ingebrigtsen
2010-09-10 14:38 ` bignums (was: Pushing the `gnus-range-*' functions down into the C layer) Ted Zlatanov
2010-09-10 15:16 ` Pushing the `gnus-range-*' functions down into the C layer Andreas Schwab
2010-09-10 15:22 ` David Kastrup
2010-09-10 15:26 ` Lars Magne Ingebrigtsen
2010-09-11 9:48 ` Stefan Monnier
2010-09-11 11:57 ` Lars Magne Ingebrigtsen
2010-09-11 15:36 ` Stephen J. Turnbull
2010-09-11 15:51 ` Lars Magne Ingebrigtsen
2010-09-11 16:15 ` Wojciech Meyer
2010-09-12 9:57 ` Stefan Monnier
2010-09-10 19:28 ` Tom Tromey
2010-09-14 15:52 ` Ted Zlatanov
2010-09-11 5:52 ` Stephen J. Turnbull
2010-09-13 11:45 ` Eli Zaretskii
2010-09-09 22:21 ` Wojciech Meyer
2010-09-09 23:48 ` Ted Zlatanov
2010-09-09 23:56 ` Wojciech Meyer
2010-09-10 0:07 ` Lars Magne Ingebrigtsen
2010-09-10 0:17 ` Wojciech Meyer
2010-09-10 8:06 ` Andy Wingo
2010-09-10 10:20 ` Wojciech Meyer
2010-09-10 10:43 ` Stefan Monnier
2010-09-10 12:35 ` Lars Magne Ingebrigtsen
2010-09-10 12:49 ` rfc2047-decode-string in C? Lars Magne Ingebrigtsen
2010-09-10 13:47 ` Stefan Monnier
2010-09-10 13:51 ` Lars Magne Ingebrigtsen
2010-09-11 16:10 ` Lars Magne Ingebrigtsen
2010-09-10 13:07 ` Pushing the `gnus-range-*' functions down into the C layer joakim
2010-09-10 13:22 ` Lars Magne Ingebrigtsen
2010-09-10 13:45 ` Stefan Monnier
2010-09-10 14:01 ` Ted Zlatanov
2010-09-10 14:09 ` Lars Magne Ingebrigtsen
2010-09-11 9:36 ` Stefan Monnier
2010-09-10 14:06 ` Lars Magne Ingebrigtsen
2010-09-11 3:18 ` Daniel Pittman
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=8739ti68sz.fsf@lifelogs.com \
--to=tzz@lifelogs.com \
--cc=emacs-devel@gnu.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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.