This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: pathname conversion


In article <199709232045.QAA04935@elektra.ultra.net>,
John R. Dennis <jdennis@sharpeye.com> wrote:
>Please note I am not suggesting removing support for better solutions
>nor am I unappreciative of the fine work Cygnus has done on my
>behalf. I'm just frustrated with using some of the tools because of
>what seems to be a needless incompatibility. I suspect others are in
>the same boat. Anybody else run into this problem?

The incompatibility isn't exactly "needless".  The intent of gnu-win32
from the start, as I understand it, was to provide a UNIX environment on
Windows NT.  UNIX does not think that an alphabetic character followed
by a ':' at the beginning of a filename is special in any way.  UNIX
does not think that a '\' character in a filename is special in any way.

Since neither colons or backslashes are special in a UNIX environment,
they have been coopted for other uses.  In a Makefile, a colon introduces
a rule.  On a shell command line, a backslash indicates that the next
character is to be taken "literally".  Working around these particular
uses is not trivial.

Cygnus has introduced the idea of a "mount table" similar to what is
used in UNIX.  This is a very powerful concept that allows one to map
different drives or files into a monolithic filename space.  The
unfortunate aspect of this, however, is that if a program doesn't use
cygwin.dll, it won't understand this mount table and confusion may
ensue.

But what is the alternative?  If Cygnus had decided to modify every
utility they could find so that it understood things like
"C:\DOS\CHKDSK.COM" then they would not have added anything new to the
Windows community.  There are plenty of GNU-ported-to-DOS utilities out
there.  They chose to go a different way instead.  They chose to provide
a real, live UNIX environment for Windows 95/NT.

GNU-WIN32 (or CYGWIN or whatever it is supposed to be called) is not
perfect.  It is a work in progress.  Some things will never be possible.
I suspect that transparent translation of native filespecs may be one of
them.  But even without that it is immensely useful to have a UNIX on
Windows environment.

Thanks to Cygnus (and Sergey, actually), I have been able to move most
of my development environment (which is written in perl but makes heavy
use of UNIX utilities) directly onto my NT system.  That means that I
can schedule remote builds on "serenade" (my NT system) from "hardy"
(my DEC alpha system).  That means that I can run nightly builds of
my products on all of my systems where before a build on NT required
firing up good ol' MSDEV, clicking on a bunch of stuff, and inspecting
the output as it scrolled by.

I'm sure that given enough time I could have laboriously ported things
over to Windows NT or tracked down the myriad different utilities I needed
to get things working.  With GNU-WIN32 I didn't have to.
-- 
http://www.bbc.com/	cgf@bbc.com			"Strange how unreal
VMS=>UNIX Solutions	Boston Business Computing	 the real can be."
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]