unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Björn Lindqvist" <bjourne@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Bloat in the Emacs Windows package
Date: Fri, 19 Apr 2019 01:44:09 +0200	[thread overview]
Message-ID: <CALG+76efs=xmM-K+ytviNiFUsVaz1vCHy3qRtDW9uC+3gFwJ4w@mail.gmail.com> (raw)
In-Reply-To: <83a7gofv94.fsf@gnu.org>

Den ons 17 apr. 2019 kl 18:32 skrev Eli Zaretskii <eliz@gnu.org>:
> > > Some people want the binary zip to include all the optional features
> > > that Emacs on Windows can support.
> >
> > Fair enough. But what optional features are missing from the
> > -no-deps.zip file?
>
> All of them.  Image support beyond XPM, SSL/TLS connections, HTML and
> XML parsing, built-in decompression, built-in JSON support.

Are all those dependencies necessary? Even on gnu/linux distros (like
Arch Linux, Ubuntu, ...) when you install Emacs it doesn't require all
that. And on that OS other packages likely to be installed already
depends on some dependencies (like libgdk-pixbuf2.0) so the
"dependency burden" is shared among lots of software.

> > > Stripping emacs.exe produces a 29MB file for Emacs 26.2.
> >
> > But why is it four times bigger than in 24.5?
>
> Because the disk image includes a large array which is used only in
> its small part.

Apparently it's the same on gnu/linux.

> > Because if you compile it with more optimizations (-O2 or -O3),
> > the debugging symbols becomes less useful as stack frames
> > disappear and -fomit-frame-pointer makes it harder for gdb to
> > inspect the stack.
>
> Having symbols even in an optimized build is better than not having
> them.

But my point is that you cannot optimize the build completely while
still having usable debugging symbols. If you use -O3 then gcc's
inlining of stack frames and other transformations make the debugging
symbol data close to useless. Even with -O2 you get lots of
"<optimized out>" parameters and some missing stack frames. I.e the
worst of both worlds; neither full optimizations nor full debugging
symbols.

I dunno if it would make a difference for Emacs, but other projects
I've benchmarked ran noticeably faster when compiled with -O3 over
-O2. Especially CPU bound tasks like elisp compilation would perhaps
run faster.

> And I don't think Phillip uses -fomit-frame-pointer, because it's a
> net loss.

Why? In my limited experience it enables gcc to produce significantly
better code on the register starved x86 32 bit architecture.

> > I must admit I have a hard time formulating why I think avoiding
> > bloat is important, it just seem self-evident.
>
> Not disk space.  Bloat of memory footprint, yes.

I disagree and think that both disk space and memory footprint is
important to keep small. Most gnu/linux distributors think the same
because they strip the emacs executables even though it makes it
harder to debug crashes.

> > Emacs is also supposed to be usable on old operating systems and old
> > hardware
>
> Which old systems are those?

According to the GNU Emacs FAQ for MS Windows they are Windows 98 and
Windows NT 4.0 through to Windows 8.1. It doesn't make sense claiming
Windows 98 support without not also ensuring that the software fits on
a hard disk a Windows 98 user would use. Hence the claim, to me,
implies that there is an upper bound on how large the Emacs
installation can become.


--
mvh/best regards Björn Lindqvist



  reply	other threads:[~2019-04-18 23: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 [this message]
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
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='CALG+76efs=xmM-K+ytviNiFUsVaz1vCHy3qRtDW9uC+3gFwJ4w@mail.gmail.com' \
    --to=bjourne@gmail.com \
    --cc=eliz@gnu.org \
    --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).