> Some quick fire answers to these few questions from an opam expert or two
> would be very much appreciated, please :o)
Sure, thanks a lot for your efforts!
> 1. Are there any circumstances in which opam (re)install -b deletes the
> build directory?
>
> I'm fairly sure that while doing an opam reinstall which crashed (i.e. opam
> suffered an exception) during the install bit that the handler deleted the
> build directory, despite -b being specified.
>
> If opam really did delete the build directory in this instance, is that a
> bug? (in which case I'll add it to my ToDo list)
`--keep-build-dir` disables the removal of the build dir that normally takes
place _after_ a build only. Currently, every new build will still start from a
fresh dir, wiping any old one. This doesn't seem to be your case though, so,
probably a bug -- I would say an exception handler that doesn't properly check
keep_build. I'll have a look.
> 2. What's the correct set of flags to keep and obtain as much information as
> possible for debugging package building?
>
> -b gives me the build directory. Is the only way to get the
> .{env,info,out,err} files kept to specify --debug?
At the moment, yes -- granted, that's a bit weird. Feel free to suggest
improvements on that, I debug opam itself a lot but am much less confronted
with debugging packages, so the tools there might be a bit lacking.
> 3. Is there a tool or better way to view the output of each command (i.e.
> the aforementioned files) than going through the .info files to find the
> right one and then looking at the appropriate other file?
There are several ways, none of which may be perfect yet:
* `--verbose` will display each command and its output (as it is run if there
is only one running, when it finished when running in parallel). `--debug` is
more focused on debugging opam's internals, but also triggers keeping of log
files, which is weird.
* in recent builds, the `--json` option will output a json file that includes
the output of all failed commands. You may try the experimental script at [1]
to make it into a browsable html page (sample output at [2]). The json doesn't,
at the moment, include the output of commands that didn't fail, though, so when
a sequence failed you will only get the last command.
* see also the proposal at [3]
> Would it be appreciated if opam were patched to give the files a canonical
> order (i.e. so that ls displays the log files in the order they were
> executed)?
That definitely sounds like an improvement.
> 4. When changing opam source files which are part of the .cmxa/.cma
> libraries (e.g. opam-core, opam-format), I'm frequently forced to do make
> clean; make all as otherwise I get "inconsistent assumption" errors over
> .cmx implementation (I'm building with 4.02.2).
>
> Is that affecting anyone else, or is there something weird going on with the
> Windows Makefile dependencies that I should look into?
The OCamlMakefile build is the one maintained officially, but it is for
compatibility and bootstrap, and it's awful at usage. I always build using
`make fast` when developing, which relies on ocp-build. It's better for my
nerves ;)
Hope this helps, and thanks for the feedback!
Louis
[1]:
https://github.com/OCamlPro/flambda-task-force/blob/master/scripts/opamjson2html.ml
[2]:
http://flambda.ocamlpro.com/bench/operf/2015-11-02-1100-b8eec032-5e86a310/build.html
[3]: https://github.com/ocaml/opam/issues/2133
_______________________________________________
opam-devel mailing list
[email protected]
http://lists.ocaml.org/listinfo/opam-devel