[ Combined Document ] | Contents | Previous | Next
The latest source distribution can be found in ftp://ftp.gnu.org/gnu/windows/emacs/latest. It is distributed in two formats: one large gzipped tar file (emacs*.tar.gz), and a collection of smaller zip files that can be copied to 1.44 Mbyte floppies (em-src-_?.zip).
In the same directory you should also find patch files that enable you to upgrade source distributions to the latest version. These patch files are mirrors of the ones on the FSF server at ftp://ftp.gnu.org/gnu.
You can also browse the source online; look in ftp://ftp.gnu.org/gnu/windows/emacs/latest for a directory named "emacs-<version>".
For more information about the contents of the various files you should read the README file contained in the FTP directory.
Starting with Emacs 20.4, precompiled distributions are being hosted at ftp.gnu.org. Distributions for the latest version are at:
Distributions for all architectures and the source are now in the same directory; look for the architecture-specific binary distribution for your machine (e.g., Intel NT and Win9X have "bin-i386" in the distribution name).
Now that the precompiled distributions are hosted on ftp.gnu.org, they also take advantage of all of the gnu ftp mirrors. A list of gnu mirror sites can be found at http://www.gnu.org/order/ftp.html; once you are at one of those sites, look in the gnu/windows/emacs sudirectory to find the NT Emacs directory.
There are also a number of sites that just mirror the NT Emacs distributions:
Regarding ftp.cs.washington.edu: I've had numerous reports from people outside North America saying that their ftp connection aborts for no apparent reason roughly a third of the way through a transfer of a full distribution. Marc Haber <email@example.com> said that he suffered from the same problem, and later found that a timeout configured into his WWW proxy would cancel the transfer when the link to the US was very busy. Going around his proxy solved the problem. Andy Moreton <firstname.lastname@example.org> describes his situation when using SOCKS:
The FAQ page mentions some people have problems downloading - I may be able to shed some light on it. Our site has a reasonably secure firewall, and so all access to the outside world requires use of SOCKS based connections via a SOCKS5 server (i.e. a circuit-level gateway).
When doing an FTP transfer, two connections are up - a telnet for the control connection, and the data transfer on another. As the telnet connection is idle during the file transfer, the SOCKS server disconnects it. Some FTP servers get upset by this (especially the NT FTP server), and drop the data connection if the control connection goes down.
If you do have trouble downloading the full distribution, try downloading it in the 1.44MB chunks, or try one of the mirror sites.
To compile Emacs, you will need a Microsoft C compiler package. For NT, this can be any of the SDK compilers from NT 3.1 and up, Microsoft Visual C++ for NT (versions 1.0 and up), or Microsoft Visual C++ (versions 2.0 and up). For Windows 95, this can be Microsoft Visual C++ versions 2.0 and up.
Download and place the source distribution in a directory (say, c:\emacs). Unpack the distribution, and go to the nt subdirectory of the emacs directory that gets created in the unpacking process. Read the README and INSTALL files included with the distribution for the full details of this process.
Emacs is just like any other Windows application compiled and linked using MSVC, and it can be debugged using Windows debuggers like DevStudio. By default, Emacs will compile with debugging options turned on. Once compiled, you should be able to load either temacs.exe, the undumped executable, or emacs.exe, the dumped executable, into the debugger (almost always you will want to debug emacs.exe).
Note that Emacs has conventions for naming built-in C identifiers corresponding to lisp functions and variables. You will, of course, need to use the C identifier names when examining variables and setting breakpoints. The C identifier versions of lisp identifiers have dashes converted to underscores, and they are prefixed with a capital letter denoting the type of lisp object that they refer to (functions use 'F', variables use 'V', etc.). For example, the C function implementing the lisp function expand-file-name is Fexpand_file_name, and the C variable corresponding to the lisp variable load-path is Vload_path.
There have been many changes from the older versions of Emacs, 19.x, to the latest versions, 20.x.
These changes have been made in two main areas:
If you are using an older version of NTEmacs, and are having problems the recommended action is to upgrade to the latest version.
Then if you still have problems you should send mail to the list, describing your problem in as much detail as possible.
One of the biggest changes has been the mass renaming of symbols, and functions; All functions, and symbols, that used to start with the prefix "win32-" now start with the prefix "w32-".
For example what was once called "win32-select-font" is now called "w32-select-font"
[ Combined Document ]
| Contents |
Steve Kemp, FAQ Maintainer