Version française
Home     About     Download     Resources     Contact us    
Browse thread
GODI News: RocketBoost Beta
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Alain Frisch <alain@f...>
Subject: Re: [Caml-list] GODI News: RocketBoost Beta
Gerd Stolpmann wrote:
> The big news is that GODI now supports the MinGW port of OCaml for
> Windows (besides the Cygwin port). This means that it is now possible to
> create native Windows applications with GODI.

That's really great news!

> A lot of the porting effort was about Cygwin interoperability.
> godi_console (which is a native Win32 binary) can translate Cygwin paths
> to native Windows paths (by reading the Cygwin mount table in the
> registry).

This feature might be useful for other projects. Do you plan to make it 
available as a stand-alone library (maybe together with other 
Windows-related hacks)? Does it support Cygwin symlinks?

> * Ocaml does not install ocamldep.opt.exe
> 
> in the MinGW port. Maybe an oversight?

Already fixed in CVS HEAD (many of the Makefiles are now shared between 
Unix and Windows ports).

> * No support for ocamlmklib
> 
> A lot of work has been put into working around the missing ocamlmklib.
> The difficulty is that stub libraries need to be compiled with different
> flags when a DLL is to be produced, i.e. the C compiler is invoked
> differently in this case.

This is no longer true with the version in CVS HEAD, to become 3.11. Now 
there is some hackery at link time to allow using the same set of object 
files for linking statically or dynamically (for stub code dlls). Also, 
ocamlmklib is available for all the Windows ports.

> There are no clear rules how to quote arguments in Windows (cmd.exe).

Indeed. I've found that it is sometimes necessary (and it seems to be 
always sufficient) to add extra quotes around the whole command line.
E.g. to call emacs on a file "foo bar" (without the quotes) from OCaml, 
here what I do:

Sys.command "\"\"C:\\Program Files\\emacs-22.1\\bin\\emacs\" \"foo bar\"\""

That is, one passes this command line to cmd.exe:

""C:\Program Files\emacs-22.1\bin\emacs" "foo bar""

As weird as it may look, the quotes around the program and argument 
names are not escaped.



-- Alain