From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel,gmane.spam.detected Subject: Re: Emacs build on Windows: Prerequisites Date: Wed, 28 Feb 2007 22:18:01 +0200 Message-ID: References: Reply-To: Eli Zaretskii NNTP-Posting-Host: lo.gmane.org X-Trace: sea.gmane.org 1172693912 22743 80.91.229.12 (28 Feb 2007 20:18:32 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 28 Feb 2007 20:18:32 +0000 (UTC) Cc: emacs-devel@gnu.org To: dhruva Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Feb 28 21:18:23 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1HMVFn-0005nv-Cv for ged-emacs-devel@m.gmane.org; Wed, 28 Feb 2007 21:18:23 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HMVFo-0002w1-4o for ged-emacs-devel@m.gmane.org; Wed, 28 Feb 2007 15:18:24 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HMVFQ-0002nR-Ct for emacs-devel@gnu.org; Wed, 28 Feb 2007 15:18:00 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HMVFP-0002n3-QM for emacs-devel@gnu.org; Wed, 28 Feb 2007 15:18:00 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HMVFP-0002mx-DU for emacs-devel@gnu.org; Wed, 28 Feb 2007 15:17:59 -0500 Original-Received: from cemetery.inter.net.il ([213.8.233.29]) by monty-python.gnu.org with esmtp (Exim 4.52) id 1HMVFO-00083l-Vy for emacs-devel@gnu.org; Wed, 28 Feb 2007 15:17:59 -0500 Original-Received: from nitzan.inter.net.il (nitzan.inter.net.il [213.8.233.22]) by cemetery.inter.net.il (Postfix) with ESMTP id 1588C137D82; Wed, 28 Feb 2007 22:17:56 +0200 (IST) Original-Received: from HOME-C4E4A596F7 (IGLD-80-230-14-208.inter.net.il [80.230.14.208]) by nitzan.inter.net.il (MOS 3.7.3a-GA) with ESMTP id GEG23832 (AUTH halo1); Wed, 28 Feb 2007 22:17:52 +0200 (IST) In-reply-to: (message from dhruva on Wed, 28 Feb 2007 18:28:54 +0530) X-detected-kernel: FreeBSD 6.x (1) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org X-Spam-Report: 5.5 points; * -0.0 SPF_HELO_PASS SPF: HELO matches SPF record * -0.0 SPF_PASS SPF: sender matches SPF record * 2.0 RCVD_IN_SORBS_DUL RBL: SORBS: sent directly from dynamic IP address * [213.8.233.29 listed in dnsbl.sorbs.net] * 3.0 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in bl.spamcop.net * [Blocked - see ] * 0.4 RCVD_IN_NJABL_PROXY RBL: NJABL: sender is an open proxy * [80.230.14.208 listed in combined.njabl.org] * 0.1 RCVD_IN_NJABL_DUL RBL: NJABL: dialup sender did non-local SMTP * [213.8.233.29 listed in combined.njabl.org] Xref: news.gmane.org gmane.emacs.devel:67058 gmane.spam.detected:2207866 Archived-At: > Date: Wed, 28 Feb 2007 18:28:54 +0530 > From: dhruva > > 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.