Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Yet Another Compilation Question: lablgtk for windows + cygwin-mingw
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Xavier Leroy <xavier.leroy@i...>
Subject: Re: [Caml-list] Yet Another Compilation Question: lablgtk for windows + cygwin-mingw
> I've been planning to build an interactive application with OCaml that
> will be deployed primarily on Windows, so I'd like to understand your
> warning better.

I know I haven't made myself very clear, but basically what I'm
suggesting is: if you develop a Windows application using many tools
and libraries that come from a Unix background (e.g. gcc, ocaml, GTK),
it might be more effective to develop the application first under
Unix, then port it to Windows.  This way, during development, you
don't get bitten by potential quirks in the Windows ports of the tools
and libraries.

> 1. Is the risk just in developing (compiling, packaging) on Windows,
>    or also in deploying to Windows?

I think deployment under Windows is OK -- binary distributions work
well under Windows, better than under Unix :-)  I was really thinking
about development and setting up the development environment -- just
installing the necessary development software under Windows can be
significantly harder than under Unix.

> 2. What do you mean by "piling port after port"?  Do you mean
>    reworking the application to track changes as the various tools
>    (GNU+OCaml+labltk+GTK) evolve in successive releases?

I was mostly thinking about working around bugs and quirks in the
Windows ports of the tools and libraries.  For instance, while OCaml
tries hard to be OS-neutral, some libraries (e.g. Unix) have an API
that is slanted towards Unix, and are only 95% implemented under
Windows.  (For instance: Unix.select can take a mixture of pipe and
socket descriptors under Unix, but only sockets under Windows.)

Another issue is getting support from developers.  This is especially
true if the original software and the Windows port are maintained by
separate teams.  The core (Unix) developers tend to brush your
questions aside as "Windows lossage", while the porting team may not
fully understand the original software...

These are minor inconveniences, but they pile up if you use several
"ported to Windows" components.  

>    Has this
>    been a big problem in applications such as Unison?  (Or any
>    other broadly deployed OCaml app?  I don't know of others.)

The examples that I have in mind were all developed first under Unix,
then ported to Windows.

> 3. Is there some other GUI framework that you expect will entail less
>    suffering than lablgtk+GTK?

I can't really comment here, since I don't do GUIs :-)

> 4. As the porting problem applies to the GNU compilers and OCaml
>    itself, are you warning us against developing OCaml applications
>    for use on Windows?

No.  Please go ahead and we'll support your efforts.  But I'm warning
you that you should expect a few additional difficulties compared with
developing under Unix first.

- Xavier Leroy
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners