On Wed, Jul 16, 2003 at 11:05:46PM +0200, Sven Luther wrote: [...] > > As I am pretty inexperienced with ocaml, I dare asking this question: > > when multiple ocaml versions are installed, could ocamlrun be a wrapper > > and call the right version? E.g. if the program was compiled against > > ocaml 3.07, it calls ocamlrun-3.07. > > This way bytecodes have a #!/usr/bin/ocamlrun shebang line like other > > distros, and they are not broken when ocaml is upgraded. > > Of course I have no idea whether this is doable. > > No, this does not work. When you upgrade the ocaml compiler suite, you > have to recompile all the programs so that they will run with the new > ocamlrun. the ocamlc compiler embeds the #!/usr/bin/ocamlrun line > corresponding on where its actual compiler is. Thus in the suffix > version, ocamlc-3.07 will embedd ocqamlrun-3.07, even if it was called > trough a ocamlc symlink.
Sven, you misunderstood my point, I will try to explain it better. Given that ocamlc-3.06 ships ocamlrun-3.06 and ocamlc-3.07 ships ocamlrun-3.07, imagine now that /usr/bin/ocamlrun is a shell script (for instance) which detects the ocaml version needed to run the bytecode and calls the right version. This is somewhat similar to the autoconf wrapper. Denis

