Home My Page Projects Dose: library and tools
Summary Activity Tracker Lists SCM Files

[#20945] cmx files are not installed

2016-10-31 14:31
Submitted by:
Louis Gesbert (altgr)
Assigned to:
Nobody (None)
cmx files are not installed

Detailed description
Cross-library inlining in OCaml requires cmx files to be installed alongside the cmxa, cma and cmi files. With the newer version, anyone attempting to link against dose is getting a bunch of warnings:

Warning 58: no cmx file was found in path for module Algo, and its interface was not compiled with -opaque

Since different packs included in dose have the same base module names, every pack should probably be installed in its own subdirectory (e.g. LIB/dose3/algo/) with all its files installed (it's good practice to include mli and cmti as well). The META file can be updated with `directory` directives (e.g. `directory = "algo"` within `package "algo" {}`)
Message  ↓
Date: 2017-05-24 08:47
Sender: David Allsopp

I'm not sure there's any need for the subdirectory changes. The point with a pack is that modules are all combined under the one single namespace - the individual .cmx files no longer apply.

The build process explicitly deletes the .cmx files for the packs - I'm not sure why it's doing that, but if instead the pack .cmx files are installed, these warnings disappear (at least building opam).

The required change can be pulled from the install-pack-cmx branch on my GitHub clone of dose (see https://github.com/dra27/dose/compare/install-pack-cmx?expand=1)

No Changes Have Been Made to This Item