unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: phillip.lord@russet.org.uk (Phillip Lord)
To: "Björn Lindqvist" <bjourne@gmail.com>
Cc: emacs-devel@gnu.org
Subject: Re: Bloat in the Emacs Windows package
Date: Wed, 17 Apr 2019 16:44:05 +0100	[thread overview]
Message-ID: <87zhood4ca.fsf@russet.org.uk> (raw)
In-Reply-To: <CALG+76cyZ8MqceHtzHNE6Q3WLMsVP73apnrpnBZ_hbETgUbSjQ@mail.gmail.com> ("Björn Lindqvist"'s message of "Wed, 17 Apr 2019 07:01:56 +0200")


Björn Lindqvist <bjourne@gmail.com> writes:

> The emacs-26.1-x86_64.zip file is really big. It contains a lot of
> files which I wonder why they are necessary. Some examples
>
>     python2.7.exe
>     gdbus.exe
>     libgdk_pixbuf-2.0-0.dll
>     include/jasper/
>     include/GL
>     include/gnutls AND include/openssl
>     lib/systemd
>     sqlite3200.dll
>     lib/pkgconfig
>     lib/cmake
>     share/bash-completion
>     share/vala



Yes. I have produced these via a script which is simplistic. You can
find it at admin/nt/dist-build/build-dep-zips.py. It is basically the
transitive dependencies of all Emacs dependencies. It's undoubtly to
wide (including python for example as you point out).

This does give Emacs a fairly full msys install. It would be possible to
shrink it do the direct dependencies (i.e. the lib files), but decided
completeness made more sense.


>     ...
>
> The emacs-26.1-x86_64-no-deps.zip installation is smaller, but still
> double the size of the corresponding 24.5 installation. This seem to
> be because all binaries now include debugging symbols. Some examples
> of the size increases:
>
>     addpm.exe 577 kB => 2 282 kB
>     ctags.exe 956 kB => 3 245 kB
>     emacs.exe 8 989 kB => 121 740 kB
>     emacs-24.5.exe 8 989 kB => 121 740 kB (emacs-26.1.exe)
>
> The emacs.exe growth is especially annoying because the file is
> copied. This seems like poor packaging to me. Why not have an
> emacs.bat file calling emacs-26.1.exe and immediately save 121M?

Adding emacs.bat would require seperate logic for windows.


>
> According to the thread on help-gnu-emacs Emacs binaries used to be
> stripped of debugging symbols, but aren't anymore and that is what is
> causing the size increase. I wonder if we can return that? Most
> software ported to Windows, such as MinGW, strips debugging symbols so
> it is customary. For most users they are useless because they don't
> run emacs.exe in gdb.exe.

It is simply for me to remove the -g option from the windows build. This
would reduce the overall size of the build, to the values given here:

http://lists.gnu.org/archive/html/help-gnu-emacs/2019-04/msg00115.html

I am happy to do this (for Emacs-27 -- I do not want to change during
major release). But I would like feedback from people who either use or
handle bug reports for Emacs on Windows to let me know whether this
would break things.


> For people with limited disk space, metered internet or old hardware
> the new, bigger Emacs is a nuisance. On my machine it increases Emacs
> start time by a second (although I don't know if that is caused by the
> debugging symbols or if it is something else). It is also
> aesthetically displeasing -- hackers like minimalism and hate bloat.
>
> And while on the subject of Windows packaging. How come there is no
> MSI installer for Emacs? It shouldn't be to hard to put one together
> and it would make Emacs a little easier to install for newbies.

I haven't written one. There is an .exe installer for Emacs-27. I
haven't worked out how to do an MSI yet; if there is a good free package
for doing so, that can be used straight-forwardly within the current
build, I would be happy to add it.

Incidentally, the installer version with all deps is smaller than the
current version with deps, because the compression is better, which
addresses some of your "bandwidth" concerns.

Phil



  parent reply	other threads:[~2019-04-17 15:44 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-17  5:01 Bloat in the Emacs Windows package Björn Lindqvist
2019-04-17  7:31 ` Eli Zaretskii
2019-04-17 11:15   ` Van L
2019-04-17 11:26     ` Eli Zaretskii
2019-04-17 12:39   ` Stefan Monnier
2019-04-17 14:49     ` Eli Zaretskii
2019-04-17 16:17       ` Eli Zaretskii
2019-04-18 22:02         ` Björn Lindqvist
2019-04-19  7:00           ` Eli Zaretskii
2019-04-17 17:26     ` Phillip Lord
2019-04-17 17:55       ` Stefan Monnier
2019-04-19  0:02       ` Björn Lindqvist
2019-04-19  7:33         ` Eli Zaretskii
2019-04-19 13:23           ` Óscar Fuentes
2019-04-22 21:04             ` Phillip Lord
2019-04-22 21:41               ` Óscar Fuentes
2019-04-17 13:42   ` Stefan Monnier
2019-04-17 16:19     ` Óscar Fuentes
2019-04-17 17:28     ` Phillip Lord
2019-04-17 15:07   ` Björn Lindqvist
2019-04-17 16:32     ` Eli Zaretskii
2019-04-18 23:44       ` Björn Lindqvist
2019-04-19  7:27         ` Eli Zaretskii
2019-04-19 14:17           ` Óscar Fuentes
2019-04-19 15:05             ` Eli Zaretskii
2019-04-22 20:55             ` Phillip Lord
2019-04-17 17:39     ` Phillip Lord
2019-04-17 18:06       ` Stefan Monnier
2019-04-17 18:32       ` Eli Zaretskii
2019-04-18 16:05         ` Phillip Lord
2019-04-18 19:08           ` Eli Zaretskii
2019-04-18 21:19             ` Phillip Lord
2019-04-18 23:12               ` Óscar Fuentes
2019-04-19  6:29               ` Eli Zaretskii
2019-04-22 20:40                 ` Phillip Lord
2019-04-23  2:25                   ` Stefan Monnier
2019-04-23 10:01                     ` Phillip Lord
2019-04-23 11:28                       ` Robert Pluim
2019-04-23 21:49                         ` Phillip Lord
2019-04-26 16:30                       ` Phillip Lord
2019-04-26 17:04                         ` Óscar Fuentes
2019-04-26 21:41                           ` Phillip Lord
2019-04-27 18:12                         ` Björn Lindqvist
2019-04-27 18:17                           ` Phillip Lord
2019-05-03  1:06                             ` Björn Lindqvist
2019-05-03  6:49                               ` Eli Zaretskii
2019-05-03 18:38                                 ` Björn Lindqvist
2019-05-03 18:42                                   ` Eli Zaretskii
2019-05-03 20:20                                     ` Stefan Monnier
2019-04-23  5:37                   ` Eli Zaretskii
2019-04-17 15:44 ` Phillip Lord [this message]
2019-04-17 16:25   ` Óscar Fuentes
2019-04-17 16:46     ` Eli Zaretskii
2019-04-18 16:00       ` Phillip Lord
2019-04-18 15:56     ` Phillip Lord
2019-04-18 16:39       ` Óscar Fuentes

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87zhood4ca.fsf@russet.org.uk \
    --to=phillip.lord@russet.org.uk \
    --cc=bjourne@gmail.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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).