Version française
Home     About     Download     Resources     Contact us    
Browse thread
OCaml version 3.11.0+beta1
[ 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] OCaml version 3.11.0+beta1
David Allsopp wrote:
> The install target of flexdll's Makefile suggests copying:
> 
> flexdll_initer.c, flexdll.c
> 	Surely these aren't needed once it's compiled?

Indeed. However, some people might want to recompile them (e.g. to keep 
debug symbols, or to use a specific version of their C compiler).

> 
> cmdline.o, coff.o, reloc.o, version.o
> 	Aren't these all part of flexlink.exe and therefore not needed?

As far as I can tell, the install target does not copy these files.

> default.manifest
> 	Is this necessary for a MinGW build?

No.

> There seems to be an interesting chicken-and-egg source dependency between
> flexdll and OCaml 3.11 - you can't build OCaml 3.11 from source or use it
> afterwards without flexdll and you can't build flexdll from source without
> OCaml. Doesn't that suggest a binary copy of flexdll should be included in
> OCaml's boot directory? All of the other *binary* dependencies for Windows
> OCaml don't require OCaml themselves... just a thought!

You're right about the circular dependency, but the answer is much 
simpler than for the chicken-and-egg question: OCaml came first.
I don't see a compelling reason to include a binary version of flexdll 
in the OCaml distribution. Just consider flexdll as an external 
dependency that comes in binary form (like the MS C compiler). It just 
happens to be produced by the OCaml compiler.

Note that flexlink.exe can be compiler with an old OCaml compiler. Also, 
if you insist to bootstrap everything, it shouldn't be too difficult to 
get a minimal (=no dynamic linking of external C code) ocamlrun.exe for 
3.11 that does not require flexlink.



-- Alain