The goal is to be able to use 'ocaml -I $OCAML_TOPLEVEL_PATH' This is not ideal, but better than nothing. I'm a bit relunctant for now on to install a wrapper, around ocaml to automatically install the -I ..., as it may interfere with existing aliases (as people use either 'alias ocaml=ledit ocaml' or 'alias ocaml=rlwrap'). This can be changed later, when I'm convince I will not break anything or when we choose to install an improved toplevel by default.
…packages can start to use them.
…e behavior of reinstall, it just clean up more space.
…ode (except if we encounter the same lowering). In particular, the order of "opam list" becomes natural.
…user as candidates for version upgrading, in case the user has not put some constraints on the version.
…resent in the request) could have an old version (among available versions). We introduce an optimization trying to always return the last version of newly computed packages. Note that this remains an optimization as the solving problem being NP. For instance, the "opam upgrade" performed in #43 just after the "opam install" succeeds but could be unsuccessful in some other cases. However, this optimization should be useful in practice as the user targets the last version in general.
…the external environment. Closes #47
Solving algorithm remains the same.
Suppose that "o.3" is installed and it exists a binary named "o" in $opam/bin . When the solver proposes to change from "o.3" to "o.2", the binary "o" was wrongly erased and not restored. Note that "o.2" could also install a binary "o". Here, the difficulty is to restore back the correct binary "o" in $opam/bin that were installed before the [proceed_tochange] execution. Because [proceed_tochange] performs some side effects modifications on variable with [File.Env], one solution is to call it again with a recursive call.
…o that : - [command] continues the computation (as well as [commands]) - [read_command_output] stops the execution
…to some unknown packages Note that, in this case, the solver returns 'No solution has been found' everytime without failing.
This should fix #35
…n which does not exists