From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?Bj=C3=B6rn_Lindqvist?= Newsgroups: gmane.emacs.devel Subject: Re: Bloat in the Emacs Windows package Date: Wed, 17 Apr 2019 17:07:23 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="212617"; mail-complaints-to="usenet@blaine.gmane.org" Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Apr 17 17:04:53 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hGm7J-000tA9-7L for ged-emacs-devel@m.gmane.org; Wed, 17 Apr 2019 17:04:53 +0200 Original-Received: from localhost ([127.0.0.1]:55093 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hGm7I-0001Jd-7W for ged-emacs-devel@m.gmane.org; Wed, 17 Apr 2019 11:04:52 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:56444) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hGm6W-0001JM-Lf for emacs-devel@gnu.org; Wed, 17 Apr 2019 11:04:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hGm6U-0004X9-OC for emacs-devel@gnu.org; Wed, 17 Apr 2019 11:04:04 -0400 Original-Received: from mail-ua1-x92c.google.com ([2607:f8b0:4864:20::92c]:43965) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hGm6R-0004VO-7K; Wed, 17 Apr 2019 11:04:00 -0400 Original-Received: by mail-ua1-x92c.google.com with SMTP id n16so8002188uae.10; Wed, 17 Apr 2019 08:03:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=A9+vHHVAzS2bSWCm8mvKSFDxTTDrEa4B2+e+hWLslIQ=; b=D9OxlhSf3Vpb3cWb/5nU6hiZUhM8thjfOzB+iKB66JOQmqJRat9OT/cauC/KbNnBuc 7Tytb4XNbOO6T6XM70nUZiTL0eK+4BO1lyzLqIiID2bR1VBQU98X2CCCihQzOVliZcGW n26iAmKTgKGf/L3TtuXgZxGBfpQ08DunCx86nFtUMuTj5K8wuOQeL5NzZNN2x1dP15VV 3CciOM8nWsk0VX18P1PUKlSyxFoso0dXj66CcrpNIA5aNMfje+0x4lXskZ884qghH2N0 RuF1Sadw7p2MU2WhkUUf6tYSAGpCBzhBTvByBXutvup6KaDVGsNyLcBjet1zBsEPjAd5 JbQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=A9+vHHVAzS2bSWCm8mvKSFDxTTDrEa4B2+e+hWLslIQ=; b=mNho+jG+rsE/MYxchYAvaqP7dBDjTTpcqJ8/TkRVEUqqs6GSSp161JUwtTdgPfvLnl E/cq5wv+th0O5EjzQoDbrCrj3kSvt073Vog0axiRo365hRGbMMztSM3SgjJGfGJgZuOv dbH1s3AjwndS8UbhEsTNrLM0kmp3pd1aCSu2+nkoKHAsyJ0Ijb77lKYx5kSD5WxUp09h Me3II8daVVD+06so+nq7oz16X1cqm89hxB/5vapuvOR+N5JP+hkrVEVJLmZTrQHATlMQ SvPcSV8RhyKz4irPRpBhmP1/hMFikru0nFoO3PEO6O9U7pv6qbQFoYhI7VN53RczBxv+ 1cLA== X-Gm-Message-State: APjAAAVZh42s8pTFQOOCpBewIIz9vNURcmISD8uCS9a6X+VtPhq7MJv6 z2Rc+6nycDvKY1m6oA3C6EcRhtuKqKeKRI4N8ccAgGKl X-Google-Smtp-Source: APXvYqzPjWsZx6GLDTRcVf49ziUPzDBPxD6FgBZVcaMUN0nv0NRkkS5/5VSrRC9hdTfR8An6yG3gdcb47IKReSFwbW4= X-Received: by 2002:a9f:24ee:: with SMTP id 101mr46386466uar.87.1555513437467; Wed, 17 Apr 2019 08:03:57 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::92c X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:235581 Archived-At: Den ons 17 apr. 2019 kl 09:31 skrev Eli Zaretskii : > > On April 17, 2019 8:01:56 AM GMT+03:00, "Bj=C3=B6rn Lindqvist" wrote: > > 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 > > ... > > 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? GnuTLS support in eww? Maybe the name of the emacs-26.1-x86_64.zip file could be changed to indicate that it is an "all inclusive" package? Most users are probably fine with downloading the smaller emacs-26.1-x86_64-no-deps.zip instead. > > 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 =3D> 2 282 kB > > ctags.exe 956 kB =3D> 3 245 kB > > emacs.exe 8 989 kB =3D> 121 740 kB > > emacs-24.5.exe 8 989 kB =3D> 121 740 kB (emacs-26.1.exe) > > Stripping emacs.exe produces a 29MB file for Emacs 26.2. But why is it four times bigger than in 24.5? Has so much new C code been added to Emacs? Gcc's machine code generation certainly hasn't gotten worse so that can't be it. > We don't provide any shell scripts or batch files because the build on > Posix systems doesn't. Once again, it's hard to blame volunteers for > using the build products as is, without adding any more work. Sorry, I didn't mean to blame anyone! If the omission is lack of volunteer time then I can look at the build and see if I can figure it out. As I wrote in the other thread, I have some experience porting Linux applications to Windows. Perhaps I shouldn't have used "bloat" in the email subject line. > > 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 a great help to have debug info when problems are reported that > cause crashes and cannot be easily reproduced. I don't think I've ever had Emacs on Windows crash on me. But if it did, how would I get hold of the stack trace? Executables on Windows are mostly run by clicking on their icons and that hides the standard input and output. > But if Phillip can afford prodicing separate debug info file for > Emacs, we could have the cake and eat it, too. Do you mean afford as in time or as in the Windows build is run on a rented server? > > 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 cannot be due to debug info, because that is not read when the > program loads. You are right. I stripped the emacs.exe and the startup slowdown remains. But it could still be related to the debugging symbols if emacs is compiled with -Og which is customary for debug builds. 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. > > It is also > > aesthetically displeasing -- hackers like minimalism and hate bloat. > > FWIW, I think you the first one to complain about this. Well, yes, but how many Windows users complained about the lack of debugging symbols in Emacs 24? I must admit I have a hard time formulating why I think avoiding bloat is important, it just seem self-evident. For example, Visual Studio 2017 is over 2GB and that irritates me because why does it need so much space for just an IDE and a C/C++-compiler?! Emacs is also supposed to be usable on old operating systems and old hardware so saving disk space should be important imho. > > 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. > > What tools to use to produce the binary distribution is entirely up to > the person who does that. And of course MSI is not free software. The WiX Toolset which one can use to build MSIs is free software. I don't know about the MSI format itself, but it would surprise me if there are any legal hurdles since MSIs are supposed to be distributed by ISVs. -- mvh/best regards Bj=C3=B6rn Lindqvist