emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Avoid duplicate emacs.exe / emacs-$version.exe


From: Juan José García-Ripoll
Subject: Re: Avoid duplicate emacs.exe / emacs-$version.exe
Date: Sat, 28 Mar 2020 21:41:51 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.90 (windows-nt)

Eli Zaretskii <address@hidden> writes:
>> From: Juan José García-Ripoll
>>  <address@hidden>
>> Date: Sat, 28 Mar 2020 17:53:00 +0100
>> 
>> Right now in my hard disk I have two copies of statically linked Emacs.
>
> (This is a point, but Emacs is not linked statically, at least not by
> default.  The large size is mostly due to debug info, and you can
> strip it if you want, although I don't recommend doing so for a
> pretest version, because you cannot produce meaningful backtraces from
> a stripped binary.)

I am talking about the official archives *.zip, not the *.exe install
file. I assumed "statically linked" because of the size and because of
the dependencies they have been built against -- e.g. libpng, libtiff,
etc.-- but from your message I deduce those libraries are loaded by
Emacs only when available.

> No, they don't waste space, at least not by default.  When you install
> Emacs, the installation procedure produces a hard link with another
> name to the same file data.  These two names are just 2 different
> names that refer to the same disk space. [...]
> This means your installation procedure is modified, or maybe you
> installed a binary someone else produced, in which case the archive
> used to package the binaries didn't support hard links.  You can
> restore the hard link by removing onhe of the copies and making a hard
> link to the remaining copy under the other name.

I am reporting figures that come from either (a) the official release
from ftp.gnu.org, (b) the prerelease *.zip files from alpha.gnu.org and
(c) the official build process as reported in emacs-27/nt.

- For emacs 26.3, using Windows' explorer to unzip the *-no-deps.zip
  file creates two identical files, emacs.exe and emacs-26.3.exe. MSYS's
  "du" reports a total of 277Mb usage. Windows directory properties
  reports the same figure for "size" and "size occupied in disk"
  (apologies, my copy of Windows is in Spanish and I do not know what
  text is used in other locales)

- Doing the same thing with a command line utility, unzip.exe, produces
  the same result.

- For emacs 27.0.90, using Windows' explorer or unzip.exe to inflate the
  *-no-deps.zip creates two identical files, but this time 6Mb in
  size. Once more, both are two separate files, though now total space is just
  13Mb (!)

- Building from emacs-27 branch (Savannah's git), following the
  instructions from nt/ (i.e. configure + make install), creates two
  identical files, emacs.exe and emacs-27.0.90.exe. Space usage is as in
  26.3, about 123Mb per executable.

So I am using stock files, never my own copies. I am using also standard
procedures. I do not understand why the executable sizes differ so much
between release, prerelease and built from sources. However, there are
no symbolic links happening at all. Indeed, MSYS's "ln" as used in the
autoconf build process does not seem to work: it just copies the file.

$ ln -sf foo faa
$ cat faa
Foo
$ echo Faa > foo
$ cat faa
Foo

My computer is an up-to-date Windows 10 (64-bit) installation using
NTFS, btw. My versions of MSYS and Mingw64 are also pretty recent.

So maybe you are discussing what happens in Linux or Mac systems?

Cheers,

-- 
Juan José García Ripoll
http://juanjose.garciaripoll.com
http://quinfog.hbar.es




reply via email to

[Prev in Thread] Current Thread [Next in Thread]