Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
RE: [Caml-list] 3.10.0 on Windows XP
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2007-09-19 (16:27)
From: Markus E L <ls-ocaml-2006@m...>
Subject: Re: [Caml-list] 3.10.0 on Windows XP


> Ocaml 3.10 native windows uses the VS2005 toolchain.
> You should make it available.

> The ocamlrul.exe should depend on MSVCRT80.dll wich comes with the
> .net 2.0 framework.

And should, according to MS, be distributed with the application and
be installed in an application local directory. 

The same applies to MSVCRT70.dll, which, I note in passing, the
current lablgtk has been compiled against, but doesn't include:
lablgtk won't run on a virgin windows install, and technically there
is no legal way to get the DLL w/o getting the development
environment, except from the application developer. MS doesn't offer
it for download.

Furthermore, mixing older MSVCRT* with MSVCRT70.dll and above is not
recommended and will wreak havoc. Since the available Ocaml 3.09 for
Windows has been compiled with MingW, it links NOT again MSVCRT70, but
against MSVCRT.DLL (which is redistributable and comes with the
system), it's just be tenous chance that the binary lablgtk runs with
the MingW windows distribution (and I think some of the instabilities
observed are due to this mixing of DLLs).

I'd even suspect using the current binary distribution of Lablgtk with
a compiler that links against MSVCRT80 via visual studio will sooner
or later incur problems. 

I hope, I didn't mix up all the library names (quoting from memory),
but the essence of all this is, to build all DLLs consistently against
the same MSVCRT version. So there should actually be 3 distributions
(mind you, of anything with a DLL in it):

  - MingW (links agains MSVCRT.DLL)

  - VS 2003 (or something): Links against MSVCRT70 and also
    distributes this library (if permissible, AFAIR the express
    edition doesn't allow this, so you're essentially f***ed with the
    Express Edition, or better: Your users are: No point and click
    install, except you already have the DLL installed in a windows
    system directory, which, mind you, is against the rules).

  - VS 2005: Links against MSVCRT80.

Technically this characterizes the target platform, not how the
compiler itself has been build. I can imagine a compiler linked
against MSVCRT80 which in itself uses cygwin or MingW as backend and
thus produces MSVCRT.DLL linked executables, though I don't think
anyone has ever tried that.

I've been wanting to post that for some time, never made it to the
lablgtk mailinglist, though I will take it up there in the next weeks.

Regards -- Markus