Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0006754OCamlstandard librarypublic2015-01-19 07:172017-10-12 15:43
Reporterygrek 
Assigned To 
PrioritynormalSeverityminorReproducibilityalways
StatusacknowledgedResolutionopen 
PlatformOSOS Version
Product Version4.02.1 
Target Version4.07.0+devFixed in Version 
Summary0006754: topdirs.cmi multiple locations
Description```
$ find /home/ygrek/.opam/4.02.1/lib/ocaml| grep topdirs.cmi
/home/ygrek/.opam/4.02.1/lib/ocaml/compiler-libs/topdirs.cmi
/home/ygrek/.opam/4.02.1/lib/ocaml/topdirs.cmi
```

and every invocation of compiler referencing compiler-libs results in ocamlfind warning
```
findlib: [WARNING] Interface topdirs.cmi occurs in several directories: /home/ygrek/.opam/4.02.1/lib/ocaml/compiler-libs, /home/ygrek/.opam/4.02.1/lib/ocaml
```

The md5 sum of both modules is the same. I wonder what would be the best way to remove this warning - either the OCaml distribution should install it only in one place or ocamlfind should check md5 and not report it as duplicate because whichever is used will not matter?
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0013142)
whitequark (developer)
2015-01-19 07:20

Special-casing the md5 in ocamlfind is of course not the answer. It's not even stable between builds of ocaml.

Why can't topdirs.cmi be installed only in lib/ocaml, anyway?
(0013143)
ygrek (reporter)
2015-01-19 07:27

I mean that once ocamlfind detects same cmi occuring in multiple dirs it could check the md5 of those cmi and if they all are equal - it means interfaces are really equal.
But I agree that installing in only one location would be the best solution.
(0013241)
doligez (administrator)
2015-02-06 18:42

Interesting. My first reaction was put it into lib/ocaml/compiler-libs, where you also find toploop, topmain, and topstart. @whitequark, do you have any particular reason to want it in lib/ocaml ?
(0013242)
whitequark (developer)
2015-02-06 18:46

I thought topfind uses Topdirs but I now see that it does #directory "+compiler-libs" so that doesn't matter anyway.
(0014249)
hcarty (reporter)
2015-07-23 21:45
edited on: 2015-07-23 21:50

Is it safe to move/remove lib/ocaml/topdirs.cmi? Anything using ppx_blob, for example, generates lots of findlib warnings.

Moving that file and adding '#directory "+compiler-libs";;' to my ~/.ocamlinit allowed utop to work and code to compile without the findlib warnings.

(0014250)
whitequark (developer)
2015-07-23 23:27

@doligez, right, hcarty's comment above is why I wanted it in lib/ocaml, I think
(0014942)
hhugo (reporter)
2015-12-01 11:59

Any chance to see this resolved for 4.03 ?
(0015227)
johnwhitington (reporter)
2016-01-05 14:17

This warning is, by default, fatal to ocamlmktop, so one has to do "-warn-error -31" if making a custom top level with compiler-libs.

Does anyone know why warning 31 should be fatal for ocamlmktop but not ocamlc?
(0015253)
pveber (reporter)
2016-01-13 16:16

Removing lib/ocaml/topdirs.cmi seems the cleanest solution to me. For the record, this would require some adjustments in opam (for the generated .ocamlinit) and oasis (the generated setup.ml file in dynamic update mode) and maybe other libs. Before doing anything, it would wiser I think to announce/discuss it on the list, so that everybody can think and report on the possible implications.

In any case, it would be great to fix this. I can provide some help if needed.
(0015776)
gasche (developer)
2016-04-17 20:01

We missed the timeline for 4.03 on this one. If someone (Philippe included) is willing to take action on this issue (starting a mailing-list discussion etc.), now would be an excellent time, so that we get a change early in the 4.04+dev lifetime.

- Issue History
Date Modified Username Field Change
2015-01-19 07:17 ygrek New Issue
2015-01-19 07:20 whitequark Note Added: 0013142
2015-01-19 07:27 ygrek Note Added: 0013143
2015-02-06 18:42 doligez Note Added: 0013241
2015-02-06 18:43 doligez Status new => acknowledged
2015-02-06 18:43 doligez Target Version => 4.03.0+dev / +beta1
2015-02-06 18:46 whitequark Note Added: 0013242
2015-07-23 21:45 hcarty Note Added: 0014249
2015-07-23 21:50 hcarty Note Edited: 0014249 View Revisions
2015-07-23 23:27 whitequark Note Added: 0014250
2015-12-01 11:59 hhugo Note Added: 0014942
2016-01-05 14:17 johnwhitington Note Added: 0015227
2016-01-13 16:16 pveber Note Added: 0015253
2016-04-17 20:01 gasche Note Added: 0015776
2016-04-17 20:01 gasche Target Version 4.03.0+dev / +beta1 => 4.03.1+dev
2017-02-16 14:00 doligez Target Version 4.03.1+dev => undecided
2017-02-23 16:43 doligez Category OCaml standard library => standard library
2017-03-15 15:11 doligez Target Version undecided => 4.06.0 +dev/beta1/beta2/rc1
2017-10-05 18:03 doligez Target Version 4.06.0 +dev/beta1/beta2/rc1 => 4.07.0+dev


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker