On Mon, May 02, 2005 at 09:06:42AM -0400, Rob Kinyon wrote:
> I'm willing to do any testing needed to get and keep a Cygwin port
> happy. If this is something the group wants to pursue, I'll post my
> cygghc.

Okay, here's the Cygwin situation right now. This is a summary of
discussions with Rob and others on #perl6 and around.

Building Pugs on Cygwin doesn't result in a Cygwin executable at
all. It doesn't depend on the Cygwin DLL; and doesn't have any fun POSIX
functionality. The key points are:

* It compiles with the .msi GHC, which is MSYS-based;
* HAVE_POSIX is undefined, just like in an MSYS or native win32 build.

The original reason it's even possible to build Pugs on Cygwin is that
it's just more convenient to use Cygwin as a development environment than
MSYS: newer perl5, modern shell and editor, and so on. What's primarily
misleading is that $*OS is currently set to 'cygwin'; this is a bug in
pugs ($*OS should be the OS running under, not the one this pugs was
built with).

To make a Cygwin pugs, we would need to use a Cygwin GHC.[1] To the best
of my knowledge, nobody maintains public binaries of that; and there is
also the somewhat scary warning of a binary GHC being "a moving target"
since cygwin1.dll often changes in ABI-breaking ways. In short, a real
Cygwin port of pugs is something of a challenge. It might become easier
if done in cooperation with cygwin.com.

Until we find a champion for that cause, I think it would still be useful
to allow pugs to be built, as today, on Windows using Cygwin's gcc and
perl5 (just like Corion makes a native build with -- I think -- cc1.exe
and a homebrew perl5). The path question becomes the same as it is for
any other non-Cygwin tool used in a Cygwin shell; how is it solved there?



[1] See:
    http://www.haskell.org/ghc/docs/5.04/html/building/winbuild.html
    http://www.reed.edu/~carlislp/ghc6-doc/users_guide/x11221.html

-- 
Gaal Yahas <[EMAIL PROTECTED]>
http://gaal.livejournal.com/

Reply via email to