[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MirageOS-devel] Fwd: [ocaml] Warning for missing .cmx files (#319)

  • To: mirageos-devel <mirageos-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Anil Madhavapeddy <anil@xxxxxxxxxx>
  • Date: Tue, 5 Jan 2016 11:58:39 +0000
  • Delivery-date: Tue, 05 Jan 2016 11:58:59 +0000
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=recoil.org; h=from :content-type:subject:date:references:to:message-id :mime-version; q=dns; s=selector1; b=CPSDOTnfYx5VQCc2/1totUY9eb1 Dds5SeKgHRqDisia2sdjbsXShNaiKB0xCIuGPeFVDAUdbgTzuYcTDfTK4TQe4Sr0 LyEuT7q6rb2HKiUB9FrQREXWi8tenrK69drpIxvbk5K7LPxud25/T0+Kue2seFqJ hRmafY+VX2QDKKxc=
  • List-id: Developer list for MirageOS <mirageos-devel.lists.xenproject.org>

The cool features in OCaml 4.03 are adding up -- in addition to the low latency garbage collection patches, this one ensures that all of the .cmx files are always available during linking.  If they are not, then cross-module inlining is currently silently turned off, but with this, we can ensure the highest performance unikernel link.


Begin forwarded message:

From: Leo White <notifications@xxxxxxxxxx>
Date: 29 November 2015 at 18:29:09 GMT
To: ocaml/ocaml <ocaml@xxxxxxxxxxxxxxxxxx>
Subject: [ocaml] Warning for missing .cmx files (#319)

This patch adds a warning for missing cmx files during cross-module inlining. This is useful because currently a misspecified build can silently damage the performance of programs.

The patch also extends the -opaque option to work on .mli files. Using -opaque on an .ml file means that its implementation should not be considered for cross-module inlining. Using -opaque on an .mli file means that no implementation of that interface should be considered for cross-module inlining.

If an interface is marked as opaque then the compiler does not search for a .cmx file, and so the new warning will not be triggered. This means that modules which are intended to be chosen at link-time (and so deliberately hide .cmx files) can avoid unnecessarily triggering the warning.

As an illustration of the utility of this new warning, not all cmx files were installed by the OCaml distribution, and the patch also adjusts the installation rules to install these files (which were in compiler-libs and ocamldoc).

You can view, comment on, or merge this pull request online at:


Commit Summary

  • Add warning for missing .cmx files
  • Install compiler libs .cmx files
  • Install ocamldoc .cmx files

File Changes

Patch Links:

Reply to this email directly or view it on GitHub.

MirageOS-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.