Re: [VM] MIME encoding/decoding

2014-07-19 Thread Ulrich Mueller
 On Fri, 18 Jul 2014, Patrick P Murphy wrote:

 On Fri, 18 Jul 2014 09:13:37 +0200, Ulrich Mueller u...@gentoo.org said:
 These C programs were first shipped with in VM 6.76 which was released
 in September 2000. This is somewhat surprising, because at that time
 Emacs (version 20.4 then) already included the base64-decode-region
 etc. functions.

 No, it's not surprising.  Typical resources at the time for a
 near top-of-the-line PC would have been:

   550 MHz processor (just one, no cores)
   64 Megabytes (not Gigabytes) of RAM if you were very lucky
   ATA-2 hard drive, maybe 10 or 20 Gigabytes.

 Performance was a real issue, and in a speed battle between emacs lisp
 and a compiled C program, the latter usually won by at least one order
 of magnitude, maybe two.

The base64-* functions always were internal Emacs functions, i.e.
implemented in C. Therefore I doubt that one could improve performance
by calling an external program, which has additional overhead for
spawning a new process.

Adding these programs to VM would still have made sense in the late
1990s, but no longer in 2000 when Emacs 20.4 had the built-in C
functions.

Ulrich



Re: [VM] MIME encoding/decoding

2014-07-18 Thread Mark Diekhans

Hi Uday,

Suggest keeping these in the source tree if anyone really needs
them, but not make part of a standard package.

Mark

Uday Reddy usr.vm.ro...@gmail.com writes:
 VM has traditionally shipped with C programs for MIME encoding/decoding.
 Rob F created an entire Unix-like infrastructure (Make files, configure,
 autoconf etc.) pretty much to handle just these.  If we get rid of these C
 programs, VM can be shipped just like any other emacs library.
 
 Both GNU Emacs and XEmacs now have built-in encoding/decoding functionality
 for base64.  So, we can use them.  For the Quoted Printable format,
 emacs-lisp seems to be fast enough.  Gnus has been using it for ages and
 everybody seems happy with that.
 
 So, I am thinking of getting rid of the C programs for MIME.  Does anybody
 see any problem with that?
 
 Cheers,
 Uday
 
 (Coming back after a long hibernation)
 



Re: [VM] MIME encoding/decoding

2014-07-18 Thread Ulrich Mueller
 On Wed, 16 Jul 2014, Uday Reddy wrote:

 VM has traditionally shipped with C programs for MIME encoding/decoding.
 Rob F created an entire Unix-like infrastructure (Make files, configure,
 autoconf etc.) pretty much to handle just these.  If we get rid of these C
 programs, VM can be shipped just like any other emacs library.

 Both GNU Emacs and XEmacs now have built-in encoding/decoding functionality
 for base64.  So, we can use them.  For the Quoted Printable format,
 emacs-lisp seems to be fast enough.  Gnus has been using it for ages and
 everybody seems happy with that.

These C programs were first shipped with in VM 6.76 which was released
in September 2000. This is somewhat surprising, because at that time
Emacs (version 20.4 then) already included the base64-decode-region
etc. functions.

 So, I am thinking of getting rid of the C programs for MIME.  Does anybody
 see any problem with that?

It may well be that they have outlived their purpose. But before
removing them, please make sure that it doesn't have any negative
impact on performance.

Ulrich



Re: [VM] MIME encoding/decoding

2014-07-18 Thread Patrick P Murphy
On Fri, 18 Jul 2014 09:13:37 +0200, Ulrich Mueller u...@gentoo.org said:

 On Wed, 16 Jul 2014, Uday Reddy wrote:

 VM has traditionally shipped with C programs for MIME
 encoding/decoding.  ...

 These C programs were first shipped with in VM 6.76 which was released
 in September 2000. This is somewhat surprising, because at that time
 Emacs (version 20.4 then) already included the base64-decode-region
 etc. functions.

No, it's not surprising.  Typical resources at the time for a
near top-of-the-line PC would have been:

  550 MHz processor (just one, no cores)
  64 Megabytes (not Gigabytes) of RAM if you were very lucky
  ATA-2 hard drive, maybe 10 or 20 Gigabytes.

Performance was a real issue, and in a speed battle between emacs lisp
and a compiled C program, the latter usually won by at least one order
of magnitude, maybe two.

Times change.  Computers are faster.  For most modest size attachments,
people don't notice the difference anymore.  People who get massive
attachments in the mail from others still do.  I work in a big data
environment so I see this sort of thing a lot, even though most of my
co-workers know that SMTP is a rotten way to send large files around ;-}

I'm neutral on whether the programs are left as part of the VM tree or
not, as long as (a) the same functionality is available elsewhere [it
is, modulo cmd line arguments]; and (b) hooks are left in place to
allow us to override the built-in versions.

 - Pat

-- 
Patrick P. Murphy, Ph.D. https://www.nrao.edu/~pmurphy/
NRAO Information Security Officer NRAO Webmaster [East]

   Ég skildi, að orð er á Íslandi til um allt, sem er hugsað á jorðu.



Re: [VM] MIME encoding/decoding

2014-07-17 Thread Lewis Perin
Uday Reddy usr.vm.ro...@gmail.com writes:

VM has traditionally shipped with C programs for MIME encoding/decoding.
Rob F created an entire Unix-like infrastructure (Make files, configure,
autoconf etc.) pretty much to handle just these.  If we get rid of these C
programs, VM can be shipped just like any other emacs library.

Both GNU Emacs and XEmacs now have built-in encoding/decoding functionality
for base64.  So, we can use them.  For the Quoted Printable format,
emacs-lisp seems to be fast enough.  Gnus has been using it for ages and
everybody seems happy with that.

So, I am thinking of getting rid of the C programs for MIME.  Does anybody
see any problem with that?

Sounds good to me.  Thanks!

/Lew
---
Lew Perin / pe...@acm.org
http://babelcarp.org


Re: [VM] MIME encoding/decoding

2014-07-17 Thread John Hein
Uday Reddy wrote at 18:39 +0100 on Jul 16, 2014:
  VM has traditionally shipped with C programs for MIME encoding/decoding.
  Rob F created an entire Unix-like infrastructure (Make files, configure,
  autoconf etc.) pretty much to handle just these.  If we get rid of these C
  programs, VM can be shipped just like any other emacs library.
 
  Both GNU Emacs and XEmacs now have built-in encoding/decoding functionality
  for base64.  So, we can use them.  For the Quoted Printable format,
  emacs-lisp seems to be fast enough.  Gnus has been using it for ages and
  everybody seems happy with that.
 
  So, I am thinking of getting rid of the C programs for MIME.  Does anybody
  see any problem with that?
 
  Cheers,
  Uday
 
  (Coming back after a long hibernation)

We should check the performance of builtin decoding - particularly
with larger messages on slower machines.  That said, most of the unix
flavors  cygwin out there now have one or more command line tools to
en/decode base64 (less prevalent are qp tools) which can take the
place of the vm versions:

mmencode   (both)
mimencode  (both)

base64
b64en/decode
qprint

not to mention perl  python one liners.



Re: [VM] MIME encoding/decoding

2014-07-17 Thread Manuel Hermenegildo

Sounds good to me too! --Manuel 

-- 
-
 Manuel Hermenegildo  |manuel.hermenegi...@imdea.org
-




Re: [VM] MIME encoding/decoding

2014-07-17 Thread Uday Reddy
John Hein writes:

 We should check the performance of builtin decoding - particularly
 with larger messages on slower machines.  That said, most of the unix
 flavors  cygwin out there now have one or more command line tools to
 en/decode base64 (less prevalent are qp tools) which can take the
 place of the vm versions:

As I said, base64 is now a non-issue because Emacsen have built-in functions
for it.

For Quoted Pritable, you can check performance of the elisp code by setting
qp-decoder-program and qp-encoder-program to nil.

Cheers,
Uday



[VM] MIME encoding/decoding

2014-07-16 Thread Uday Reddy
VM has traditionally shipped with C programs for MIME encoding/decoding.
Rob F created an entire Unix-like infrastructure (Make files, configure,
autoconf etc.) pretty much to handle just these.  If we get rid of these C
programs, VM can be shipped just like any other emacs library.

Both GNU Emacs and XEmacs now have built-in encoding/decoding functionality
for base64.  So, we can use them.  For the Quoted Printable format,
emacs-lisp seems to be fast enough.  Gnus has been using it for ages and
everybody seems happy with that.

So, I am thinking of getting rid of the C programs for MIME.  Does anybody
see any problem with that?

Cheers,
Uday

(Coming back after a long hibernation)