Last upagrade of ocaml


#1

Since last ocaml upgrade, the native compilers are no more available which produces HUGE performances decrease (x100 factor more or less) and makes ocaml unusable for contests in particular.

Please reinstall ocaml native compilers.


#2

Hi,

We are not ocaml expert, so we would need more context. Are you referring to the compilation phase? or is the execution phase slowed down as well?

If only the compilation phase, what time does it take now to compile your code?

Could you send an example of code which is slow to compile now vs with the previous version? (devHS@codingame.com)

The doc indicates that the slow down is at most 3x, but I guess they are wrong and we would like to test by ourselves (https://packages.debian.org/jessie/ocaml-native-compilers)

Also reverting to native compilers would mean reverting the ocaml version as well (there are no debian packages for 4.07).

For information this is how we installed ocaml:
~~~
cd /tmp
wget http://caml.inria.fr/pub/distrib/ocaml-4.07/ocaml-4.07.0.tar.gz
tar xvf ocaml-4.07.0.tar.gz
cd ocaml-4.07.0
./configure
make world.opt
make bootstrap
make install
make clean
cd ..
rm -rf ocaml*
~~~
If you have a better idea, please let us know.


#3

Hi,
Thanks for the reply.

There is three way of executing Ocaml code:
1- by ocaml interpretor (not our problem here)
2- by compile to bytecode and then execute the obtained code: the bytecode is, IMHO, mainly here for debugging and historical purposes. This bytecode is very slow to execute but this is the way CG decided to compile Ocaml code (cf this thread https://www.codingame.com/forum/t/native-ocaml-compiler/937) but we can still compile to native code until yesterday
3- A very efficient native compiler which produces very fast code since the produced code can be optimized.

even if I do not understand why it seems that the line

erases the native compiler.

If you just remove this line from your script things should become normal again.

Maybe you should consider to change the line "./configure" to "./configure --prefix /usr/bin" in order to install the compilers and library into users path but it depends on your local policy.

Best regards.


#4

Hi @Boulet,

This is fixed now.

"make bootstrap" erasing the native compiler looks like a bug to me (or at least a documentation bug as this step is recommended when building).

Binary used for compiling is now ocamlopt


#5

Nice.

I agree the "make bootstrap" is clearly a bug.