unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: dhruva <dhruvakm@gmail.com>
Cc: emacs-devel@gnu.org
Subject: Re: Emacs build on Windows: Prerequisites
Date: Wed, 28 Feb 2007 22:18:01 +0200	[thread overview]
Message-ID: <uk5y26npi.fsf@gnu.org> (raw)
In-Reply-To: <e3f230850702280458l761a0b48s178ee49e76d2909c@mail.gmail.com> (message from dhruva on Wed, 28 Feb 2007 18:28:54 +0530)

> Date: Wed, 28 Feb 2007 18:28:54 +0530
> From: dhruva <dhruvakm@gmail.com>
> 
>  Why should Emacs build on windows need those tools? Why can't it use
> the windows equivalents?

We could use the equivalent Windows commands, but doing so would
complicate the build process and its maintenance a great deal.  The
reason for this is that different versions of Windows provide very
different features in the same commands.  While the latest versions of
Windows, starting from W2K, come with quite powerful features in both
the stock shell cmd.exe (including its built-in commands and) and in
external commands such as XCOPY, older Windows versions (9x/ME) still
use command.com, which is much less powerful, and the external
commands that come with them are extremely rudimentary.  NT4 has
cmd.exe, but it lacks many features we have on W2K and XP.  I cannot
describe all the features missing from older Windows, but here are
just a few examples:

  . The shell always returns a zero exit status, even if the
    command(s) it ran failed.

  . Batch files always return zero exit status, and their output
    cannot be redirected.

  . There's no shell syntax to redirect stderr.

  . COPY will silently fail to copy empty files, and will sometimes
    fail to copy binary files.

  . MOVE, the equivalent of mv, is sometimes a built-in, sometimes an
    external command, and sometimes absent, and its features vary from
    one Windows version to another.

  . DEL, the equivalent of rm, doesn't have an option to do the
    equivalent of "rm -rf".

etc., etc.

Since we still support building Emacs on the older versions of
Windows, we cannot rely on features that those versions lack.  Perhaps
in a few years, we could, in principle, abandon ported cp, rm, and mv,
and switch to using the Windows equivalents, but even then someone
will have to step forward and volunteer to do the job of making the
changes, testing them, and convincing the rest that it's a good idea
to fix what ain't broken.  After all, it's highly unlikely that Emacs
users who build Emacs themselves will not have GNU Fileutils installed
on their machines anyway.

      parent reply	other threads:[~2007-02-28 20:18 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-28 12:58 Emacs build on Windows: Prerequisites dhruva
2007-02-28 13:11 ` David Kastrup
2007-02-28 13:31   ` dhruva
2007-02-28 22:05     ` Jason Rumney
2007-03-01  4:17       ` dhruva
2007-03-01 10:44         ` Lennart Borgman (gmail)
2007-03-02 14:28         ` Vinicius Jose Latorre
2007-03-02 14:57           ` Lennart Borgman (gmail)
2007-03-02 15:20             ` Vinicius Jose Latorre
2007-03-02 15:33               ` Lennart Borgman (gmail)
2007-03-02 19:41                 ` Vinicius Jose Latorre
2007-03-02 20:10                   ` Lennart Borgman (gmail)
2007-03-02 20:51                     ` Vinicius Jose Latorre
2007-03-03 10:33                     ` Eli Zaretskii
2007-03-03 13:54                       ` Lennart Borgman (gmail)
2007-03-01  4:17       ` Eli Zaretskii
2007-02-28 16:55 ` Stephen J. Turnbull
2007-02-28 20:25   ` Eli Zaretskii
2007-02-28 20:18 ` Eli Zaretskii [this message]

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=uk5y26npi.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=dhruvakm@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).