Version 13 of Cygwin

Updated 2002-05-20 11:55:52

Purpose: discuss this Microsoft Windows development environment's pros and cons


  • What is Cygwin?

Cygwin is a free software package that provides a Unix-like environment on a Windows system. It works with Windows 95, 98, NT, 2000, and possibly others. (See the web site.)

Cygwin consists of an emulation library and a collection of Unix (and GNU) programs ported to that library, including bash, gcc, and Tcl/Tk. The Unix tools can be used from the bash shell or from the usual Windows command shell, a.k.a. DOS prompt.

A version of the XFree86 server for X Windows, with X Windows tools, has been ported to Cygwin. It is distributed separately.

Cygwin is free.

  • Where can I learn more?
      http://www.cygwin.com/
  • Does it include Tcl and Tk?

Yes, but the version included is ported to the Cygwin environment and differs from the official Tcl/Tk code available from http://www.tcl.tk/ . The Cygwin version presumably lags the official releases.

On the other hand, you have the opportunety to extend wish or tclsh with your own functionality by linking the cygwin tcl and tk libraries with your C-functions, possibly by using swig at http://www.swig.org/ .

  • Why are there such problems using TEA under Cygwin?

Can anyone answer this?

I believe the problems are threefold: (1) historically cygwin was rather complex to install and setup for basic use (this is no longer true, I think), (2) TEA itself requires the installation of extra unixxy packages on top of cygwin (autoconf, for example), and its entire operation is based around lots of implicit knowledge of unix. When running on Windows, things which 'should work' (in the mind of the user) don't, and since it is a bunch of unixxy stuff (as opposed to pure Tcl) the user hasn't the faintest idea how to fix what went wrong (and nor should they have to!) -- these problems range from the 'wrong' use of backslashes vs not, wrong handling of paths which contain spaces, directories requiring to have (or not) a trailing forward slash, etc, etc (i.e. lots and lots of fragility which the poor Windows user has been forced to inherit), (3) TEA itself is full of bugs, on unix as well as windows (it could be true that Jeff finally fixed most/all of these bugs in early 2002 for the sampleextension, but that was a bit too late for most people, and obviously doesn't help with any extension which tried to copy the sampleextension before).

  • What compiler should I use with cygwin?

To build Cygwin executables, use the gcc included in the cygwin package. This applies as well when building the cygwin version of Tcl/Tk.

To build normal Windows executables, use the Cygwin gcc with Mingw http://www.mingw.org/ , a version of which is included with cygwin. This configuration can be used to compile the standard Tcl/Tk distribution into a standard Windows executable. See win/README in the Tcl/Tk distribution for details.

  • Are there any special add-on packages that would be useful when developing with Cygwin?

Can anyone answer this?


[Is Joe English the resident expert?]

[Absolutely not. I'm as confused by this stuff as everyone else. --JE]