Conversation
|
@gasche: Travis is now complaining about |
|
On the other hand, you can easily install any development repository as an opam switch by using my script opam-compiler-conf. Once it is in your $PATH somewhere: (That is, of course, less convenient than the semi-official switches if you want other users to test it.) |
|
Yes, there's always the manual option, but OPAM has spoiled me... ;-) |
|
I've adapted libfoobar to use OCamldep's new I would like to take a shot at porting the more realistic Lambdoc oasification branch, though since many of its dependencies do not compile out-of-the-box with 4.03, it may take a while. (Alternatively, I may opt to complexify Libfoobar, mimicking the structure of Lambdoc but without introducing any external dependencies.) |
|
It should be trivial to backport the patch to the 4.02.1 branch to test on your code. Just ask if there is a conflict I can't think of right now, or if you don't feel comfortable enough with git to do it yourself. |
|
@darioteixeira about the Travis build, that is/was a bug in OPAM, which should be fixed now (see OPAM#1999). |
|
I've just uploaded new PPA snapshots of OPAM 1.2.1dev, so I'll submit a pull request to OCaml's Travis setup to use them once they've uploaded. That should fix the CI here. |
|
Just an update on my progress on this front: Instead of backporting the compiler changes to 4.02.1 or complexifying libfoobar, in the end I've opted for a different solution to test Anyway, though compilation from scratch works. Incremental compilation sometimes fails with an "inconsistent assumptions" error. This means there are still some corner cases I haven't considered and I'll have to take a closer look. In related news, I went for a mixed approach in the oasification branch proper: I use module aliases and no-alias-deps only for referring to "packs" below on the dependency hierarchy. Within each hierarchical level I don't rely on this mechanism, which means the code compiles fine on 4.02 without any special tricks to avoid circular dependencies. Though this approach requires declaring module aliases on each module for intra-hierarchy references and is thus a bit more cumbersome, it's not too cumbersome because shortcuts can be used for inter-hierarchy references. It's not perfect, but it does have the advantage of being straightforward to understand and not requiring any dirty tricks postprocessing the output of OCamldep. |
|
Just a heads-up: the |
|
I've relaunched the Travis build but it's still failing and I don't understand why. |
|
@gasche Can you please decide what to do with this one? It's been unloved for 18 months. |
|
Still no comment for nearly another 3 months, so closing. This can always be reopened if someone has the time to work on it. |
This patch provides a preliminary implementation of the
ocamldep -pathsoption proposed in discussion about the support of-no-alias-depsin ocamlbuild:https://sympa.inria.fr/sympa/arc/caml-list/2015-02/msg00021.html
The idea is to return all module paths used in the module (except those that we know for sure are accesses to local modules). If the file uses
Foo.Lib.blah, listFoo.Libinstead of justFoo(as the-modulesoption does).I would strongly welcome any code review to confirm that the new implementation of ocamldep (which collect all module paths, then later returns only the root module names (as before) if
-pathsis not given) is equivalent to the previous one (that collected only root module names). I added a small testsuite to make sure no obvious, terrible mistake was done, but I don't think it tests much in term of functionality (if you know a better test case to include in the testsuite, I'm interested).