Gnus development mailing list
 help / color / mirror / Atom feed
From: Reiner Steib <reinersteib+gmane@imap.cc>
Cc: Andreas Fuchs <asf@void.at>, Ted Zlatanov <tzz@lifelogs.com>,
	Romain Francoise <romain@orebokech.com>
Subject: gnus-registry: alist-to-hashtable, hashtable-to-alist (was: message registry for Gnus)
Date: Thu, 28 Sep 2006 15:20:09 +0200	[thread overview]
Message-ID: <v9psdgw2k6.fsf_-_@marauder.physik.uni-ulm.de> (raw)
In-Reply-To: <87u1etsjil.fsf@eris.void.at> (Andreas Fuchs's message of "Mon\, 24 Feb 2003 16\:58\:14 +0000 \(UTC\)")

[ Digging up a very old message.  Therefore Cc-ing involved people.... ]

On Mon, Feb 24 2003, Andreas Fuchs wrote:

> Today, Ted Zlatanov <tzz@lifelogs.com> wrote:
>> Could something like hashtable-to-alist-string and
>> hashtable-from-alist-string be added to the Gnus core?  It would make
>> my life easier, and I'm definitely not the person to write reliable
>> versions of these functions :)  
>
> Me neither, but will these help:
^^^^^^^^^^^^ ???

Who actually wrote these functions?  ChangeLog.2 says:

,----[ ChangeLog.2 ]
| 2003-03-28  Teodor Zlatanov  <tzz@lifelogs.com>
| 
| 	[...]
| 
| 	* gnus-registry.el (gnus-registry-translate-to-alist)
| 	(gnus-registry-translate-from-alist, alist-to-hashtable)
| 	(hashtable-to-alist): new functions
| 	(gnus-register-spool-action): add a spool item to the registry
`----

If Andreas wrote them, it should have been documented it in the
ChangeLog as follows:

,----
| 2003-03-28  Andreas Fuchs  <asf@void.at>
| 
| 	* gnus-registry.el (alist-to-hashtable, hashtable-to-alist): New
| 	functions.
`----

(Andreas has papers on file, so no need to think about "tiny change").
If Andreas didn't write them, we need to know where they came from.

We really must be more careful about these issues!

Later these were moved to gnus-util.el and Romain added the following
comment:

,----[ gnus-util.el ]
| ;; The following two functions are used in gnus-registry.
| ;; They were contributed by Andreas Fuchs <asf@void.at>.
`----

,----[ ChangeLog ]
| 2006-04-13  Romain Francoise  <romain@orebokech.com>
| 
| 	* gnus-util.el (gnus-alist-to-hashtable, gnus-hashtable-to-alist):
| 	Moved here (and renamed) from gnus-registry.el.
| 
| 	* gnus-registry.el: Require gnus-util.
| 	Use `gnus-alist-to-hashtable' and `gnus-hashtable-to-alist'.
`----

[ I'd like to put this change in v5-10 as well, because Gnus functions
  should use the "gnus-" prefix. ]

> (defun alist-to-hashtable (alist)
>   "Build a hashtable from the values in ALIST."
>   (let ((ht (make-hash-table)))
>     (mapc
>      (lambda (kv-pair)
>        (puthash (car kv-pair) (cdr kv-pair) ht))
>      alist)
>      ht))
>
> (defun hashtable-to-alist (hash)
>   "Build an alist from the values in HASH."
>   (let ((list nil))
>     (maphash
>      (lambda (key value)
>        (setq list (cons (cons key value) list))))))

[ The current code in gnus-utils.el looks slightly different (see
  rev. 6.7): ]

--8<---------------cut here---------------start------------->8---
@@ -1,16 +1,21 @@
-(defun alist-to-hashtable (alist)
+;; The following two functions are used in gnus-registry.
+;; They were contributed by Andreas Fuchs <asf@void.at>.
+(defun gnus-alist-to-hashtable (alist)
   "Build a hashtable from the values in ALIST."
-  (let ((ht (make-hash-table)))
+  (let ((ht (make-hash-table
+            :size 4096
+            :test 'equal)))
     (mapc
      (lambda (kv-pair)
        (puthash (car kv-pair) (cdr kv-pair) ht))
      alist)
      ht))
 
-(defun hashtable-to-alist (hash)
+(defun gnus-hashtable-to-alist (hash)
   "Build an alist from the values in HASH."
   (let ((list nil))
     (maphash
      (lambda (key value)
-       (setq list (cons (cons key value) list))))))
-
+       (setq list (cons (cons key value) list)))
+     hash)
+    list))
--8<---------------cut here---------------end--------------->8---

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/



  reply	other threads:[~2006-09-28 13:20 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-31 17:15 message registry for Gnus Ted Zlatanov
2003-02-01 10:28 ` Kai Großjohann
2003-02-01 16:39 ` Lars Magne Ingebrigtsen
2003-02-01 20:20   ` Ted Zlatanov
2003-02-02 12:10     ` Lars Magne Ingebrigtsen
2003-02-02 15:14       ` Ted Zlatanov
2003-02-07 12:20         ` Lars Magne Ingebrigtsen
2003-02-02 16:54     ` Kai Großjohann
2003-02-03 20:47       ` Ted Zlatanov
2003-02-04 15:25         ` Simon Josefsson
2003-02-04 19:57           ` Ted Zlatanov
2003-02-05  5:56             ` Simon Josefsson
2003-02-07 20:43               ` Ted Zlatanov
2003-02-02  0:35   ` Raja R Harinath
2003-02-02  1:30     ` Ted Zlatanov
2003-02-02 17:15       ` Raja R Harinath
2003-02-07 20:48 ` Ted Zlatanov
2003-02-07 21:10   ` Lars Magne Ingebrigtsen
2003-02-07 22:45     ` Ted Zlatanov
2003-02-08 20:39       ` Lars Magne Ingebrigtsen
2003-02-21 19:05 ` Ted Zlatanov
2003-02-22 22:20   ` Lars Magne Ingebrigtsen
2003-02-24 15:36     ` Ted Zlatanov
2003-02-24 16:58       ` Andreas Fuchs
2006-09-28 13:20         ` Reiner Steib [this message]
2006-09-28 14:21           ` gnus-registry: alist-to-hashtable, hashtable-to-alist Ted Zlatanov
2006-09-28 16:03             ` CHENG Gao
2006-09-28 16:58               ` Reiner Steib
2003-02-24 21:57       ` message registry for Gnus Lars Magne Ingebrigtsen
2003-02-24 22:14         ` Ted Zlatanov
2003-02-25  7:19           ` Kai Großjohann
2003-02-25 17:57             ` Ted Zlatanov
2003-03-28  9:20   ` Ted Zlatanov
2003-04-16 20:35 ` Ted Zlatanov

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=v9psdgw2k6.fsf_-_@marauder.physik.uni-ulm.de \
    --to=reinersteib+gmane@imap.cc \
    --cc=Reiner.Steib@gmx.de \
    --cc=asf@void.at \
    --cc=romain@orebokech.com \
    --cc=tzz@lifelogs.com \
    /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).