From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/19282 Path: main.gmane.org!not-for-mail From: Shenghuo ZHU Newsgroups: gmane.emacs.gnus.general Subject: Re: Inefficiency in mm-uu.el Date: 29 Nov 1998 04:26:20 -0500 Organization: Computer Dept of U Rochester Sender: owner-ding@hpc.uh.edu Message-ID: <2n4sri4zpf.fsf@zsh.cs.rochester.edu> References: NNTP-Posting-Host: coloc-standby.netfonds.no Mime-Version: 1.0 X-Trace: main.gmane.org 1035157659 10812 80.91.224.250 (20 Oct 2002 23:47:39 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Sun, 20 Oct 2002 23:47:39 +0000 (UTC) Return-Path: Original-Received: from karazm.math.uh.edu (karazm.math.uh.edu [129.7.128.1]) by sclp3.sclp.com (8.8.5/8.8.5) with ESMTP id EAA15617 for ; Sun, 29 Nov 1998 04:29:40 -0500 (EST) Original-Received: from sina.hpc.uh.edu (lists@Sina.HPC.UH.EDU [129.7.3.5]) by karazm.math.uh.edu (8.9.1/8.9.1) with ESMTP id DAB09872; Sun, 29 Nov 1998 03:28:13 -0600 (CST) Original-Received: by sina.hpc.uh.edu (TLB v0.09a (1.20 tibbs 1996/10/09 22:03:07)); Sun, 29 Nov 1998 03:27:48 -0600 (CST) Original-Received: from sclp3.sclp.com (root@sclp3.sclp.com [204.252.123.139]) by sina.hpc.uh.edu (8.7.3/8.7.3) with ESMTP id DAA17827 for ; Sun, 29 Nov 1998 03:27:39 -0600 (CST) Original-Received: from cayuga.cs.rochester.edu (cayuga.cs.rochester.edu [192.5.53.209]) by sclp3.sclp.com (8.8.5/8.8.5) with SMTP id EAA15612 for ; Sun, 29 Nov 1998 04:27:32 -0500 (EST) Original-Received: from slate.cs.rochester.edu (slate.cs.rochester.edu [192.5.53.101]) by cayuga.cs.rochester.edu (8.6.9/O) with ESMTP id EAA06582 for ; Sun, 29 Nov 1998 04:27:29 -0500 Original-Received: from brain.cs.rochester.edu (heart.cs.rochester.edu [192.5.53.109]) by slate.cs.rochester.edu (8.6.9/O) with ESMTP id EAA23950 for ; Sun, 29 Nov 1998 04:27:19 -0500 Original-Received: (from zsh@localhost) by brain.cs.rochester.edu (8.9.0/8.8.5) id EAA03446; Sun, 29 Nov 1998 04:26:21 -0500 Original-To: ding@gnus.org X-Attribution: ZSH X-Face: 'IF:e51ib'Qbl^(}l^&4-J`'P!@[4~O|&k#:@Gld#b/]oMq&`&FVY._3+b`mzp~Jeve~/#/ ERD!OTe<86UhyN=l`mrPY)M7_}`Ktt\K+58Z!hu7>qU,i.N7TotU[FYE(f1;}`g2xj!u*l`^&=Q!g{ *q|ddto|nkt"$r,K$[)"|6,elPH= GJ6Q In-Reply-To: Hrvoje Niksic's message of "27 Nov 1998 17:17:59 +0100" Original-Lines: 56 User-Agent: Gnus/5.070055 (Pterodactyl Gnus v0.55) XEmacs/20.4 (Emerald) Precedence: list X-Majordomo: 1.94.jlt7 Xref: main.gmane.org gmane.emacs.gnus.general:19282 X-Report-Spam: http://spam.gmane.org/gmane.emacs.gnus.general:19282 >>>>> "HN" == Hrvoje Niksic writes: HN> The uuencode interface to mm seems very inefficient, because of HN> two separate reasons. When I `g' a message containing a, say, an HN> uuencoded image, it insists on decoding the uuencoded region (I HN> can tell by the time `g' takes and by the conducted profiles.) HN> When I click on the image button to show it, it decodes it again. HN> Why this double encoding? The first decoding is due to mm-inlinable-p. With the attached patch, each type is tested at most once in a session. HN> The other question is about the strange default -- the code HN> defaults to using the internal, elisp-based decoding, even when a HN> perfectly valid `uudecode' is found on the system. This makes HN> decoding of large stuff (and uuencoded stuff is large, more often HN> than not) abysmally slow, even on very very fast machines. I can HN> imagine that on slower machines it's closer to "unusable". Do you mean to automatically setup mm-uu-decode-function by searching uudecode on the system at loading time of mm-uu.el? If so, please feel free to patch it. -- Shenghuo :- cut ----- --- ChangeLog 1998/11/29 08:49:39 1.1 +++ ChangeLog 1998/11/29 08:51:02 @@ -1,3 +1,7 @@ +Sun Nov 29 03:50:20 1998 Shenghuo ZHU + + * mm-decode.el (mm-inlinable-p): Save the result of test. + Fri Nov 27 12:26:10 1998 Lars Magne Ingebrigtsen * gnus.el: Pterodactyl Gnus v0.55 is released. --- mm-decode.el 1998/11/29 08:44:18 1.1 +++ mm-decode.el 1998/11/29 08:47:55 @@ -357,9 +357,11 @@ test) (while alist (when (equal type (caar alist)) - (setq test (caddar alist) - alist nil) - (setq test (eval test))) + (setq test (caddar alist)) + (when (consp test) + (setq test (eval test)) + (setf (caddar alist) test)) + (setq alist nil)) (pop alist)) test))