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
[Caml-list] Is Caml a fraud ( especially on Windows )?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2002-10-18 (10:25)
From: Remi VANICAT <vanicat@l...>
Subject: Re: [Caml-list] Is Caml a fraud ( especially on Windows )? (Thaddeus L. Olczyk) writes:

> When I chose to learn OCaml as my "language of the year" it seemed
> like a good choice.


> The second incident involves ocamlc and cameleon. Trying to get
> cameleon to compile ( more on that later ), I discovered that ocamlc
> called cl.exe ( MS C/C++ compiler ). The reason is obvious. ocamlc
> translates ocaml to c and then passes it to the compiler. 

absolutely not. Ocamlc transform program into a bytecode language, and
then use c mainly for foreign interface (that is interface with
library written in C (or other language), and as the system library
are written in C, you may need it...).

By the way, ocaml have two compiler, ocamlc which generate bytecode,
and ocamlopt which generate native optimized code. If you want to go
to a speed near to C, you need ocamlopt...

> This creates
> two things I have difficulties with:
> 1) There is from the main caml page a link to a page where the person
>    claims to have benchmarked C vs caml and caml wins. I had
>    several problems with that page, ( The main one, he uses goto's to 
>    optimise his code. The problem is that the optimiser in a C  
>    compiler has a much harder time with goto's present [ they are 
>    nonlocal branches ]. So I have to trust he does a better job at 
>    optimisation than the compiler would do. Yeah sure. )  but 
>    learning that caml generates C code as an intermediate language 
>    makes his statement false. If caml generates C that creates an 
>    executable, then caml code can never run faster than C.

well, As i already say, you are completely wrong one the assumption
that ocaml generate intermediate C code. Then on the,
you could see that ocaml (in fact ocamlopt) is second on speed on Doug
Bagley's computer language shootout (between C and C++). I haven't
found the link saying that ocaml is quicker than C.

> 2) After a bit of thought I realised something. If the compiler 
>     generates C code which gets compiled, then odds are that the
>     debugger is a wrapper of gdb. Big problems on Windows. This
>     may indicate that there is no debugger for Windows. Sure enough
>     ocamldebug is not present. There is the source for ocamldebug in
>     cameleon, but who knows if it compiles.

well ocamldebug is part of ocaml, and have nothing to do with gdb, as
it is use to debug bytecode and not native code.

by the way, you may find in the documentation that :
  The debugger is available under the Cygwin port of Objective Caml,
  but not under the native Win32 port.

So, it seem logical you don't have it, as you seem to use the native
Win32 port.

> The third incident was trying to get cameleon to compile on Windows.
> At the time I tried this, several other people were asking about
> cameleon problems, so one of the creators did something incredibly
> stupid. He created a seperate mailing list for cameleon problems.
> It was incredibly stupid because the two major problems I had were:
> 1) A camlp4 problem, and 2) the path of cl.exe. These were two
> problems where the problem was with caml in general, and it would
> help to have the input of the people on the mailing list. I suspect
> many cameleon problems are like that.

if you had look better to the camleon doc, you would have seen that it
said to work with the cygwin port of ocaml. Cl.exe is not use by the
cygwin port of ocaml (cygwin use gcc), so You have a problem
here... (may be you could make it work with the native ocaml port, but
it is not advertised).


> So now I have to wonder what other lies there are about caml.

well, lies, lies... You haven't read the documentation, you have made
false assumption, so please, continue to try to learn ocaml 


> And how can I trust caml people to tell me the truth, when they've
> lied to now?

by reading what is written, and not what you believe is written.
Rémi Vanicat
To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: